Friday, September 23, 2011

জীবনের গল্প (পর্ব-১)

স্কুল-কলেজে জীববিজ্ঞান পড়েছি কেবল পাস করার জন্য। চোখ-মুখ বন্ধ করে গোগ্রাসে মুখস্থ করেছি আর পরীক্ষার হলে উগড়ে দিয়ে এসেছি। উচ্চ মাধ্যমিকেতো জীববিজ্ঞান নেয়ারই ইচ্ছে ছিলো না, নিয়েছিলাম কেবল ডাক্তারি পড়ার পথটা খোলা রাখতে। জীববিজ্ঞানের সুখস্মৃতি বলতে কেবল পরীক্ষার খাতায় আঁকা ছবিগুলো। দেখে শান্তি পেতাম। মনে হতো, বাহ্‌, এই খাতাটা দেখার মতো!  ব্যস, এই হলো আমার জীববিজ্ঞান পাঠ।

ইদানিং বায়োইনফরমেটিক্‌স্‌ নিয়ে কিছু পড়াশুনা করছি। শুরু থেকেই মনের মধ্যে ভয় – বায়োলজিতো (জীববিজ্ঞান) পারি না, কতখানি এগুতে পারবো? তবে আনন্দের কথা - একটা ভাল বই পেয়েছি – Introduction to Bioinformatics Algorithms । লেখকঃ Jones ও Pevzner। তারা আমাকে অভয় দিয়েছেন। কম্পিউটারওয়ালাদের নাকি খুব বেশি বায়োলজি জানতে হয় না; যেটুকু জানতে হয় সেটুকু নাকি ১০ পাতাতেই লিখে ফেলা যেতে পারে! তবে ভাগ্য ভালো, লেখকরা ১০ পাতায় কাঠখোট্টা করে লিখেননি। অনেকটা গল্পের মতো করে লিখেছেন। যা লিখেছেন তা যে আগে জানা ছিলো না এমন নয়, তবে এমনভাবে মনে গেঁথে যায়নি আগে। জীন কোথায় থাকে তা বলেই তারা থামেননি, সাথে বলেছেন কিভাবে মানুষ ধারণা করলো যে জীন কোথায় থাকতে পারে; কেবল জীন সিকোয়েন্সের আবিষ্কারের তথ্যটুকু দেননি, বরং এই তথ্যগুলো কিভাবে বিজ্ঞানীরা বের করলেন সেই গল্পগুলোও বলেছেন। মুগ্ধ হয়ে গেলাম পড়ে। এতটাই মুগ্ধ যে, তেমন করে বাংলায় গল্প বলার দুঃসাহস জাগলো।

 রবার্ট হুক
ছবিঃ রবার্ট হুক

জীবনের রহস্য লুকিয়ে আছে যে কোষের মাঝে, সেই কোষ কিন্তু আবিষ্কৃত হয়েছে বহুদিন আগে – প্রায় সাড়ে তিনশো বছর আগে, ১৬৬৫ সালে। রবার্ট হুক অনুবীক্ষণ যন্ত্রে প্রথম দেখলেন যে, জীবদেহ কোষ নামের ছোট ছোট ভাগে বিভক্ত। পরবর্তীতে স্লেইডেন আর সোয়ান বললেন, জগতে বিচিত্র যত জীব আছে সবারই দেহ গঠিত হয়েছে কোষ দিয়ে। কেমন আশ্চর্য লাগে না? সকল জীব একই ধরনের জিনিস দিয়ে তৈরি! গাছপালা, মানুষ, পশুপাখি, আরশোলা, ছত্রাক, ভাইরাস, ব্যাকটেরিয়া সবই তৈরি কোষ দিয়ে। এটাই জীববিজ্ঞানে বিখ্যাত ‘কোষ তত্ত্ব’ নামে পরিচিত। মজার কথা কি জানেন, এই কোষতত্ত্বের আগে কিন্তু লোকজন জীববিদ্যাকে বিজ্ঞানই মনে করতো না! পরে আস্তে আস্তে অবস্থা এমন দাঁড়ায় যে, কোষ নিয়ে গবেষণাই হয়ে ওঠে জীবনের গবেষণা।

 কোষ
ছবিঃ কোষ

সব জীবের কোষ কিন্ত একরকম না, হাজার রকমের বৈচিত্র্য। তবে যত বৈচিত্র্যই থাকুক না কেন, তারা প্রত্যেকে একটা নির্দিষ্ট চক্র মেনে চলে- জন্ম, খাওয়া, বংশ-বৃদ্ধি ও মৃত্যু। তাদের জীবনচক্র অবিশ্বাস্য রকমের নিয়ম মেনে চলে। একটা উদাহরণ দেই – বংশবৃদ্ধির জন্য যা যা জিনিসপত্র প্রয়োজন তার সবকিছু যোগাড় করে তারপরেই কেবল প্রতিটা কোষ বংশবৃদ্ধির দিকে মনোযোগ দেয়। এ নিয়মের ব্যত্যয় ঘটলে দুনিয়াতে তোলপাড় লেগে যেত। কিন্তু কোষের মধ্যে কী এমন আছে যা তার সব কাজের মধ্যে সমন্বয় সাধন করে? কী এমন আছে যা কোষের মস্তিষ্কের মতো কাজ করে? আসলে এসব কাজের সবই নিয়ন্ত্রিত হয় জটিল জৈব-রাসায়নিক বিক্রিয়ার মাধ্যমে। এদেরকে বলে ‘পাথওয়ে’।

কোষকে অনুবীক্ষন যন্ত্র ছাড়া দেখা না গেলে কি হবে, তাদের কাজে এত জটিলতা থাকলে কি হবে, তাদের সকলের গঠন ও কাজের প্রক্রিয়ার মূল সূত্র কিন্তু একই ধরনের। জগতের সকল জীবেই তিন ধরনের অণু আছে –ডি.এন.এ., আর.এন.এ., ও প্রোটিন। কোষ কিভাবে কাজ করবে সেটার বিস্তারিত বিবরণ থাকে ডি.এন.এ. তে। আর.এন.এ. সেই বিস্তারিত তথ্য থেকে প্রয়োজনমতো কিছু তথ্য কোষের বিভিন্ন জায়গায় নিয়ে যায় যেগুলো প্রোটিন তৈরির ছাঁচ হিসেবে কাজ করে। প্রোটিন এনজাইম গঠন করে বিভিন্ন গুরুত্বপূর্ণ জৈবরাসায়নিক প্রক্রিয়ায় অংশ নেয়, এক কোষ থেকে অন্য কোষে তথ্য আদান-প্রদান করে, দেহের বিভিন্ন অংশ গঠন করে। এভাবেই চলে কোষের কাজ।

