বাইনারি সংখ্যা, বাইনারি সংখ্যার জনক, মেশিন কোড, বুলিয়ান অ্যালজেবরা , প্রোগ্রামিং ভাষার জনক কে তা সংক্তিপ্ত আকারে এই পোস্টে আলোচনা করা হয়েছে।
বাইনারি সংখ্যা কী ?
কম্পিউটার তথা ডিজিটাল ডিভাইসগুলো বাইনারি সংখ্যা অর্থাৎ ০ আর ১ ছাড়া অন্য কোনো ডিজিট বা অংঙ্ক বুঝতে পারে না। আচ্ছা আমরা যখন সংখ্যা গণনা করি, প্রাথমিকভাবে মোট কয়টি ডিজিট গুণতে পারি বল তো? আমরা কিন্তু ০ থেকে ৯ পর্যন্ত মোট ১০টি ডিজিট গুণতে পারি। বাকিসব সংখ্যাকে ০ থেকে ৯ এর মাধ্যমেই প্রকাশ করা হয়।
এই ১০ টি ডিজিট দিয়ে সব সংখ্যা আমরা কেন প্রকাশ করি? কারণ মানুষ যখন গণনা করা শুরু করেছিল, হাতের ১০ আঙ্গুলের কারণে যেকোনো কিছু ১০ সংখ্যা বিশিষ্ট তথা ডেসিম্যাল (Decimal) পদ্ধতি দিয়ে গণনা শুরু করেছিল। তার মানে আমাদের দুই হাতে ১০টি আঙুলের পরিবর্তে যদি আরও কম বেশি আঙুল থাকত, তাহলে আমাদের ডিজিট সংখ্যাও কিন্তু পাল্টে যেতো।
এবারে একটু কম্পিউটারের কথা ভাবা যাক। কম্পিউটার তো 0 আর 1 অর্থাৎ দুই সংখ্যা বিশিষ্ট বাইনারি (Binary) সংখ্যা পদ্ধতি ব্যবহার করে।
কম্পিউটার বা যেকোনো ইলেক্ট্রনিক ডিভাইসে চিন্তা করা হয় ডিভাইসটি আমি চালু করতে পারি অথবা বন্ধ করতে পারি। অর্থাৎ আমার কাছে অপশন দুটি।
ডিভাইস বন্ধ = ০
ডিভাইস চালু = ১
এই কারণে ০ আর ১ অর্থাৎ দুই সংখ্যা বিশিষ্ট পদ্ধতি বা বাইনারি পদ্ধতি চালু হয়।
কম্পিউটারে যতরকম তথ্য জমা রাখা হয়, সবকিছু বাইনারি সংখ্যা হিসেবে জমা থাকে। আবার কম্পিউটার যতরকম হিসাবনিকাশ করে অর্থাৎ যোগ, বিয়োগ, গুণ ভাগ ইত্যাদি সবই বাইনারি সংখ্যাতেই করে থাকে।
এখন কম্পিউটার তো যেকোনো সংখ্যাকে ০ আর ১ দিয়ে উপস্থাপন করতে চাইবে। কিন্তু আমরা তো যেকোনো সংখ্যাকে ০ থেকে ৯ দিয়ে প্রকাশ করতে অভ্যস্ত। তাই হঠাৎ করে চোখের সামনে ০১১১০০০১১০ এমন একটা সংখ্যা দেখলে আমরা তো তা বুঝতে পারি না এর অর্থ কি। তবে খুব সহজেই আমরা চাইলে কম্পাইলারের সহায়তায় ডেসিম্যাল থেকে বাইনারি এবং বাইনারি থেকে ডেসিম্যাল রূপান্তর করতে পারি।
“Bi” মানে দুই অর্থাৎ যে সংখ্যা পদ্ধতির ভিত্তি 2 এবং অংকগুলো 0 ও 1 তাকে বাইনারি সংখ্যা পদ্ধতি বলে। এ পদ্ধতিতে মৌলিক চিহ্ন হলো 0 এবং 1 , এগুলোকে সংক্ষেপে বিট (Bit) বলে। Binary Digit শব্দ দুটো থেকে Bit শব্দটি এসেছে। উনিশ শতকের মাঝামাঝি সময়ে ইংল্যান্ডের গণিতবিদ জর্জ বুলি বাইনারি সংখ্যা পদ্ধতি উদ্ভাবন করেন। তাই জর্জ বুলকে (George Boole) বাইনারি পদ্ধতির জনক বলা হয়। এ পদ্ধতির চিহ্ন দু’টোকে সহজেই বৈদ্যুতিক উপায়ে নির্দিষ্ট করা যায়। এক্ষেত্রে সাধারণত বিদ্যুতের উপস্থিতিকে 1 (ON) এবং অনুপস্থিতিকে 0 (OFF) ধরা হয়, যা মেশিনের জন্য সহজেই বোধগম্য। এজন্য কম্পিউটারের অভ্যন্তরীণ সকল কাজ এ পদ্ধতি ব্যবহার করে করা হয়।
বুলিয়ান অ্যালজেবরা (Boolean Algebra)
ইংরেজ গণিতবিদ জর্জ বুল (George Boole) ১৯৫৮ সালে ‘Mathematics of Logic’ নামে তার একটি গবেষণাপত্রে গণিত এবং যুক্তির মধ্যে সুসম্পর্ক স্থাপন করেন। ঐ গবেষণাপত্রে যুক্তির যে ধারনা পাওয়া যায় তার উপর ভিত্তি করে নতুন একটি গণিতের শাখা উদ্ভাবিত হয়। জর্জ বুলের নাম অনুসারে গণিতের এই শাখাকে বুলিয়ান অ্যালজেবরা (Boolean Algebra) নামকরণ করা হয়।
বুলিয়ান অ্যালজেবরায় লজিকের সত্য বা মিথ্যাকে বাইনারি সংখ্যা 0 ও 1 নিয়ে কাজ করা হয় । কোনো বৈদ্যুতিক সার্কিটে বিদ্যুতের উপস্থিতিকে 1 এবং বিদ্যুতের অনুপস্থিতিকে 0 ধরা হয় ।
বুলিয়ান অ্যালজেবরা আবিষ্কারের ফলে ডিজিটাল ইলেক্ট্রনিক্স যন্ত্রসহ কম্পিউটারের সকল গাণিতিক ও যুক্তিমূলক কর্মকান্ড অত্যন্ত সূক্ষ্ণ ও দক্ষতার সাথে সম্পাদন করা সম্ভব হয়েছে। বুলিয়ান অ্যালজেবরার সকল গাণিতিক কাজ বুলিয়ান যোগ ও গুণের মাধ্যমে অত্যন্ত সহজ ও দ্রুততার সাথে করা যায়।
মেশিন কোড কী?
মূলত ০ আর ১ এর সমন্বয়ে তৈরি বাইনারি কোডকেই মেশিন কোড বলা হয়, যা আমাদের কম্পিউটার বুঝতে পারে। এই রূপান্তরের ফলে আমাদের নির্দেশগুলো কম্পিউটার বুঝতে পারবে এবং সেই নির্দেশ অনুসরণ করে এক বা একাধিক কাজ সম্পন্ন করতে পারবে।
কম্পিউটারকে যেকোনো নির্দেশ দিতে গেলে কম্পিউটার বুঝতে পারে এমন ভাষায় নির্দেশ লিখতে হয়। আমরা তো আগেই জেনেছি কম্পিউটারসহ যেকোনো ইলেক্ট্রনিক ডিভাইস শুধুমাত্র ০ আর ১ কে বুঝতে পারে। এদিকে শুধু ০ আর ১ দিয়ে নিজেদের নির্দেশগুলো লিখে নেওয়াটা আমাদের জন্য খুবই কঠিন। তাহলে কম্পিউটারের সাথে কীভাবে আমরা যোগাযোগ করব?
এমন কিছু ভাষা আছে, যেখানে ওই ভাষার রীতিনীতি অনুসরণ করে নির্দেশ লিখলে কম্পিউটার সেই ভাষাকে সহজেই বাইনারিতে অথবা হেক্সাডেসিম্যালে রূপান্তর করে নিয়ে নির্দেশগুলো বুঝতে পারে। এই ভাষাগুলোকে বলা হয় প্রোগ্রামিং ভাষা।
অর্থাৎ প্রোগ্রামিং ভাষা হচ্ছে এক ধরনের ভাষা যা দিয়ে কম্পিউটার তথা ডিজিটাল ডিভাইসকে প্রয়োজনীয় বোধগম্য নির্দেশ প্রদান করা হয়।
মানুষ নিজেদের মধ্যে কথা বলার জন্য বাংলা, ইংরেজি, ফ্রেঞ্চ, ল্যাটিন, স্প্যানিশ ইত্যাদি কতরকমের ভাষা ব্যবহার করে! ঠিক তেমনই অনেক রকম প্রোগ্রামিং ভাষা আছে। যেমন – সি, সি++, পাইথন, পিএইচপি, জাভা ইত্যাদি।
প্রোগ্রামিং ভাষার জনক কে ?
সর্বপ্রথম প্রোগ্রামিং ভাষার ধারণা সামনে নিয়ে আসেন লর্ড বায়রনের কন্যা এইডা লাভলেস (Ada Lovelace)। তার জন্য তাকে প্রথম প্রোগ্রামিং এর প্রবর্তক বা জনক বলা হয়। তবে সি (C Programming) প্রোগ্রামিং ভাষা যুক্তরাষ্ট্রের নাগরিক Dennis MacAlistair Ritchie (ডেনিস রিচি) (জন্ম-September 9, 1941) প্রবর্তন করেন।
আর পাইথন (Python) প্রোগ্রামিং ভাষা ১৯৯১ সালে প্রবর্তন করেন নেদারল্যান্ডের অধিবাসী গাইডো ভান রসাম (Guido Van Rossum) । বর্তমানে পাইথন প্রোগ্রামের ব্যবহার মাত্রাতিরিক্ত বৃদ্ধি পাচ্ছে। বহুমুখী ব্যবহার ও সহজবোধ্য উচ্চস্তরের মেশিন ও প্রোগ্রামিং ভাষা হওয়াতে পাইথন বিশ্বের প্রোগ্রামারের কাছে একটি জনপ্রিয় প্রোগ্রামিং ভাষায় পরিণত হচ্ছে। বিশ্বের বিভিন্ন স্কুল, কলেজ ও বিশ্ববিদ্যালয়ের পাঠ্যবই ও সিলেবাসে পাইথন প্রোগ্রামিং ভাষা অন্তর্ভুক্ত করা হয়েছে। বাংলাদেশেও পাঠ্যপুস্তকে নতুন শিক্ষাক্রমে ডিজিটাল প্রযুক্তি বিষয়ে সম্পৃক্ত করেছে।