কম্পিউটারের আদ্যোপান্ত - ইফফাত হাছান অমি


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



অ্যাবাকাসঃ


আঙুল, পশুর হাড়, পুতি, লাঠি দ্বারা বড় সংখ্যার গননা করা কঠিন ও সময়সাপেক্ষ ছিলো বলে মানুষ সহজ যোগ ও বিয়োগের জন্য মেসোপটেমিয় সভ্যতায় প্রায় ৩০০০ খ্রিষ্টপূর্বে অ্যাবাকাস আবিষ্কার করে। এর দ্বারা যোগ-বিয়োগ ও যোগ-বিয়োগ হতে উদ্ভুত গুন-ভাগও করা যেত। এর দ্বারা তৎকালীন সময়ে শুধু যোগ ও বিয়োগের কাজ করা হতো।  পরবর্তীতে গুন ও ভাগের নিয়মও আবিষ্কৃত হয়। কিন্তু এর গুন ও ভাগের প্রক্রিয়াটি তেমন সহজ ছিল না। তবে, এ প্রক্রিয়াটিকে একটি যন্ত্রের রূপ দেওয়ায় এটিকেই প্রথম গননাকারী যন্ত্র বা কম্পিউটার হিসেবে আখ্যায়িত করা হয়।


image (চিত্রঃ অ্যাবাকাস)


এর বাইরের চতুর্ভুজ আকৃতির কাঠামোটিকে বলে অ্যাবাকাস ফ্রেম। এই ফ্রেমের ভিতরে ভিতরে মাঝ অংশের একটু উপরিভাগে অবস্থিত হরিজন্টাল কাঠিটিকে বলে ডিভাইডার বা আনসারিং বার এবং ভার্টিক্যাল লোহার দন্ডগুলোকে বলা হয় কলাম রডস্। এই রডস্ গুলোর প্রত্যেকটিতে পুঁতি বা বিটস্ লাগানো থাকে। ডিভাইডারের উপর প্রত্যেকটি কলাম রডে একটি বিট থাকে, যার মান ৫ এবং নিচে ৪টি বিটস থাকে, যার প্রত্যেকটির মান ১। অর্থাৎ প্রত্যেকটি কলাম রডে ১-৯ পর্যন্ত গননা করা যায়। মাঝের কলাম রডটিকে একক, তার বামেরটিকে দশক, তারও বামেরটিকে শতকের ঘর ধরা হয়। এভাবে রডগুলো ক্রমান্বয়ে বিবেচনা করা হয়। গননা প্রক্রিয়ার পর আনসারিং বারের সাথে যতটি করে বিট যুক্ত থাকে সেটিই ফলাফল হিসেবে বিবেচিত। যেমনঃ ২৫ এর সাথে ১৩ যোগ করতে হলে, প্রথমে দশকের ঘরে নিচের ০১ মানবিশিষ্ট ০২টি বিট আনসারিং বারের কাছে আসবে ও এককের ঘরে উপরের ০৫ মানবিশিষ্ট বিটটি আনসারিং বারের কাছে আসবে। অতঃপর ১৩ যুক্ত করতে প্রথমে দশকের ঘরে নিচের ০১ মানবিশিষ্ট ০১ টি বিট আনসারিং বারের কাছে আসবে ও এককের ঘরে নিচের ০১ মানবিশিষ্ট ০৩ টি বিট আনসারিং বারের কাছে আসবে। এখন দশকের ঘরে আনসারিং বারের সাথে মোট ০১ মানবিশিষ্ট ০৩টি বিট এবং এককের ঘরে ০৫ মান বিশিষ্ট ০১টি বিট ও ০১ মানবিশিষ্ট ৩টি বিট যুক্ত আছে। যার সর্বমোট মান ০৮। অতএব যোগফল হবে ৩৮। এভাবে যোগ, বিয়োগ, গুন, ভাগ প্রত্যেকটির হিসেবের জন্য আলাদা আলাদা বিস্তৃত নিয়ম রয়েছে। অ্যাবাকাসের মাধ্যমেই সর্বপ্রথম যান্ত্রিক উপায়ে গননার কাজ শুরু হয়।


নেপিয়ার'স বোন্স অ্যান্ড লগ্সঃ


যোগ ও বিয়োগের ধারনা হতে উদ্ভুত গুন ও ভাগের কাজ সহজে করার জন্য ১৫৫০-১৬১৭ খ্রিস্টাব্দে স্কটিশ গনিতবিদ জন নেপিয়ার, 'নেপিয়ার'স বোন্স' নামক একটি টেবিল বা বোর্ড আবিষ্কার করেন।