কোষের কথা অনেক বলেছি, এখন বরং ঐসব ডি.এন.এ., আর.এন.এ., ও প্রোটিন কিভাবে আবিষ্কার হলো সেই গল্পে যাই।

কোষকে ভালভাবে বিভাজন করে বিজ্ঞানীরা তার নিউক্লিয়াসের ভিতর একসময় সুতার মতো ক্রোমোজোম আবিষ্কার করলো। আবিষ্কারের পর তারা অবাক হয়ে লক্ষ করল যে, একেকটা জীবের একেক সংখ্যক ক্রোমোজোম আছে। তারা ধারণা করলো, হয়তো এর মধ্যেই প্রজাতিভিত্তিক বৈশিষ্ট্যগুলোর ভান্ডার আছে।

গ্রেগর জোহান মেন্ডেল মটরশুটি
ছবিঃ গ্রেগর জোহান মেন্ডেল ও মটরশুটি গাছ
 
একজন ধর্মযাজকের কথা বলি। নাম গ্রেগর জোহান মেন্ডেল। তিনি ১৮৫৬ থেকে ১৮৫৭ সালের মধ্যে প্রায় ২৯,০০০ মটরশুটি গাছ চাষ করেন। এসব গাছের উপর পরীক্ষা-নিরীক্ষা করে তত্ত্ব দিলেন যে, প্রজাতির বংশানুক্রমিক বৈশিষ্ট্যের জন্য ‘জীন’ দায়ী। প্রতিটা বৈশিষ্ট্যের জন্য এই জিনের ২টা অংশ থাকে। একটা আসে মায়ের কাছ থেকে, একটা বাবার কাছ থেকে। এর মধ্যে যে অংশটা প্রকট হয়, সেটাই দেখা যায়, বাকিটা লুকায়িত থাকে। মেন্ডেল জীন নিয়ে এত কথা বললেও, সেই জীন আসলে কি, কোথায় থাকে, কিভাবে কাজ করে কিছুই বলতে পারেননি। 

এই জীন কোথায় আছে তা বের হয়েছে আরো প্রায় ৫০ বছর পরে। মরগ্যান নামের এক বিজ্ঞানী ছিলেন। থাকতেন নিউইয়র্কে। ব্যস্ত শহর। ওখানেতো আর বিশাল জায়গা নেই যে উনি মেন্ডেলের মতো বাগান করবেন। পরীক্ষা-নিরীক্ষার জন্য উনি বেছে নিলেন ফলের উপর বসা মাছিদের। শহুরে সংস্কৃতি বলে কথা। তবে এই মাছিদের ভাল গুণ হলো – তাদের জীবন ক্ষণস্থায়ী এবং প্রজননক্ষমতা ব্যাপক, যে কারণে অল্প সময়ের মধ্যে বেশি সংখ্যক প্রজন্ম পর্যবেক্ষণ করা যায়।

মরগ্যান ফলের মাছি
ছবিঃ মরগ্যান ও ফলের মাছি
 
তো, এই পর্যবেক্ষণের এক পর্যায়ে মরগ্যান একটা মাছির চোখের রঙে ভিন্নতা দেখতে পেলেন। সাধারণত ঐসব মাছিদের চোখের রঙ হয় লাল, এর মধ্যে একটার রঙ দেখতে পেলেন সাদা। এই সাদা-চোখওয়ালা মাছিটাই যে এত গুরুত্বপূর্ণ হয়ে ওঠবে কে জানতো। মরগ্যান খুব সতর্কভাবে এই সাদা-চোখওয়ালা মাছিটার সাথে সাধারণ মাছির ক্রসওভার ঘটালেন, সহজভাবে বললে তাদের মধ্যে প্রজনন ঘটালেন। ফলাফল ছিলো আশ্চর্যজনক, পরবর্তী প্রজন্মগুলোতে সাদা-চোখওয়ালা মাছি খুব একটা বেশি দেখা যায় না, যাও দেখা যায় তাও কেবল পুরুষ মাছির মধ্যে। ততদিনে জানা হয়ে গেছে যে, এক ধরনের ক্রোমোজোম (সেক্স ক্রোমোজোম) আছে যা ঐসব মাছির লিঙ্গ নির্ধারণ করে। আর, সাদা রঙ যেহেতু কেবল পুরুষ মাছির মধ্যেই দেখা যায়, তাই মরগ্যান চিন্তা করলেন যে, চোখের রঙ নির্ধারণের জন্য যে জীন আছে তা নিশ্চয়ই সেই লিঙ্গ নির্ধারণকারী ক্রোমোজোমের মধ্যে আছে। এভাবেই বুঝা গেলো যে, জীন আছে আসলে ক্রোমোজোমের ভিতরে।

মরগ্যান কিন্তু তখনও জানতেন না জীন তৈরি হয়েছে কি দিয়ে। তবে ফলের মাছিকে কেন্দ্র করে গবেষণা চালিয়ে গেছেন তিনি তার ছাত্রদের সাথে নিয়ে। মাছি পর্যবেক্ষণের সময় মরগ্যান দেখলেন, কিছু কিছু মাছির গায়ের রঙ অন্যদের চেয়ে ভিন্ন, ধূসর না হয়ে তাদের রঙ হয়েছে কালো। আশ্চর্যের সাথে খেয়াল করলেন, ঐসব মাছির পাখার গঠনও ভিন্ন। ইংরেজিতে সেই ভিন্ন গঠনের পাখাকে বলে ‘vestigial wings’। (আমি vestigial wings এর ভাল অনুবাদ করতে পারলাম না বলে এমনই রেখে দিলাম।) উনি দেখলেন এরকম কিছু কিছু বৈশিষ্ট্য বেশির ভাগ সময় একই সাথে পাওয়া যায়, আলাদা-আলাদা ভাবে প্রায় দেখাই যায় না। এ ঘটনাকে মরগ্যান ক্রোমোজোমের একটা মডেলের মাধ্যমে ব্যাখ্যা করার চেষ্টা করলেন। মা ও বাবা প্রত্যেকের কাছ থেকে একটা করে দুইটা সুতার মতো ক্রোমোজোম থেকে যখন নতুন সন্তান তৈরি হয়, তখন কোন এক জায়গায় ক্রোমোজোম দুইটা ভেঙ্গে যায়। এরপর মায়ের এক অংশ আর বাবার আরেক অংশ নিয়ে নতুন সন্তান তৈরি হয়। নিচের ছবিটার মতো।

ক্রস-ওভার
ছবিঃ ক্রস-ওভার

