কম্পিউটার বা গণকযন্ত্র এক বিস্ময়কর যন্ত্রের নাম। এই বিষ্ময়কর যন্ত্রটাই আজকাল নিত্য ব্যবহার্য একটি বস্তুতে পরিণত হয়েছে। গণনা বা হিসাব করা আদিম কাল থেকেই চলে আসছে, কেউ হয়ত দেয়ালে দাগ কেটে বা পাথরে খোদাই করে লিখে রাখত। কিন্তু কালের যাত্রায় আমাদের বড় বড় সংখ্যা নিয়ে কাজ করার প্রয়োজন দেখা দিল। দেখা দিল যন্ত্র উদ্ভাবনের প্রয়োজনীয়তা। আমরা আজকে যে বিষ্ময়কর যন্ত্রের কথা বলছি সেটার শুরুটা ছিল চার্লস ব্যবেজ নামক একজন ইংরেজ মেকানিক্যাল ইঞ্জিনিয়ারের উদ্ভাবিত একটি যান্ত্রিক ডিফারেন্স ইঞ্জিন (Difference Engine) তৈরির মাধ্যমে 1। যেহেতু এটি একটি যান্ত্রিক ইঞ্জিন তাই এর দ্বারা অনেক জটিল কিছু করা যেতনা, তবে এর মাধ্যমেই যে একটি বিষ্ময়কর যন্ত্রের সূচনা হয়েছিল সেটা বলাই বাহুল্য।
অনেকদিন পরের কথা, দ্বিতীয় বিশ্বযুদ্ধ শুরু হয়েছে, চারিদিকে টালমাটাল অবস্থা। সব দেশই আপ্রাণ চেষ্টা চালিয়ে যাচ্ছে কিভাবে যুদ্ধে আধিপত্য বিস্তার করা যায় বা জয়লাভ করা যায়। এর মধ্যে আমেরিকান সেনাবাহিনী এক যুগান্তকারী সিদ্ধান্ত নিয়ে ফেলে, তারা এমন একটি কম্পিউটার বানানোর চিন্তা করতে থাকে যেটা হবে রি-প্রোগ্রামেবল (reprogrammable) অর্থাৎ ভিন্ন ভিন্ন উদ্দেশ্যে নতুন করে প্রোগ্রাম লেখা যাবে। এতে সাড়া দেয় পেনসিলভেনিয়া বিশ্ববিদ্যালয়ের কয়েকজন বিজ্ঞানী; Porject PX নামে ১৯৪৩ সালের ৫ই জুন গোপনে এর কাজ শুরু করা হয় , যেটা পরে Electronic Numerical Integrator and Computer (ENIAC) নামে পরিচিতি পায় এবং শেষ হয় ১৯৪৬ সালের ১৫ই ফেব্রুয়ারি। মজার ব্যাপার হল ENIAC তৈরির উদ্দেশ্য ছিল যুদ্ধক্ষেত্রে গোলার গতিপথ নির্ধারণ করার জন্য, তবে এটির কাজ শেষ হবার আগেই যুদ্ধ শেষ হয়ে যায়। পরে এটি হাইড্রোজেন বোমা তৈরির হিসাব নিকাশের জন্য ব্যবহার করা হয়। ENIAC তৈরিতে সর্বমোট ব্যয় হয়েছিল তৎকালীন ৪ লাখ ৮৭ হাজার ডলার যা বর্তমানে প্রায় ৬৬ লাখ ডলারের সমতুল্য 2। এটা এত বিশাল ছিল যে এটার আকার ছিল ১৫০০ বর্গফুট, যা প্রায় আজকাল ঢাকা শহরের একটি ফ্ল্যাট বাড়ির সমান; কল্পনা করেন আপনি একটি কম্পিউটারের মধ্যে হেটে বেড়াচ্ছেন! এটাতে প্রায় ৭০ হাজার রেজিস্টার, ১৭ হাজার ভ্যাকিউয়াম টিউব, ১০ হাজার ক্যাপাসিটর, এবং ৬ হাজারের মত সুইচ ছিল!
ENIAC এর পরে কম্পিউটার এর অগ্রযাত্রায় যেন এক নতুন গতি পায়। ধীরে ধীরে ট্রানজিস্টরগুলো ভ্যাকিউয়াম টিউব এর জয়াগা নিতে থাকে। তৈরি হয় ইন্টিগ্রেটেড সার্কিট (Integrated circuits) বা IC এবং শুরু হয় আধুনিক কম্পিউটারের যাত্রা। প্রযুক্তির অগ্রযাত্রায় IC ছোট হতে শুরু করে আর কম্পিউটারও পাল্লা দিয়ে সাধারণ মানুষের দোর গোড়ায় পৌছাতে থাকে। তৈর হতে থাকে মাইক্রোপ্রসেসর। দুর্বার গতিতে এগিয়ে যেতে থাকে আধুনিক কম্পিউটারের অগ্রযাত্রা।
আমাদের হাতে থাকা একটি মুঠোফোন দিয়েই এখন যা করা যায়, সেকালের বড় কোন কম্পিউটার দিয়েও সেই পরিমাণ কাজ করা ছিল এক অলীক কল্পনা। ১০/১৫ বছর আগেও কম্পিউটার এ ২৫৬ বা ৫১২ মেগাবাইট এর মেমরি ব্যবহার করা হত, আর এখন আমাদের পকেটে থাকা মুঠোফোনে ৫১২ গিগাবাইট অনেক সাধারণ ব্যাপার। তাই পরের বার যখন আপনি আপনার কম্পিউটার এর কিবোর্ড এর বোতাম চাপবেন বা হাতে থাকা মুঠোফোন এ টুং করে ওঠা দূরবার্তার দিকে তাকাবেন, তখন যদি একটূ সময় নিয়ে এই বিষ্ময়কর যন্ত্রের যাত্রার কথা চিন্তা করে বিষ্মিত হন তাহলে আমি অবাক হবনা। হয়ত আপনার মতই কোন প্রোগ্রামার আগামী দিনের কম্পিউটারের অগ্রযাত্রার ইতিহাস লিখবেন।
কম্পিউটার কিভাবে কাজ করে?
কম্পিউটার একটি ইলেকট্রনিক ডিভাইস। ইলেকট্রিসিটি বা বিদ্যুৎ এর উপস্থিতি আছে কি নেই সেই তথ্য ব্যবহার করেই কম্পিউটার নির্দিষ্ট কোন কাজ করে, একটি কম্পিউটার এর সাথে আনুষঙ্গিক যা আছে সেগুলো এই ইলেক্ট্রিসিটি নিয়ন্ত্রণ করারই বিভিন্ন কৌশল। অর্থাৎ কম্পিউটার শুধু জানে বিদ্যুৎ আছে বা বিদ্যুৎ নেই।
এইযে কোন কিছু ‘আছে’ বা ‘নেই’ অর্থাৎ ‘হ্যা’ অথবা ‘না’ তে উত্তর দেওয়া একটি বাইনারি পদ্ধতি। কম্পিউটার ঠিক এই বাইনারি সংখ্যা পদ্ধতিতেই কাজ করে। বিদ্যুৎ আছে অর্থ 1 আর বিদ্যুৎ নেই অর্থ 0. কম্পিউটার বাইনারি ছাড়া কিছুই বোঝেনা। তাই কম্পিউটারকে কোন কিছু বোঝাতে হলে সেটা তার ভাষায় অর্থাৎ বাইনারি ভাষায় রুপান্তর করে বোঝাতে হয়। যেহেতু এই বইটি কম্পিউটার ফান্ডামেন্টাল (Computer Fundamental) সম্পর্কিত কোন বই নয় সেহেতু এই সংখ্যাপদ্ধতির খুব গভীরে যাব না। শুধুমাত্র ধারণা নেব যে কম্পিউটার কিভাবে কাজ করে।
কম্পিউটার টিকে আমরা যদি আমাদের বাড়িতে ব্যবহৃত বিদ্যুৎ এর লাইট বা ফ্যান এর সাথে তুলনা করি তাহলে বিষয়টা বুঝতে অনেক সহজ হয়ে যাবে। ধরা যাক আপনার বাড়িতে একটা লাইট, একটা ফ্যান, একটা কম্পিউটার, আর একটা ফ্রিজ আছে। এগুলোর সব গুলো আপনি চালিয়ে রাখতে পারেন সেক্ষেত্রে এর বাইনারি উপস্থাপনা হবে 1111 যদি সবগুলো বন্ধ থাকে তাহলে হবে 0000, ধরেন আপনি কম্পিউটার এবং ঘরের লাইট জ্বালিয়ে আছেন কিন্তু ঘরের ফ্যান এবং ফ্রিজ বন্ধ আছে, সেক্ষেত্রে এটি হবে 1010; বিষয়টা অনেক দারুণ, তাইনা? ঘরের সুইচ বোর্ড ও যেভাবে কাজ করে কম্পিউটারও ঠিক তেমনই কাজ করে। এখানে যেহেতু চারটি অবস্থা আছে তাই এটা একটি ৪-বিট সিস্টেম।
এতক্ষণ হয়ত আপনাদের মাথায় চিন্তা এসে গেছে, লাইট ফ্যান তো ঠিকই বুঝলাম কিন্তু এইযে লেখালেখি করছি, বা কম্পিউটার এ কোন একটি ছবি দেখছি, এগুলো আসলে কিভাবে কাজ করে? এগুলোও ঠিক একইভাবে কাজ করে তবে প্রক্রিয়াটা অনেক জটিল। ধরে নেওয়া যাক আমি কম্পিউটারে আমার নিজের নাম লিখব – ‘SHAHINUR’, তাহলে এটা বাইনারিতে কেমন হবে? এর জন্য কম্পিউটার বিজ্ঞানীরা একটি আদর্শ কোড সিস্টেম তৈরি করেছে যেটা ASCII নামে পরিচিত এবং এটার পূর্ণ রুপ হচ্ছে – American Standard Code for Information Interchange, প্রতিটা অক্ষরের জন্য একটি নির্দিষ্ট ASCII মান আছে। আমরা যদি ৮-বিট কোন সিস্টেম কল্পনা করি তাহলে SHAHINUR কে আমরা বাইনারিতে ছবির মত এভাবে লিখতে পারি-
প্রোগ্রামিং ভাষা কেন শিখব?
এতক্ষণে হয়ত ভড়কে গেছেন যে সামান্য একটা শব্দ SHAHINUR লিখতে যেয়েই ৬৪ টা বাইনারি সংখ্যার প্রয়োজন হচ্ছে! এত হিজিবিজি লেখা কি মনে রাখা সম্ভব? আসলেই মনে রাখা সম্ভবনা। যার ফলে বিভিন্ন প্রোগ্রামিং ভাষার উৎপত্তি হয়েছে। কম্পিউটার ভাষার কাজ হচ্ছে নির্দিষ্ট কোন নির্দেশনাকে কম্পিউটারের ভাষায় রুপান্তর করা। আধুনিক কম্পিউটার ভাষা খুবই সহজ এবং প্রায় মানুষের ভাষাকে কম্পিউটার এর ভাষায় রুপান্তর করতে পারে। বাইনারিতে প্রোগ্রাম লেখাও সম্ভব কিন্তু অযৌক্তিক। এযুগে কেই যদি একটি মেশিন লার্নিং এর ডাটাসেট কে বাইনারিতে লিখতে যায় তাহলে শুধু কোড লিখতেই কয়েক শত বছর পার হয়ে যাবে, আর ভুল হবার সম্ভাবনা তো আছেই! তাই কম্পিউটার এ বিভিন্ন প্রোগ্রাম লিখতে প্রোগ্রামিং ভাষার কোন বিকল্প নেই।