image (চিত্রঃ নেপিয়ার'স বোন্স)


টেবিলটির একদম বামে একটি স্থায়ী সারি থাকে যেখানে ০১ থেকে ০৯ সংখ্যাগুলো পরপর উপর থেকে নিচ পর্যন্ত সাজানো থাকে। এছাড়া টেবিলটিতে আরও ১০ টি অস্থায়ী বা মুভেবল রডস্ বা বোন্স থাকে। এই ১০টি অস্থায়ী রডগুলোর একেকটিতে ০–৯ পর্যন্ত সংখ্যার পরপর ৯টি করে গুনিতক উপর থেকে নিচ পর্যন্ত বর্গাকৃতির ঘরে সাজানো থাকে। যেহেতু, সবগুলো গুনিতকই দুই অংকবিশিষ্ট। সেহেতু, প্রত্যেকটি বর্গাকৃতির ঘরে আড়িভাবে একটি দাগ টেনে বর্গাকৃতির ঘরটিকে আবার দুটি ত্রিভুজাকৃতির ঘরে ভাগ করা হয় এবং সেগুলোতে ০২ অংকবিশিষ্ট গুনিতকগুলোকে স্থান দেওয়া হয়। যদি ৪২ এর সাথে ৩ গুন দিতে হয়, তবে ০৪ এর গুনিতকের অস্থায়ী রড ও ০২ এর গুনিতকের অস্থায়ী রডকে, স্থায়ী সারির সাথে পরপর বাম থেকে ডানে রাখা হয়। এবার স্থায়ী সারির ৩ বরাবর, অস্থায়ী ৪ ও ২ এর গুনিতকগুলোর উপর লক্ষ করলে দেখা যাবেঃ


         |--- /  |--- /  |

         |  ১ / ২  |  ০ / ৬  | 

         |   /___|   /___|

            

এখানে বর্গাকৃতির ঘরগুলোতে ৪ ও ২ এর ৩য় গুনিতক দেখাচ্ছে। এখন সংখ্যাগুলোকে ডানদিক হতে কোনাকোনি যোগ করি।  প্রথমে ৬, এরপর ২+০=২, তারপর ১। অর্থাৎ প্রাপ্ত গুনফলটি হলো ১২৬। এভাবে নেপিয়ার'স বোন্সে গুন ও ভাগ প্রত্যেকটির হিসেবের জন্য আলাদা আলাদা বিস্তৃত নিয়ম রয়েছে। 


যেহেতু, গুনের চেয়ে যোগ করা সহজ এবং ভাগের চেয়ে বিয়োগ করা সহজ সেহেতু, জন নেপিয়ার ১৬১৪ খ্রিস্টাব্দে বড় বড় সংখ্যার হিসেবের ক্ষেত্রে গুনকে যোগে ও ভাগকে বিয়োগে রূপান্তরের জন্য লগারিদম (logˇe→Natural log) আবিষ্কার করেন। এর জন্য তিনি প্রায় ২০ বছর গবেষণা করেছেন। পরবর্তীতে হেনরি ব্রিগস, জন নেপিয়ারের সমন্বয়ে logˇ10→Common log প্রবর্তন করেন। অর্থাৎ তিনি যেকোনো সংখ্যাকে 10 এর সূচক আকারে প্রকাশ করেছিলেন। যার দ্বারা হিসেব করা Natural log থেকে সহজ ছিল। মূলত সূচকীয় রাশির মান করতে লগ ব্যবহার করা হয়। যেমনঃ 2^3=8 হলে, logˇ2(8)=3 হবে। অর্থাৎ এখানে বোঝানো হচ্ছে: 2 এর সূচক কত হলে তার উত্তর 8 হবে বা কয়টা 2 কে গুন করলে 8 পাওয়া যাবে।

আবার, 10^4=10000 হলে,

              logˇ10(10000)=4

            বা, log10000=4 হবে।

[N.B: ভিত্তি 10 হলে,তা না লিখলেও চলে]

এ হিসেবগুলো খুব সহজে করা গেলেও, যদি বলা হয় log31= কত? তখন তা সহজে বের করা সম্ভব নয়। এজন্য জন নেপিয়ারের মৃত্যুর পর ১৬১৭ খ্রিস্টাব্দে হেনরি ব্রিগস log1000 পর্যন্ত টেবিল প্রনয়ন করেন। তার কিছুদিন পর তিনি log30000 পর্যন্ত টেবিল প্রনয়ন করেন। যেমনঃ

log1=0

log2=0.3010

log3=0.4771

log4=0.6020

..........................

..........................

লগের মাধ্যমে গুন করার জন্য উদাহরণস্বরূপ আমরা 37×59 কে নিতে পারি।

লগের টেবিল থেকে দেখা যাবে, log37=1.5682 বা 10^1.5682=37 এবং log59=1.7709 বা 10^1.7709

অতএব, 37×59= 10^1.5682×10^1.7709

বা, 37×59=10^(1.5682+1.7709)

বা, 37×59=10^3.3391

এখন, লগের টেবিলের দিকে লক্ষ্য করলে দেখা যাবে 3.3391= log2183

সুতরাং, 37×59=2183।

এভাবে, লগের টেবিল দ্বারা বড় বড় সংখ্যার গুন ভাগ সহজেই করা যেত।



প্যাসকেলাইনঃ


অ্যাবাকাস, নেপিয়ার'স বোন্স অ্যান্ড লগ্স দ্বারা যোগ, বিয়োগ, গুন ও ভাগের কাজ সহজে করা গেলেও বর্তমান ক্যালকুলেটরের মতো অটোমেটিক্যালি হিসেব করতে পারত না। অর্থাৎ ডিজিট ইনপুট দেওয়ার পর সরাসরি ফলাফল বা আউটপুট পাওয়া যেত না। এ সমস্যা উত্তরণে ১৬৪২ খ্রিস্টাব্দে ফ্রেন্স গনিতবিদ ব্লেইজ প্যাসকেল 'প্যাসকেলাইন' নামক প্রথম মেকানিকাল ক্যালকুলেটর আবিষ্কার করেন।


image (চিত্রঃ প্যাসকেলাইন)


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


লেইবনিজ ক্যালকুলেটরঃ


প্যাসকেলাইন নামক মেকানিকাল ক্যালকুলেটর দিয়ে শুধুমাত্র যোগ ও বিয়োগ করা যেত। গুন ও ভাগ করা যেত না। তাই ১৬৭১ খ্রিস্টাব্দে জার্মান গনিতবিদ গটফ্রিড উইলহেম লেইবনিজ প্যাসকেলাইনের নতুন সংস্করণ হিসেবে 'স্টেপ্ড রেকোনার' বা 'লেইবনিজ ক্যালকুলেটর' নামক আরেকটি মেকানিকাল ক্যালকুলেটর আবিস্কার করেন। এর মাধ্যমেও গিয়ারের ঘূর্ণন, পরিধি, অবস্থান, লক ও দাঁত সংখ্যাকে কাজে লাগিয়ে গুন, ভাগ, বর্গমূল করা যেত।


Image (চিত্রঃ লেইবনিজ ক্যালকুলেটর)


যদি ৭ এর সাথে ৫ গুন করতে হয় তবে সর্বপ্রথম এর গিয়ারটিকে ৭ বরাবর আনতে হবে। গিয়ারের পেছনেই রয়েছে একটি স্পিনিং ড্রাম যেখানে সংখ্যা বরারর গিয়ারের অবস্থান অনুযায়ী দাগ কাটা রয়েছে। স্পিনিং ড্রামটিকে ঘোরানোর জন্য রয়েছে একটি স্পিনিং হ্যান্ডেল। এটিকে ৫ বার পূর্ণ ঘূর্ণন সম্পন্ন করালে ড্রামের দাগ ও গিয়ারের দাত আটকে পরিমিত ঘূর্ণন সম্পন্ন হবে এবং ক্যালকুলেটরটির আনসারিং বারে ফলাফল বা আউটপুট প্রদর্শন করবে ৩৫। অতএব, ৭×৫=৩৫। এভাবে ভাগ, গুন ও বর্গমূল নির্নয়ের জন্য আলাদা আলাদা বিস্তৃত নিয়ম রয়েছে।


জ্যাক্বোয়ার্ডস্ লুমঃ


হিসাব-নিকাশের কাজটা যখন থেকে আস্তে আস্তে সহজতর হতে লাগল, তখন থেকেই এই সংখ্যার নির্দেশনাকে নানান জটিল বাস্তবমুখী কাজে লাগানো শুরু হতে লাগল। ১৮০১ খ্রিস্টাব্দে ফ্রেন্স উদ্ভাবক 'জোসেফ ম্যারি জ্যাক্বোয়ার্ড' পান্ছ কার্ড উদ্ভাবন করেন। তার ফলে লিখিত কোনো সংখ্যা বা অক্ষরকে যান্ত্রিক রূপ প্রদান করা সম্ভব হয় এবং এর দ্বারাই ডাটা স্টোরিং এর ধারনা উদ্ভুত হয়। পান্ছ কার্ডে নির্দিষ্ট সংখ্যা বা অক্ষরকে ছিদ্র করে 'হ্যাঁ এবং না' নির্দেশনা তৈরী করা হতো এবং তা মেশিনে প্রবেশ করানো হতো। মেশিন তা রিড করতো বা ছিদ্র অনুযায়ী যান্ত্রিক ক্রিয়া চালাত এবং আউটপুট দিত। এই মেশিনটিই হলো 'জ্যাক্বোয়ার্ডস লুম মেশিন'।


Image (চিত্রঃ জ্যাক্বোয়ার্ডস লুম)


এই পান্ছ কার্ড ব্যবহার করে তাঁত মেশিনে কাপড়ের নকশার জন্য নির্দিষ্ট নকশা অনুযায়ী ছিদ্র করা হয়। ফলে মেশিন তা রিড করে সে অনুযায়ী সুঁই চালিয়ে সুতা বোনে এবং কাপড়ে নকশার আউটপুট দেখা যায়। এ পদ্ধতিতে এখনও কাপড় বোনা হয়। 


ডিফারেন্স ইঞ্জিনঃ


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


Image (চিত্রঃ ডিফারেন্স ইঞ্জিন)


 এটি ১৮২২ খ্রিস্টাব্দে তৈরী করেছিলেন ইংরেজ গনিতবিদ চার্লস ব্যাবেজ। এর গিয়ারগুলোকে বাষ্প ইঞ্জিন দ্বারা চালানে হতো। এর মাধ্যমে বহুপদী ফাংশনের সমাধান করা যেত। এটি মূলত Newton's Divided Difference Method এর উপর ভিত্তি করে কাজ করত। যেমনঃ

X→X,

Y→X^2

f(X)=Y^2 হলে,(ঘাত=2)

এখানে,

.................

.................

f(3)→9

f(2)→4

f(1)→1

f(0)→0


এভাবে, এটি ডাটাকে বিয়োগ করতে করতে সর্বশেষ একটি কন্সট্যান্ট ভ্যালু(0) তে নিয়ে যায়।


Image (Example of Divided Difference Method)


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


অ্যানালিটিক্যাল ইঞ্জিনঃ


অ্যানালিটিক্যাল ইঞ্জিন হলো চার্লস ব্যাবেজের ডিফারেন্স ইঞ্জিনের সফল সংস্করন। এই মেকানিকাল ইঞ্জিনটির উদ্ভাবকও চার্লস ব্যাবেজ। এটিকে বর্তমান কম্পিউটারের পূর্বপুরুষ বলা যায়। এজন্যই চার্লস ব্যাবেজকে আধুনিক কম্পিউটারের জনক বলা হয়। এটি ১৮৩৩ খ্রিস্টাব্দে উদ্ভাবিত হয়। এটি হলো প্রথম জনসাধারণের ব্যবহার উপযোগী মেকানিকাল কম্পিউটার। এটিও নানান জটিল গানিতিক সমাধান দিতে পারতো। তাছাড়া এটি থেকেই বর্তমান কম্পিউটারের ইনপুট, আউটপুট, স্টোরেজ এরিয়া, মেমোরির ধারনা উদ্ভুত হয়। এটিতে নির্দিষ্ট নির্দেশনা অনুযায়ী পান্ছ কার্ডের ছিদ্রের উপর ভিত্তি করে 'হ্যা বা না' এর নির্দেশনার ইনপুট দেওয়া হতো। অনেকটা বর্তমান কম্পিউটারের 0 ও 1 দ্বারা প্রেরিত বাইনারি নির্দেশনার মতো। এটি পান্ছ কার্ড রিড করলে, এর গিয়ারগুলো ছিদ্র হতে প্রাপ্ত নির্দেশনা অনুযায়ী ঘুরে থাকত। যা অনেকটা বর্তমান মেমরির সাথে তুলনীয়। অতঃপর গিয়ারের ঘূর্ণনকে বারংবার একই উপায়ে কাজে হাজার হাজার কপি আউটপুট পাওয়া যেত। তবে এটির কাজ তৎকালীন সময়ে ব্যাবেজ সম্পন্ন করতে পারেননি। পরবর্তীতে আধুনিক উদ্ভাবকগন এর অসমাপ্ত কাজ সম্পন্ন করে। এভাবেই আধুনিক কম্পিউটারের সূচনা হতে লাগল।


ফার্স্ট প্রোগ্রামঃ 


চার্লস ব্যাবেজের ছাত্রী অ্যাডা লাভলেসই পরিপূর্ণভাবে প্রথম এই ধারনা দিতে সক্ষম হয়েছিলেন যে মেশিনকে কিছু কোড বা সংখ্যার মাধ্যমে আদেশ করা যায় এবং সে অনুযায়ী মেশিনকে দ্বারা কাজ করানো যায়। ১৮৩৪ খ্রিস্টাব্দে ব্যাবেজের অ্যানালিটিকাল ইঞ্জিনের ডকুমেন্ট লিখার সময় তিনি নিজ থেকে একটি অ্যালগরিদম লিখেছিলেন। 


Ada Lovelace (চিত্রঃ অ্যাডা লাভলেস)


যেখানে তিনি লিখেছিলেন, কিভাবে বাইনারি নাম্বার কাউন্ট করতে পারি এবং এই অ্যালগরিদম পরবর্তী মর্ডান কম্পিউটার প্রোগ্রামিংয়ের ক্ষেত্রে সহায়ক ভূমিকা পালন করে। এজন্যই লাভলেসকে প্রথম কম্পিউটার প্রোগ্রামার বলা হয়। ১৯৭৯ সালে ইউ.এস ডিপার্টমেন্ট অফ ডিফেন্স প্রোগ্রামিং ল্যাঙ্গুয়েজ 'ADA' কে তার সম্মানার্থে নামকরণ করে।


হলারিথ্স টেব্যুলেটিং মেশিনঃ


জ্যাক্বোয়ার্ডস লুমের পান্ছ কার্ডের ধারনাকে কাজে লাগিয়ে, পান্ছ কার্ড থেকে দ্রুত ডাটা রিড করার জন্য জার্মান-আমেরিকান উদ্ভাবক হারমান হলারিথ্স ১৮৮৭ খ্রিস্টাব্দে প্রথম ইলেক্ট্রোমেকানিক্যাল টেব্যুলেটিং মেশিন উদ্ভাবন করেন। মূলত তৎকালীন US ট্রেনের টিকেট কালেক্টিং পদ্ধতি থেকে তিনি এই মেশিন তৈরির পরিকল্পনা পান। যেখানে টিকেটের ডাটাগুলো লিখা থাকত এবং নির্দিষ্ট ডাটা যেমনঃ বয়স, লিঙ্গ, ভ্রমন তারিখ অনুযায়ী তার উপর ছিদ্র করা থাকত। পান্ছ কার্ডেও এরকমভাবে নির্দিষ্ট ডাটা অনুযায়ী ছিদ্র করা থাকত। এ ডাটাগুলোকে দ্রুত রিড করতে হলারিথস মেশিনের কিবোর্ড চেপে পান্ছ কার্ড ছিদ্র করে ডাটা ইনপুট দেওয়া হতো। পরবর্তীতে এ ছিদ্রগুলো হলারিথ্স মেশিন মেকানিক্যালি দ্রুত রিড করত এবং প্রিন্টিং আউটপুট দিতে পারত। যার ফলে অনেক ডাটা স্টোর ও আউটপুট পাওয়া সম্ভব হতো। তৎকালীন US গভর্নমেন্টের ট্যাক্স উত্তোলন ও আদমশুমারীতে এটি ব্যবহৃত হয়েছিল। এটি ১৮৮৮ টি Census Data কম্পালইল করার জন্য ব্যবহার করা হয়েছিল। যে ডাটা কম্পাইল করতে পূর্বে ১০ বছর লাগত, হলারিথ্স মেশিন তা মাত্র ৩ বছরে কম্পাইল করতে সক্ষম ছিল। পরবর্তীতে হারমান হলারিথ্স তার এই প্রযুক্তিটি বানিজ্যিকভাবে প্রসারের জন্য International Business of Machines (IBM)কোম্পানি প্রতিষ্ঠা করেন।


বাইনারি সংখ্যা পদ্ধতিঃ


কম্পিউটারকে যেকোনো নির্দেশনা শুধুমাত্র 'হ্যাঁ এবং না দ্বারা দেওয়া হয়। শুরুর দিকে কম্পিউটারে হ্যাঁ বা না' নির্দেশনা দেওয়ার কাজটি করত ভ্যাকুয়াম টিউব। কিন্তু শুধুমাত্র 'হ্যাঁ এবং না' নির্দেশনা দ্বারা কিভাবে কম্পিউটারের এত ডাটা অপারেট করা সম্ভব হত? এটি জানতে হলে বাইনারি সংখ্যা পদ্ধতি বুঝতে হবে। বাইনারি সংখ্যা পদ্ধতিতে শুধুমাত্র 1 এবং 0 ব্যবহার করা হয় এবং এই 1,0 দ্বারাই হ্যাঁ, না এর নির্দেশনা দেওয়া হয়। সাধারণ সংখ্যা পদ্ধতিতে যদি আমরা 22706 লিখি তবে,


      2      2       7        0         6

      ×       ×        ×        ×        ×

 10^4  10^3  10^2  10^1  10^0

     ↓         ↓        ↓         ↓          ↓

20000+2000+700+0   +   6=22706 কে বুঝি।


ঠিক একই ভাবে, বাইনারি তে যদি আমরা 10010 কে লিখি তবে,


       1      0       0        1         0

      ×       ×        ×        ×       ×

    2^4   2^3   2^2    2^1     2^0

     ↓         ↓        ↓         ↓          ↓

   16   +   0  +  0   +   2   +   0=18 কে বুঝি।


কিন্তু কম্পিউটারকে কেন সাধারণ সংখ্যা পদ্ধতি দ্বারা নির্দেশ দেওয়া হয় না। এটি করা হলে, একেকটি নির্দেশনা দেওয়ার জন্য কয়েক ধরনের ভিন্ন সংকেতের প্রয়োজন হতো। কিন্তু বাইনারি সংখ্যা পদ্ধতি দ্বারা শুধুমাত্র হ্যাঁ(1) বা না(0) দ্বারাই সে নির্দেশনাটি দেওয়া সম্ভব। পান্ছ কার্ডের ছিদ্র থাকা এবং না থাকা দ্বারা এই একই নির্দেশনাটি পূর্বে দেওয়া হতো। কিন্তু প্রথম ইলেক্ট্রনিক কম্পিউটারে এই একই কাজটি করা হয়েছিল ৩০০০ ভ্যাকুয়াম টিউবকে অন অথবা অফ থাকার উপর ভিত্তি করে। ১৯৩৯ খ্রিস্টাব্দে জন ভিনসেন্ট অ্যাটানাসফ ও ক্লিফোর্ড বেরি এটির উদ্ভাবনকার্য শুরু করেন এবং ১৯৪২ সালে সমাপ্ত করেন। এটাকে ফার্স্ট জেনারেশন কম্পিউটারও বলা হয় এবং জন অ্যাটানাসফ এতে বাইনারির ধারনা অন্তর্ভুক্ত করেন। বর্তমান কম্পিউটারে বাইনারিকে সাধারন ডাটায় রূপান্তর করা হয় ASCII পদ্ধতিতে।


ভ্যাকুয়াম টিউবঃ


ফার্স্ট জেনারেশন কম্পিউটারকে যে কম্পোনেন্টটি দিয়ে 0 এবং 1 সংকেত প্রেরণ করা হতো, সেটি হলো ভ্যাকুয়াম টিউব। এটি একটি কাঁচ দ্বারা আবদ্ধ টিউব। এর এক প্রান্তে রয়েছে একটি হিটিং কয়েল যা তাপপ্রাপ্ত হলে ইলেকট্রন ত্যাগ করে। এর অন্যপাশে একটি পরিবাহী প্রান্ত রয়েছে এবং প্রান্তদ্বয় পরস্পর বিচ্ছিন। এখন  কয়েলটির সাথে একটি লোড সংবলিত ব্যাটারির ঋণাত্মক প্রান্ত ও অপর পাশে ধনাত্মক প্রান্ত যুক্ত করি। এখন কয়েলটি ক্যাথোড ও অপর প্রান্ত অ্যানোড হিসেবে কাজ করবে। হিটিং কয়েলে পাওয়ার দেওয়া হলে তা উত্তপ্ত হবে এবং ইলেক্ট্রনকে অ্যানোডের দিকে ধাবিত করবে। ফলে বর্তনী সম্পন্ন হবে ও লোডে বিদ্যুৎ আসতে পারবে। যেহেতু কয়েল শুধুমাত্র ইলেকট্রনকে ত্যাগ করতে পারে, সেহেতু কয়েলটি কখনোই অ্যানোডরূপে কাজ করতে পারবে না। অর্থাৎ এটি বর্তমান ডায়োডের ন্যায় বিদ্যুৎ প্রবাহকে একমুখী করে দিয়েছে। এখন ভ্যাকুয়াম টিউবটির মাঝে একটি গ্রিড স্থাপন করি এবং এতে ধনাত্মক চার্জ প্রদান করি। ফলে হিটার থকে আসা ঋণাত্মক ইলেক্ট্রনকে এটি আরও তীব্র গতিতে আকর্ষিত করে অ্যানোডের দিকে নিয়ে যাবে এবং গ্রিডে ঋণাত্মক চার্জ প্রদান করলে হিটার থকে আসা ঋণাত্মক ইলেক্ট্রনকে এটি বিকর্ষিত করবে এবং অ্যানোডে পৌঁছাতে দিবে না। ফলে সার্কিট ব্রেক হবে এবং লোড অফ হয়ে যাবে। এভাবেই গ্রিডে সামান্য পরিমান নেগেটিভ চার্জ দেওয়া এবং না দেওয়ার উপর ভিত্তি করে এটিকে একটি সুইচের মতো অন অফ করা যেতে পারে। যা বর্তমান ট্রানজিস্টরের ন্যায় কাজ করে। এভাবে অন এবং অফ সিগন্যালের মাধ্যমেই কম্পিউটারে 1এবং 0 ইনপুট দেওয়া যেত। 


ম্যাগনেটিক ড্রাম মেমোরিঃ


ভ্যাকুয়াম টিউব দিয়ে 1 এব 0 ডাটা ইনপুট দেওয়ার পর তা রিড করে সংরক্ষণ করা হতো ম্যাগনেটিক ড্রাম মেমরির সাহায্যে। এর উপরিতলে একটি ম্যাগনেটিক লেয়ার রয়েছে  এবং এবং এতে ডাটা রিড করার জন্য কতগুলো রিড হেড ম্যানেটিক পিন ছিলো। যেগুলো ভ্যাকুয়াম টিউবের সাথে যুক্ত থাকত। পিনগুলোতে ভ্যাকুয়াম টিউব থেকে আসা নির্দেশনা অনুযায়ী তড়িৎ চৌম্বকীয় মেরু(N ও S)পরিবর্তনের মাধ্যমে ড্রামে প্রতিটি বিটে 1 ও 0 ডাটা সেভ করা হতো এবং এই  ড্রামের উপরিভাগের তড়িৎ চৌম্বকীয় আবেশকে কাজে লাগিয়েই পিন গুলো দ্বারা পুনরায় ডাটা রিড করা যেত। যা অনেকটা বর্তমান হার্ড ডিস্কের ন্যায় কাজ করতো। সংরক্ষিত ডাটাকে পান্ছ কার্ড ও প্রিন্টিং দ্বারা আউটপুট পাওয়া যেত। ভ্যাকুয়াম টিউব ও ড্রাম মেমোরির এসব ধারণা ফার্স্ট জেনারেশন কম্পিউটার অর্থাৎ Mark-1 ও ENIAC থেকে পাওয়া যায়।


ডায়োডঃ 


ডায়োডের কাজকে আমরা গ্রিডবিহীন ভ্যাকুয়াম টিউবের সাথে তুলনা করতে পারি। তবে ভ্যাকুয়াম টিউবের মতো এতে ক্যাথোডকে তাপ দিয়ে ইলেক্ট্রন ত্যাগের মাধ্যমে বিদ্যুৎকে একমুখী করা হয় না। এতে ডোপিং সংবলিত সেমিকন্ডাটর উপাদান সিলিকন ব্যবহৃত হয়। সিলিকনের সর্বশেষ কক্ষপথে ইলেক্ট্রন সংখ্যা ৪ টি। স্থিতিশীলতা অর্জনের জন্য এর চারটি ইলেকট্রনের ঘাটতি রয়েছে। তাই এটি ইলেক্ট্রন ভাগাভাগি করে স্থিতিশীলতা অর্জন করতে চায়। আমরা জানি কোনো পদার্থে মুক্ত ইলেক্ট্রনের চলাচলকে বিদ্যুৎ প্রবাহ বলে। ইলেক্ট্রন ভাগাভাগি করে স্থিতিশীলতা অর্জনের ফলে এটি অর্ধ স্থিতিশীলতা অর্জন করে। তাই এর মধ্য দিয়ে বিদ্যুৎ চালনা করা হলে, কিছু পরিমান শক্তি ইলেক্ট্রন গুলোকে মুক্ত করার জন্য শোষিত হয়ে যায়। এজন্য এর মধ্য দিয়ে বেশি পরিমান বিদ্যুৎ প্রবাহিত হতে পারে না। তাই একে অর্ধ পরিবাহী পদার্থ বলা হয়। এবার বিদ্যুৎ প্রবাহ বৃদ্ধির জন্য এর সাথে অন্য একটি পদার্থ মিশ্রিত বা ডোপিং করি। যেমনঃ ফসফরাস। ফসফরাসের সর্বশেষ কক্ষপথে ইলেক্ট্রন রয়েছে ৫ টি। তাই ডোপিং করার পর একটি ইলেকট্রন মুক্ত থাকবে এবং এতে বিদ্যুৎ চালনা করলে মুক্ত ইলেক্ট্রনটি সহজেই প্রবাহিত হতে পারবে। ইলেক্ট্রন ঋণাত্মক চার্জবিশিষ্ট। বর্তনীতে এখন ঋণাত্মক চার্জের আধিক্য রয়েছে। তাই একে n type  বর্তনী বলা হয়। একই উপায়ে বোরনকে ডোপিং করলে এর সর্বশেষ কক্ষপথ ৩টি ইলেক্ট্রন থাকায় এতে হোল বা ধনাত্মক চার্জের আধিক্য সৃষ্টি হবে। একে বলা হয় p type বর্তনী। p type ও n type বর্তনীকে একত্রে যুক্ত করলেই তৈরী হবে ডায়োড। আমরা জানি সমধর্মী চার্জ পরস্পরকে বিকর্ষণ ও বিপরীতধর্মী চার্জ পরস্পরকে আকর্ষণ করে। n type বর্তণীর ইলেকট্রনগুলো p type বর্তনীর হোলের দিকে আকৃষ্ট হয়ে চলে আসে। তাই মধ্যবর্তী স্থানে n type বর্তনীর মৌলগুলো পজিটিভ ও p type বর্তনীর মৌলগুলো নেগেটিভ চার্জ যুক্ত হয় ও বাকি ধনাত্মক ও ধনাত্মক চার্জ এদিকে আসতে পারেনা। ফলে মাঝখানে ডিপ্লেশন লেয়ার বা বাঁধার দেয়াল সৃষ্টি হয়। এখন n type বর্তণীতে ব্যাটারির ধনাত্মক ও p type বর্তনীতে ঋণাত্মক প্রান্ত যুক্ত করা হলে, সমধর্মী চার্জকে বিকর্ষণের ফলে ডিপ্লেশন লেয়ার আরে বড় হবে অর্থাৎ বিদ্যুৎ প্রবাহিত হবে না। একে বলে রিভার্স বায়াসিং। ব্যাটারির কানেকশন উল্টা করে দিলে বিপরীত ধর্মী চার্জকে আকর্ষণের ফলে ডিপ্লেশন লেয়ার ভেঙে যাবে এবং ইলেক্ট্রন চলাচল শুরু হবে। অর্থাৎ ডায়োড বিদ্যুৎ চলার পথকে একমুখী করে দেয়।


ট্রানজিস্টরঃ


ট্রানজিস্টরের কাজটি ভ্যাকুয়াম টিউবের মতোই। তবে ভ্যাকুয়াম টিউবের নানাবিধ অসুবিধা ছিল। যেমন এটি প্রচুর উত্তপ্ত হতো। এর আকারও অনেক বড় ছিল। ১৮০০০ ভ্যাকুয়াম টিউব দ্বারা নির্মিত ENIAC নামক কম্পিউটারটি প্রায় ১৫০০ বর্গফুটের রুম দখল করেছিল। অথচ বর্তমান কম্পিউটারে মিলিয়ন মিলিয়ন ট্রানজিস্টর রয়েছে। এটি আবিষ্কার হওয়ার পর কম্পিউটার জগতে এক বিপ্লবের সূচনা হয়৷ যা অন্য কোনো কম্পোনেন্ট সৃষ্টির ফলে সম্ভব হয়নি। এটি মূলত একটি সুইচের মতো কাজ করে। ধরি, এমন একটি কাজ যেখানে প্রতি সেকেন্ডে একটি সুইচকে ১০০০ বার অন অফ করতে হবে। কোনে মানুষের পক্ষে হাত দ্বারা সুইচটি অন অফ করে এটি করা সম্ভব নয়। এই কাজটি ট্রানজিস্টর দ্বারা এর চেয়েও দ্রুত কাজটি করা সম্ভব। অন অফ করার এই নির্দেশনা ট্রানজিস্টরকে বাইনারি কোড বা প্রোগ্রামিং ল্যাঙ্গুয়েজ দ্বারা প্রদান করা হয়। বিভিন্ন ধরনের ট্রানজিস্টর রয়েছে। তবে সবগুলো মূল গঠন একই। মূলত দুটি ডায়োডকে বিপরীত দিক থেকে যুক্ত করে ট্রানজিস্টর তৈরি হয়।

PN+ NP যুক্ত হলে PNP এবং NP+PN যুক্ত হলে NPN ট্রানজিস্টর তৈরি হবে। ট্রানজিস্টরের কাজ বুঝতে আমরা উদাহরণস্বরুপ একটি NPN ট্রানজিস্টর নিতে পারি। এর দুপাশে যেভাবেই ব্যাটারি সংযুক্ত করি না কেন একটি ডায়োড সর্বদা বায়াস অবস্থায় থাকবে তথা বিদ্যুৎ প্রবাহ করতে দিবে না। এবার যেকোনো একটি ডায়োডে ধনাত্মক ও ঋণাত্মক প্রান্ত ঠিক রেখে আরেকটি ব্যাটারি সংযুক্ত করলে দেখা যাবে ব্যাটারির ধনাত্মক প্রান্ত ডায়োডের n type বর্তনীর ইলেকট্রন গুলোকে বিকর্ষণ করবে এবং ডিপ্লেশন লেয়ার ভেদ করে তা p type বর্তনীর হোলের দিকে প্রচুর ইলেক্ট্রন প্রবাহিত হবে। ফলে ইলেক্ট্রনগুলো বেইস এর মধ্য দিয়ে প্রবাহিত হবে। p type বর্তনীতে প্রচুর ইলেক্ট্রন চলে আসায় বাকি ইলেক্ট্রনগুলো মূল ব্যাটারির ধনাত্মক প্রান্তের সাথে আকৃষ্ট হয়ে প্রবাহিত হতে শুরু করবে। p type বর্তনীটি খুবই সংকীর্ণ হওয়ার কারণে মূল ব্যাটারির ধনাত্মক প্রান্তের দিকে অধিক ইলেক্ট্রন প্রবাহিত হবে। যার ফলে বেইজে অল্প পরিমান ধনাত্মক চার্জ দিলেই মেইন পাওয়ার সোর্সে অধিক পরিমাণ ইলেকট্রন প্রবাহিত হতে পারবে। ২য় ব্যাটারিতে যত বেশি বিদ্যুৎ প্রবাহ করানো হবে, তত বেশী ইলেক্ট্রন এমিটর থেকে কালেক্টরের দিকে প্রবাহিত হবে। এভাবেই ট্রানজিস্টরের মাধ্যমে কোনো একটি সিগনালকে বর্ধিত করার কাজটিও করা হয়। এখানে কম্পিউটার প্রোগ্রামিংয়ের মাধ্যমে বেইজে চার্জ প্রদান করে বিদ্যুৎ প্রবাহ অন অফ তথা 1 ও 0 সংকেত তৈরী করা যায়। দুটি ট্রানজিস্টরের মাধ্যমে মেমোরির ক্ষুদ্রতম একক বিট তৈরী করা যায় এবং কোটি কোটি ট্রানজিস্টর একত্রিত করে 1GB,2GB বা তার চেয়েও বড় মেমোরি তৈরি করা যায়।



লজিক গেইটঃ 


এক বা একাধিক ট্রানজিস্টরের নির্দেশনাকে কাজে লাগিয়ে লজিক গেইট তৈরি হয়।


প্রসেসরঃ


কোটি কোটি লজিক গেইট একত্রিত করে প্রসেসর নির্মিত হয়।

Comments

Post a Comment

Popular posts from this blog

ট্রান্সজেন্ডার ইস্যু! - ইফফাত হাছান অমি

কালো শাড়ি - পর্ব ০৩(গল্প-সল্প)

নতুন শিক্ষা কারিকুলাম বনাম আপামর জনতা - ইফফাত হাছান অমি