উপরের ছবিতে সাদা সুতাকে যদি মায়ের ক্রোমোজোম ধরি, আর কালোটাকে বাবার, তাহলে ছবিটা থেকে নিশ্চয় বুঝতে পারছেন যে, মাঝামাঝি একটা জায়গায় ক্রোমোজোম দু’টো ভেংগে গিয়ে, এরপর সাদাটার এক অংশ কালোটার অন্য অংশের সাথে জোড়া লেগে সাদা-কালো দুইটা সুতা তৈরি হয়েছে। অন্যভাবে বললে, মায়ের ক্রোমোজোমের কিছু অংশ আর বাবার ক্রোমোজোমের কিছু অংশ মিলে সন্তানের ক্রোমোজোম তৈরি হয়েছে। একেই বলে ক্রস-ওভার। ক্রস-ওভারের কারণেই সন্তান কিছু বৈশিষ্ট্য পায় মায়ের, আর কিছু বাবার।

কি ভাবছেন? এই ক্রস-ওভারের সাথে মরগ্যানের পর্যবেক্ষণের দুইটা বৈশিষ্ট্য বেশির ভাগ সময় একই সাথে থাকার সম্পর্ক কোথায়? দাঁড়ান দেখাচ্ছি। মরগ্যান বলছেন, জীনগুলো ক্রোমোজোমের সুতার দৈর্ঘ্য বরাবর একটা নির্দিষ্ট জায়গায় থাকে। দুইটা জিন যদি কাছাকাছি অবস্থানে থাকে, তাহলে তাদের একসাথে থাকার সম্ভাবনা বাড়ে। দুইটা জিন কাছাকাছি থাকলে ক্রোমোজোমটা হয় দুইটারই ডানে অথবা দুইটারই বামে ভাঙ্গে, মাঝে তো জায়গা কম (কাছাকাছি তো), তাই মাঝে ভাঙ্গে কম। আর মাঝে কম ভাঙ্গে বলে দুইটা বৈশিষ্ট্য আলাদাও হয় কম। দুইটাকেই তাই বেশিরভাগ সময় একসাথে দেখা যায়। আর এরকম সম্পর্কযুক্ত জিনকে বলে লিঙ্কড জিন। মরগ্যান এও বলেন যে, দুইটা জীন যত বেশি সম্পর্কযুক্ত, তত বেশি কাছাকাছি থাকে তারা।

এই যে  মরগ্যান বললেন, সম্পর্কযুক্ত জিনগুলো বাস্তবে ক্রোমোজোমের মধ্যে কাছাকাছি অবস্থান করে, তার এই কথা যদি সত্য হয়, তাহলে বাস্তবে সম্পর্কযুক্ত জীনগুলো যদি নিবিড়ভাবে পর্যবেক্ষণ করা হয়, তাহলে নিশ্চয় বের করা যাবে কোন্‌ জীন অন্য কোন্‌ জীনের কাছে থাকে। ধরা যাক, ক, খ এর কাছে; আবার খ, গ এর কাছে; গ, ঘ এর কাছে। তাহলে ক, খ, গ, ঘ কে তাদের মধ্যকার দূরত্ব অনুসারে সাজালে একটা সিকোয়েন্স (ক-খ-গ-ঘ) পাওয়া যায় না? এভাবে, সম্পর্কযুক্ত জীনগুলো ক্রোমোজোমের দৈর্ঘ্য বরাবর পাশাপাশি বসালে নিশ্চয়ই জীনের একটা সিকোয়েন্স পাওয়া যাবে! এই চিন্তা মাথায় রেখে মরগ্যানের এক ছাত্র আলফ্রেড স্টুর্টভান্ট (বাংলা অনুবাদে ভুল হতে পারে, ইংরেজিতে Alfred Sturtevant) ১ম জেনেটিক ম্যাপ তৈরি করেছিলেন। কোন্‌ জীন কোন্‌টার কাছে সেটা কিভাবে বের করেছিলেন তা পরের উদাহরণটা দেখলেই বুঝা যাবে পরিষ্কারভাবে।
স্টুর্টভান্ট তিনটা জিন নিয়ে পরীক্ষা চালিয়েছেন – cn (যা চোখের রঙ নির্ধারণ করে, মাছির ক্ষেত্রে লাল নাকি সাদা), b (যা দেহের রঙ নির্ধারণ করে, মাছির ক্ষেত্রে ধূসর নাকি কালো), vg (যা ডানার ধরণ নির্ধারণ করে, মাছির ক্ষেত্রে স্বাভাবিক নাকি ভেস্টিজাল)।  একটা স্বাভাবিক (ধূসর দেহ+স্বাভাবিক ডানা) মাছির সাথে (ধরি বাবা) কালো দেহ ও ভেস্টিজাল ডানাবিশিষ্ট মাছির (ধরি মা) প্রজনন ঘটালেন। দেখলেন, মাত্র ১৭% সন্তানদের মধ্যে এই দুই বৈশিষ্ট্যের মিশ্রণ পাওয়া গেছে। ৮৩% সন্তানই হয় বাবার উভয় বৈশিষ্ট্য (ধূসর দেহ+স্বাভাবিক ডানা) অথবা মায়ের উভয় বৈশিষ্ট্য (কালো দেহ+ভেস্টিজাল ডানা) পেয়েছে। তার মানে গায়ের রঙ আর ডানার ধরণ নির্ধারণকারী জীনগুলো, b ও vg, কাছাকাছি আছে। আবার স্বাভাবিক মাছি (ধূসর দেহ+লাল চোখ) এর সাথে (কালো দেহ+সাদা চোখ) বিশিষ্ট মাছির প্রজনন ঘটিয়ে দেখলেন, মাত্র ৯% (আগের দুইটার চেয়েও কম) সন্তানের ক্ষেত্রে দুই বৈশিষ্ট্যের মিশ্রণ পাওয়া গেছে। তার মানে দেহের রঙ আর চোখের রং নির্ধারণকারী জীনগুলোও, b ও cn, কাছাকাছি। এবং b আর cn এর মধ্যকার দূরত্ব b আর vg এর মধ্যকার দূরত্বের চেয়ে কম। এরপর cn আর vg নিয়ে পরীক্ষা করে দেখলেন, মাত্র ৮% ক্ষেত্রে বৈশিষ্ট্য আলাদা হয়, অর্থাৎ, cn আর vg আরো বেশি কাছে। তিনটা বৈশিষ্ট্য একসাথে করে, স্কেল অনুসারে সাজালে দেখা যায়, cn এর এক পাশে b (৯%), অন্যপাশে vg (৮%) থাকবে। তাহলে b আর vg এর মধ্যে দূরত্ব হবে ১৭% এর সমানুপাতিক।

সম্পর্কযুক্ত জীনের তুলনামূলক অবস্থান
ছবিঃ সম্পর্কযুক্ত জীনের তুলনামূলক অবস্থান

এভাবেই বাকি বৈশিষ্ট্যগুলো পর্যবেক্ষণ করে পুরো জেনেটিক ম্যাপ তৈরি করা যাবে, এভাবে ভাবলেই কেমন যেন রহস্য সমাধানের গন্ধ পাওয়া যায়, তাই না?

(আগামী পর্বে শেষ করার ইচ্ছা আছে, যদি লিখার সময়, সুযোগ ও ইচ্ছার মধ্যে সমন্বয় ঘটে।)

Friday, September 16, 2011

বোকা কম্পিউটারের চালাকি – ৩ : আঁকিবুকি

সংবিধিবদ্ধ সতর্কীকরণঃ এই লেখা কম্পিউটারবোদ্ধাদের জন্য নহে।

ইট দিয়ে ঘর বানানো

উমম... বয়স তখন কত হবে আমার, ৭-৮ বছর হবে হয়তো। আমাদের বাড়িতে কী কারণে যেন অনেক ইট আনা হয়েছিল। সারি করে সাজিয়ে রাখা হয়েছিল উঠোনের পাশে। ইটগুলো কী কাজে লেগেছিল তা মনে না থাকলেও, ওগুলো যে আমার খেলার উপকরণ হয়ে গিয়েছিল তা বেশ মনে আছে। ঘর বানাতাম ইট দিয়ে। তিন-চার তলা বাড়িও বানাতাম। এসব দেখে বাবা-মা-আত্মীয়স্বজনেরা বলতো, “দেখো, ছেলেটা কেমন বাড়ি বানিয়ে ফেলেছে, বড় হয়ে ইঞ্জিনিয়ার হবে।” তখন ওদের কাছে, এবং অবশ্যই আমার কাছেও, ইঞ্জিনিয়ার মানেই “সিভিল” ইঞ্জিনিয়ার। কম্পিউটার ইঞ্জিনিয়ারিং কিংবা অন্য কোন ইঞ্জিনিয়ারিং আছে বলে ধারণাই ছিলনা। যাই হোক, বাড়ি বানানো শেষে মনে হলো, বাড়ির সামনে নিজের নামটাও লিখে দেই। তখনই আবিষ্কার করলাম – ইট না ভেঙ্গে ইংরেজি H কিংবা I লিখা সহজ হলেও, যেসব অক্ষরে বাঁক আছে (যেমনঃ ইংরেজি S) সেগুলো লিখা সহজ না।

মেঝে IS

S কে বাঁক ছাড়া লেখা সম্ভব হলেও ‘অ’, ‘ঈ’ কিংবা ‘শ’ এর মত বাংলা অক্ষরগুলোকে ইট দিয়ে লিখা প্রায় অসম্ভবের পর্যায়ে পড়ে। জায়গাও লাগে প্রচুর। এত জায়গা দেয়াতো আর সম্ভব না, অতএব, নামের প্রথম অক্ষর (ইংরেজিতে) লিখেই ক্ষান্ত হয়েছিলাম।

বয়স হলে আবিষ্কার করলাম- কম্পিউটারের মনিটরে অক্ষর দেখানো ইট দিয়ে অক্ষর লেখার মতোই। কেবল জায়গামতো ইটগুলো বসাতে হবে। মনিটরকে ইটের পরিবর্তে টাইল্‌স্‌ বসানো মেঝের মতো চিন্তা করা যেতে পারে, যে টাইল্‌স্‌গুলোকে আর ভাঙ্গা যায় না।

মেঝে

চলুন মেঝের উপর ‘অ’ লিখি।

অ

এবার, যেসব টাইল্‌সের উপর দিয়ে লেখাটা গেছে, সেসব জায়গায় কালো রংয়ের টাইল্‌স্‌ ব্যবহার করি।

অ

লেখাটা মসৃণ হয়নি, তাই না? এছাড়া টাইলসগুলো বড় হওয়ায় বেশি জায়গা নিচ্ছে, আর বাঁকগুলোও ভালভাবে বুঝা যাচ্ছে না, কেমন যেন চার-কোণা টাইপ হয়ে গেছে, তাই না? চলুন এবার ছোট আকারের টাইল্‌স্‌ ব্যবহার করি, আগের টাইল্‌স্‌গুলোর চার ভাগের এক ভাগ। যথারীতি যেসব টাইল্‌সের উপর দিয়ে লেখাটা গেছে, সেসব জায়গায় কালো রংয়ের টাইল্‌স্‌ ব্যবহার করি।

অ

অ

এবারে মসৃণতা বেড়েছে না? তবে পুরোপুরি হয়নি, তাই না? সিড়ির মতো অমসৃণতা রয়ে গেছে এখনো (নিচে তীর দিয়ে চিহ্নিত)। আবার গোল চিহ্নিত জায়গাটার বাঁকটা কেমন সোজা হয়ে গেছে না? অথচ মূল লেখায় কেমন আকাবাঁকা, তাই না?

অ

আসলে, টাইল্‌সের আকার আরো কমালে (মোট সংখ্যা আরো বাড়ালে) মসৃণতা আরো বাড়বে (নিচের ছবি দেখুন)। তবে কখনোই পুরোপুরি হবে না, ক্ষুদ্রাতিক্ষুদ্র অংশেও একই অভিযোগগুলো রয়ে যাবে। তবে এগুলো যদি খুব-খুব-খুব ক্ষুদ্র হয়, তাহলে আমাদের খালি চোখ সেগুলো ধরতে পারবে না। মনে হবে যেন – খুবই মসৃণ! এখানেই কম্পিউটারের চালাকি।

অ

এই যে ছোট ছোট টাইল্‌সগুলো (দেখতে ছোট আয়তক্ষেত্রের মতো), যেগুলো আর ভাঙ্গা যায় না, যেগুলোর কেবল একটাই রঙ হতে পারে, টেকনিক্যাল ভাষায় একে বলে এক পিক্সেল বা pixel [উইকি]।  উপরে ‘অ’ লিখার জন্য যে টাইল্‌স্‌ বোর্ড ব্যবহার করেছি, সেখানে খানে ৬০ টা পিক্সেল আছে যেগুলো ৪০ টা সারি ও ৪০ টা কলামে সাজানো। তাহলে এর ডিসপ্লে রেজোলিউশন (Resolution  [উইকি]) হলো ৪০x৪০ (পড়া হয় – চল্লিশ বাই চল্লিশ)। এতক্ষণে নিশ্চয়ই বুঝে গেছেন যে, কোন একটা অক্ষর লিখতে কিংবা একটা ছবি আঁকতে যত বেশি পিক্সেল ব্যবহার করা হবে, তত বেশি নিখুঁতভাবে অক্ষরটি লেখা যাবে কিংবা ছবিটি আঁকা যাবে, প্রতিটা পিক্সেল তত বেশি নিখুঁতভাবে রঙ করা যাবে, সেই ছবি তত বেশি বাস্তবের কাছাকাছি হবে।

প্রসঙ্গতঃ কম্পিউটারের মনিটরের ক্ষেত্রে ৮০০x৬০০, ১০২৪x৭৬৮ কিংবা ১২৮০x৭২০ এ ধরনের রেজোলিউশন দেখেছেন কি ডিসপ্লে সেটিংস এ?

Display Settings

আমিতো এখানে একটা পিক্সেলকে কেবল ছোট আকারের আয়তক্ষেত্র দিয়ে এঁকেছি, তবে একে অন্য ভাবেও আঁকা যায় কিন্তু। নিচের ছবিটাই দেখুন না, একই ধরণের পিক্সেলগুলো আয়তক্ষেত্র, লাইন এবং মসৃণ ফিল্টার ব্যবহার করে আঁকা হয়েছে।

বিভিন্ন পদ্ধতিতে পিক্সেল আঁকা

আমার তো কম্পিউটারে লেখালেখি কিংবা আঁকিবুকির ক্ষেত্রে পিক্সেলের কথা মনে পড়ে; ভাবি- কী অবাক কান্ড! অমসৃণ ছবিকেও আমরা কত মসৃণ দেখি! কম্পিউটার কী কৌশলেই না আমাদের চোখকে ফাঁকি দিয়ে যায়!! আপনার?

Wednesday, July 6, 2011

বোকা কম্পিউটারের চালাকি - ২ : কম্পিউটারের ভাষা

সংবিধিবদ্ধ সতর্কীকরণঃ এই লেখা কম্পিউটারবোদ্ধাদের জন্য নহে।

১ম পর্বে দেখিয়েছিলাম – কম্পিউটারকে কিভাবে ০(শূন্য) আর ১(এক) এর মাধ্যমে ইনস্ট্রাকশন দিতে হয়। বড় জটিল সে ইনস্ট্রাকশন, তাই না? এমনভাবে ইনস্ট্রাকশন দেয়া মোটেও আমাদের মতো সাধারণ মানুষের কম্মো নয়, কি বলেন? তবে শুরুটা কিন্তু ওভাবেই ছিল। একারণে তখন কিন্তু তা আমাদের নাগালের মধ্যেও ছিল না। ভাগ্য ভালো, এখন আর সেভাবে হাজার-হাজার-লাখ-লাখ ০ আর ১ লিখতে হয় না। এখন কীভাবে লিখা হয় সেদিকেই নজর দিব আজকে।

একটা অতীব সত্য কথা বলি। কম্পিউটার কিন্তু এখনো ০ আর ১ দিয়ে গঠিত ইনস্ট্রাকশন ছাড়া অন্য কিছু বুঝে না। এটাই তার ভাষা। আমরা বাঙালিরা যেমন বাংলা ছাড়া আর কোন ভাষা বুঝি না (ইংরেজি বা অন্য কোন ভাষাকে আসলে আগে বাংলায় অনুবাদ করে নেই, এরপর বুঝি), তেমনি কম্পিউটারও তার ভাষা ছাড়া অন্য কিছু বুঝে না। ভিন্নভাবে ইনস্ট্রাকশন দিলে সে আগে নিজের ভাষায় রূপান্তর করে নেয়। কম্পিউটারের এই ভাষার কেতাবি নাম হলো – মেশিন ল্যাংগুয়েজ [উইকি]।

কিন্তু, মেশিন ল্যাংগুয়েজে কথা বলা তো মেশিনের কাজ। বোরিং আর যান্ত্রিক। এইসব সংখ্যা দিয়ে কথা বলতে কি আমাদের ভাল লাগে? আমরা তো কথা বলি শব্দ দিয়ে, সংখ্যা দিয়ে না। আচ্ছা, এমন যদি হতো কোন একটা যন্ত্র আমাদের শব্দগুলোকে কম্পিউটারের সংখ্যায় কনভার্ট করে দিচ্ছে, তাহলে ভাল হতো না? এমন কনভার্টার কিন্তু আসলেই আছে। এর নাম কম্পাইলার [উইকি]

চলুন কম্পাইলারের কাজটা একটু দেখে নেই। গত পর্বের আমাদের সিম্পল কম্পিউটারের ইনস্ট্রাকশনগুলোর কথা মনে আছে? ১৫ আর ২০ এর যোগের ইনস্ট্রাকশন ছিল – ০০০১ ০০১৫ ০০২০ (বাইনারিতে কনভার্শনের আগে)। এখানে প্রথম ০০০১ হলো যোগের কার্যনম্বর (কেতাবি নামঃ অপ্‌কোড [উইকি]), আর পরবর্তী ০০১৫ আর ০০২০ হলো যোগের সংখ্যা দু’টি। এই ইনস্ট্রাকশনকে আমাদের পরিচিত ইংরেজি ভাষায় লিখতে বললে হয়তো লিখতাম –

ADD 15,20

তাই না? কম্পাইলার এই ইংরেজি ভাষার ইনস্ট্রাকশনকে নিচের নিয়মে মেশিন ল্যাংগুয়েজে অনুবাদ করতে পারে-

১) প্রথমে ADD কে যোগের কার্যনম্বরে (০০০১) কনভার্ট করবে।
২) এরপর কমার দুই পাশের সংখ্যা দু’টোকে ৪ অংকের সংখ্যায় রূপান্তর করবে (০০১৫, ০০২০)
৩) এরপর তিনটা সংখ্যা একসাথে করবে – ০০০১০০১৫০০২০। ব্যস! হয়ে গেলো।

আপনি-আমি ০০১০০০১৫০০২০ লেখার চেয়ে ADD 15,20 লিখতেই স্বচ্ছন্দ বোধ করবো, তাই না? এর মূল কারণ হলো – আমরা সংখ্যার চেয়ে শব্দ মনে রাখতে পারি সহজে। এইভাবে মেশিন ল্যাংগুয়েজের সংখ্যার জায়গায় কিছু পরিচিত শব্দ বসিয়ে আরেকটা ল্যাংগুয়েজ তৈরি করতে পারি, যেটাকে কম্পাইলার আবার মেশিন ল্যাংগুয়েজে অনুবাদ করতে পারে। এই নতুন ল্যাংগুয়েজটাকে বলে অ্যাসেম্বলি ল্যাংগুয়েজ [উইকি]। এটা মূল মেশিন ল্যাংগুয়েজের অনেক কাছাকাছি, তবে মানুষের জন্যও কিছুটা বোধগম্য।

বিভিন্ন স্তরের প্রোগ্রামিং ল্যাংগুয়েজ 
বিভিন্ন স্তরের প্রোগ্রামিং ল্যাংগুয়েজ। ছবি কৃতজ্ঞতাঃ http://www.webopedia.com/

যোগ, বিয়োগ, গুণ, ভাগ আর মনিটরে ফলাফল দেখানোর ইনস্ট্রাকশনগুলো অ্যাসেম্বলি ল্যাংগুয়েজে কেমন হতে পারে দেখি –

অপারেশন: মেশিন ল্যাংগুয়েজ ইনস্ট্রাকশন :অ্যাসেম্বলি ল্যাংগুয়েজ ইনস্ট্রাকশন
১৫+২০ :০০০১ ০০১৫ ০০২০ADD 15, 20
১০০-৩৩ :০০০২ ০১০০ ০০৩৩SUBTRACT 100, 33
৪৫x২৯ :০০০৩ ০০৪৫ ০০২৯MULTIPLY 45, 29
৬০÷৪০০০৪ ০০৬০ ০০০৪DIVIDE 60, 4
ফলাফল দেখানো :০০০৫ ০০০০ ০০০০PRINT

(উল্লেখ্যঃ এ লেখার ইনস্ট্রাকশনগুলো নমুনা মাত্র, হুবহু এভাবে মেশিন/অ্যাসেম্বলি ল্যাংগুয়েজ লেখা হয় না, তবে উদাহরণগুলো মূল ল্যাংগুয়েজের কাছাকাছি।)

এইবার এক বদলোকের কথা শুনি। সে যোগ-এর অনুবাদ ADD না করে করেছে SUM, বিয়োগের অনুবাদ করেছে DEDUCT। কমার বদলে লিখেছে AND। তার লেখা ইনস্ট্রাকশনগুলো এইরকম

SUM 15 AND 20
DEDUCT 100 AND 30

এখন কি হবে? আমাদের উপরের বানানো কম্পাইলার তো SUM/DEDUCT বুঝে না, এটা অনুবাদও করতে পারে না। আবার কমার দুই পাশের সংখ্যা দু’টো আলাদা করে, AND এর দু’পাশের না। আসলে, এখানে যার যা খুশি লিখতে পারবে না। প্রতিটা ল্যাংগুয়েজের কিছু নিয়ম-কানুন আছে, নিজস্ব শব্দভান্ডার আছে। সবাইকে এইসব নিয়ম-কানুন মেনে চলতে হবে। কম্পিউটারের ল্যাংগুয়েজের এইসব নিয়ম-কানুনই হলো তার সিন্‌ট্যাক্স [উইকি]। সিন্‌ট্যাক্স ঠিক রেখে ইনস্ট্রাকশন দিতে হবে। আমাদের স্বাভাবিক ভাষার ব্যাকরণের মতোই অনেকটা- কিছু অর্থহীন শব্দ একের পর এক বসিয়ে দিলেই হলো না, ব্যাকরণ মেনে বসাতে হবে।

সিন্‌ট্যাক্স ঠিক রেখে অ্যাসেম্বলি ল্যাংগুয়েজে কমান্ড দেয়া মেশিন ল্যাংগুয়েজের চেয়ে কিছুটা সহজতর হলেও, তা আমাদের স্বাভাবিক ল্যাংগুয়েজ থেকে অনেক দূরের ল্যাংগুয়েজ। এরকম ল্যাংগুয়েজকে বলে লো-লেভেল ল্যাংগুয়েজ [উইকি]। এই ল্যাংগুয়েজগুলো বিভিন্ন ধরনের কম্পিউটারের ক্ষেত্রে (যেমন- INTEL প্রসেসর, AMD প্রসেসর ইত্যাদি) বিভিন্ন রকম হতে পারে। আরেক ধরনের ল্যাংগুয়েজ আছে যেগুলো সব ধরনের কম্পিউটারের জন্যই একই রকম এবং আমাদের স্বাভাবিক ল্যাংগুয়েজের আরো কাছাকাছি। এগুলোকে বলে হাই-লেভেল ল্যাংগুয়েজ [উইকি]। প্রোগ্রামিং ল্যাংগুয়েজ [উইকি] বলতে মূলতঃ আমরা এই হাই-লেভেল ল্যাংগুয়েজকেই বুঝে থাকি। খুব পরিচিত আর জনপ্রিয় হাই-লেভেল ল্যাংগুয়েজের মধ্যে C, C++, Java, C#, Pascal, Fortran, HTML, JavaScript অন্যতম। আরো নাম জানার খায়েশ থাকলে এখানে দেখতে পারেন।

শেষ পর্যন্ত তাহলে কি দাঁড়ালো? আমরা হাই-লেভেল প্রোগ্রামিং ল্যাংগুয়েজ ব্যবহার করে যেসব প্রোগ্রাম লিখি কম্পাইলার তা অনুবাদ করে প্রথমে লো-লেভেল ল্যাংগুয়েজে, পরে মেশিন ল্যাংগুয়েজে রূপান্তর করে। কখনো কখনো সরাসরি মেশিন ল্যাংগুয়েজেও রূপান্তর করতে পারে, তবে শেষ পর্যন্ত মেশিন ল্যাংগুয়েজে আসে। আর কেবল তখনই কম্পিউটার তার কাজ করতে পারে। কারণ এটাই যে তার মাতৃভাষা!

ভিন্ন প্রসঙ্গঃ এখন গুগল ট্রান্সলেটর অনেক ভাষার অনুবাদ করতে পারে। এমনকি বাংলা ভাষার মতো জটিল ভাষাকেও অনুবাদ করা শুরু করেছে। ইস, যদি গুগল ট্রান্সলেটর আমাদের ন্যাচারাল ল্যাংগুয়েজকে (যেমনঃ ইংরেজি) কোন একটা প্রোগ্রামিং ল্যাংগুয়েজে (যেমনঃ সি) অনুবাদ করতে পারতো!

Friday, July 1, 2011

বোকা কম্পিউটারের চালাকি-১ : শূন্য আর একের খেলা

সংবিধিবদ্ধ সতর্কীকরণঃ এই লেখা কম্পিউটারবোদ্ধাদের জন্য নহে।

আপনি কখনো গাধা পুষেছেন? মনে হয় পোষেননি। সমস্যা নেই। তবে যদি কখনো পোষেন, তাহলে আপনাকে এখনি একটা জরুরি পরামর্শ দিয়ে রাখি। গাধার সামনে কখনো কম্পিউটারকে ‘গাধা’ বলে গালি দিবেন না। কেন? কারণ আপনার পোষা গাধাটি ‘মাইন্ড’ করতে পারে। কম্পিঊটারের তো অত বুদ্ধি নেই যে আপনি তাকে ‘গাধা’ বলবেন, এটা গাধা জাতির জন্য চরম অবমাননাকর বৈকি। ভাবছেন, আমার মতলবটা কী? আমার মতলব খুব সোজা-সাপ্টা। আমি বলতে চাই – কম্পিউটারের বুদ্ধিমত্তা বলে কিছু নাই। আপনার মনে হয় মানতে সমস্যা হচ্ছে। জানেন, আমারও সমস্যা হতো! ভাবতাম কম্পিউটার খুব বুদ্ধিমান একটা যন্ত্র; তাকে যা করতে বলা হয় সবই পারে। যতটুকু মনে পড়ে… এস,এস,সি, পাশের ঠিক পরের কথা। সাইনবোর্ডে যখন দেখলাম – ‘কম্পিউটারে চক্ষু পরীক্ষা করা হয়’ যন্ত্রটার প্রতি শ্রদ্ধা বেড়ে গেল। কম্পিউটার ডাক্তারিও শিখে গেছে। (চুপে চুপে বলে রাখি- আমার যখন চশমার দরকার হলো তখন আমি সেই ডাক্তারের কথা মনে আনিনি, অনেক টাকা লাগবে ভেবে।) শুনেছি কম্পিউটার নাকি রকেটও চালাতে পারে! ভাবতাম- না জানি আরো কত কী পারে!

তবে প্রোগ্রামিং যখন শিখলাম, তখন এতদিনের ভুল ভাঙ্গলো। কম্পিউটার বেটা একটা বলদ! না, না, বলদের চেয়েও  অধম! (না হলে বলদও মাইন্ড করে বসতে পারে!) বেটা কেবল ০(শূন্য) আর ১(এক) ছাড়া কিচ্ছু বুঝে না। আসলে ০ আর ১ ও না, ভোল্টেজ (বা কারেন্ট) আছে কি নাই এইটুকু ছাড়া কিচ্ছু বুঝে না। ০ আর ১ এর মাধ্যমে কম্পিউটারকে ইন্সট্রাকশন দেয়া হয় কাজ করার জন্য। এই ইন্সট্রাকশন পেলেই সে কাজ করতে পারে, না হলে কিচ্ছু পারে না।

কেবল ০ আর ১ দিয়ে কম্পিউটার তবে এত জটিল সব কাজ করে কীভাবে ভাবছেন? বেটার আসলে দুইটা ভাল গুণ আছে- ১)অনেক দ্রুত কাজ করতে পারে। ২)কাজে ভুল করে না। এই দুই গুণের কারণেই বেটার আজ এত প্রতাপ।

০ আর ১ দিয়ে কিভাবে ইন্সট্রাকশন হয় তা বোধ হয় বুঝা গেলো না। আমাদের কাছে ০১১০১০১১১১০১০০১০০০০১০১১১০১১০০১০১০১০০১১১০০০০০১১ সংখ্যাটি কেবল ০ আর ১ দিয়ে গঠিত একটি সংখ্যা মনে হলেও কম্পিউটারের কাছে এটা একটা ইন্সট্রাকশন। এবারও মনে হয় পরিষ্কার হলো না। দেখি একটু পরিষ্কার করতে পারি কিনা। তার আগে ছোট্ট একটা কথা বলে রাখি – আমরা ১, ২, ৩, ৪, ১০০, ২০০, ১০০০, ২০০০, ১ লাখ, ২ লাখ যত সংখ্যা জানি সব সংখ্যাকেই বাইনারি (বাংলায়- দ্বিমিক) পদ্ধতিতে প্রকাশ করা যায়।

তো, যা বলছিলাম। কম্পিউটারের কাছে আসলে প্রতিটা ০ আর ১ এর বিশেষ অর্থ থাকে। এই ০ আর ১ দিয়ে গঠিত ইন্সট্রাকশনের মাধ্যমেই কম্পিউটার বুঝে কখন কোন্ কাজটা করতে হবে।

ধরুন খুব সাধারণ একটা কম্পিউটার বানাতে যাচ্ছি যেটা ৫ টা কাজ করতে পারে।
    ১) যোগ
    ২) বিয়োগ
    ৩) গুণ
    ৪) ভাগ
    ৫) ফলাফল মনিটরে দেখানো

বাইনারির কথা ভুলে যাই আপাতত। চলুন প্রতিটা কাজকে নাম্বারিং করে ফেলি আগে। ১ নম্বর কাজ মানে যোগ, ২ নম্বর কাজ মানে বিয়োগ, এভাবে ৩, ৪ আর ৫ মানে গুণ, ভাগ আর ফলাফল মনিটরে দেখানো। যোগ-বিয়োগ-গুণ-ভাগ প্রত্যেকটাতেই ২ টা করে সংখ্যা লাগে, তাই না? যেমন ১৫+২০, ১০০-৩৩, ৪৫x২৯, ৬০÷৪। একটা ইন্সট্রাকশন দিতে হলে তাই ৩টা জিনিস লাগবে।

একটি ইন্সট্রাকশনের ৩ টি অংশ

    ১) কত নম্বর কাজ করতে হবে তা বলতে হবে।
    ২) ১ম সংখ্যাটা কত তা বলতে হবে।
    ৩) ২য় সংখ্যাটা কত তা বলতে হবে।

১৫ আর ২০ যোগ করার ইন্সট্রাকশনটা নিচের মতো হতে পারে কিনা দেখুনতো।

১৫+২০ এর ইন্সট্রাকশন (১৫+২০)

এখানে প্রথম ঘরের ১ মানে যোগ করতে হবে, পরের ২ ঘর বিবেচনা করলে বুঝা যাবে ১৫ আর ২০ যোগ করতে হবে।

আরেকটা উদাহরণ দেখি – ১০০ থেকে ৩৩ বিয়োগ করার ইন্সট্রাকশন দেয়ার চেষ্টা করি। প্রথম ঘরে কাজের (বিয়োগ) এর নম্বর ২ দিতে হবে, পরের দুই ঘরে ১০০ আর ৩৩। তাই না?

১০০-৩০ এর ইন্সট্রাকশন  (১০০-৩০)


নিচের ২ টা ইন্সট্রাকশনের অর্থ বুঝা যায় কিনা দেখেন।

৪৫x২৯ এর ইন্সট্রাকশন  (৪৫x২৯)

৬০÷৪ এর ইন্সট্রাকশন  (৬০÷৪)


ফলাফল মনিটরে দেখানোর ইন্সট্রাকশন তাহলে কেমন হবে? ১ম ঘরে না হয় কাজের নম্বর ৫ (ফলাফল মনিটরে দেখানোর কাজের নম্বর) বসালাম, বাকি দুই ঘর কি ফাঁকা থাকবে? ফাঁকাতো রাখা যাবে না, তাহলে ০ বসিয়ে দিলাম এমনিতেই, যেগুলোর কোন অর্থ নাই।

ফলাফল মনিটরে দেখানোর ইন্সট্রাকশন (ফলাফল মনিটরে দেখানো)


ইনস্ট্রাকশনগুলো তাহলে সংখ্যা হিসেবে কেমন দেখাবে? (উপরের ছবিগুলোর সাথে মিলিয়ে নিন)

১৫+২০ : ১১৫২০
১০০-৩৩ : ২১০০৩৩
৪৫x২৯ : ৩৪৫২৯
৬০÷৪ : ৪৬০৪
ফলাফল দেখানো : ৫০০


ঝামেলা হয়ে গেলো যে! ১৫+২০ এর সংখ্যাগত ইন্সট্রাকশন ১১৫২০ এর প্রথম ১ দেখে না হয় বুঝলাম এটা যোগ, কিন্তু পরে সংখ্যা দুটি কি কি? ১৫ আর ২০? নাকি ১ আর ৫২০? নাকি ১৫২ আর ০? কিভাবে বুঝা যেতে পারে? আরেকটা নিয়ম দরকার। ধরে নিলাম কোন সংখ্যায় ৪ ডিজিটের বেশি থাকবে না। সংখ্যাগুলোর আগে শূন্য (০) বসিয়ে ৪ অংকের সংখ্যা বানাতে হবে। তাহলে ১৫ আর ২০ এর যোগের ইন্সট্রাকশন হবে নিচের মতো-

প্রতিটা সংখ্যা ৪ অংকের

ছবি আঁকা কষ্টকর বলে পরের ছবিগুলো আর দিচ্ছি না। আশা করছি বুঝতে পারছেন। এভাবে প্রতিটি সংখ্যাকে ৪ অংকের ধরলে ইন্সট্রাকশনগুলো দাঁড়ায়  -

১৫+২০ : ০০০১০০১৫০০২০
১০০-৩৩ : ০০০২০১০০০০৩৩
৪৫x২৯ : ০০০৩০০৪৫০০২৯
৬০÷৪ : ০০০৪০০৬০০০০৪
ফলাফল দেখানো : ০০০৫০০০০০০০০

খেয়াল করে দেখুন, ইন্সট্রাকশনগুলোতে এখন আর কোন দ্ব্যর্থবোধকতা নেই। প্রতি ৪টি অংক একটি সংখ্যা প্রকাশ করছে। এখানেই কম্পিউটারের এক ধরনের সীমাবদ্ধতা – কম্পিউটারের বড় সংখ্যার একটা সীমা থাকে, কারণ সংখ্যা প্রকাশের অংকের একটা সীমা থাকে। (এই সীমা দূর করার অন্য জটিল বুদ্ধি আছে, সেদিকে যাচ্ছি না এখন।)

এখন তাহলে চলুন আমাদের কম্পিউটারকে আজকের তারিখের (৩০শে জুন, ২০১১) দিন আর মাসের যোগফল বের করে তা মনিটরে দেখানোর ইন্সট্রাকশন দিয়ে দেই…

১ম ইন্সট্রাকশন: ০০০১০০০৬০০৩০ (০৬ আর ৩০ যোগ করা হচ্ছে)
২য় ইন্সট্রাকশন: ০০০৫০০০০০০০০ (ফলাফল মনিটরে দেখানো হচ্ছে)
একসাথে লিখলে হবে – ০০০১০০০৬০০৩০০০০৫০০০০০০০০

এখন কেবল এগুলোকে ইন্সট্রাকশনগুলোকে বাইনারিতে প্রকাশ করলেই কেল্লা ফতে। তবে বাইনারিতে ৪ অংকের মাধ্যমে সর্বোচ্চ ১৫ পর্যন্ত লেখা যায়। তাই বড় সংখ্যার যোগ-বিয়োগ করতে হলে বেশি অংকের সংখ্যা বানাতে হবে। ৮ অঙ্কের বাইনারি সংখ্যা দিয়ে ২৫৫ পর্যন্ত লিখা যায়। যেহেতু আমাদের উদাহরণে সর্বোচ্চ সংখ্যা ১০০ তাই ৮ অংকের বাইনারি সংখ্যা হলেই হবে। স্বাভাবিক ডেসিমেল সংখ্যাকে কিভাবে বাইনারিতে রূপান্তর করা যায় তা না হয় অন্য কোন দিন অন্য কোন সময়ে বলবো। বাইনারিতে প্রতিটি ইন্সট্রাকশন তাহলে হবে ২৪ অংকের (৩ সংখ্যার প্রতিটি ৮ অংকের)। নিচে কেবল ০ আর ১ এর সমন্বয়ে বাইনারিতে তারিখের দিন আর মাসের ইন্সট্রাকশনগুলো কেমন হবে দেখে নেই -

১ম ইন্সট্রাকশন: ০০০০০০০১০০০০০১১০০০০১১১১০
২য় ইন্সট্রাকশন: ০০০০০১০১০০০০০০০০০০০০০০০০

একসাথে করবো?
০০০০০০০১০০০০০১১০০০০১১১১০০০০০০১০১০০০০০০০০০০০০০০০০।
বাপরে বাপ! ২ টা ইন্সট্রাকশনই এত্ত বড়!

এভাবে একটার পর একটা ইন্সট্রাকশন লিখে দিলে কম্পিউটার কাজ করতে পারে। জেনে হয়তো অবাক হবেন – শুরুর দিকে মানুষজন এইভাবেই ০ আর ১ লিখে কম্পিউটারকে কাজ করাতো। এখন অবশ্য তা করে না। কিভাবে করে? অন্য কোন দিন না হয় সেদিকে যাওয়া যাবে।

Friday, June 3, 2011

এলোমেলো - ০৭

সঠিক পথ কেবল একটা, তার থেকে ভিন্ন পথ অগণিত...

Wednesday, June 1, 2011

শব্দ-দূষণ

- এসো, পরিচয় করিয়ে দেই। এই হলো অমিত... তোমার চেয়ে দুই বছরের সিনিয়র।
- অমিত দা, নাকি অমিত ভাই?

Friday, May 27, 2011

ইচ্ছেসাগর

ইচ্ছে হলে সাগর শুষে নেব
ইচ্ছে হলে ভিজিয়ে দেব সাগর জলে