Answered 2 years ago
একটা ভাষায় লেখা বিভিন্ন কোড কিভাবে একটি সুনির্দিষ্ট মডেলের প্রসেসরের কাছে বোধগম্য করে তোলা হবে, সেই কাজটি আসলে করে একটি কম্পাইলার। কম্পাইলার যেভাবে একটি ভাষা বুঝবে, আপনাকে সেভাবেই প্রোগ্রাম লিখতে বলা হয়।
এখন কম্পাইলার নিজেই যেহেতু একটি সফটওয়্যার প্রোগ্রাম, তাই সেটিকে লিখতে হয়। ধরুন, জাভা একটি ভাষা, তার সিনট্যাক্স ঠিক করা হয়েছে মানুষের সুবিধার জন্য। এখন জাভাতে আপনি কিছু একটা লিখলেন, সেটাকে মেশিনের কাছে পাঠযোগ্য করার জন্যে অনুবাদ করতে হবে। এই অনুবাদ করার প্রোগ্রামটি আপনি যেকোন ভাষাতেই লিখতে পারেন।
এখন কথা প্রসঙ্গে মনে করুন, ফোরট্রান হলো প্রথম দিককার একটা প্রোগ্রামিং ভাষা, যার কোন কম্পাইলার ছিল না। সেরকম সময়ে, ওই ভাষার জন্যে বেঁধে দেয়া কীওয়ার্ড এবং সিনট্যাক্স মেনে আপনি কিছু কোড একটা সাদা কাগজে লিখলেন। ভাষা আছে, কোডও হলো, কিন্তু অনুবাদক নেই। তাহলে তো ওই কোড কম্পিউটার বুঝবে না। আমাদের এই প্রশ্নে উল্লেখিত সমস্যা তো এটাই, তাই না? প্রথম প্রোগ্রামিং ভাষাতে লেখা একটি প্রোগ্রাম একটি কম্পিউটার বুঝবে কিভাবে!
এর উত্তর হলো, প্রথম দিকে (১৯৪৬-১৯৬০) অনুবাদের কাজগুলো কোন কম্পিউটার প্রোগ্রাম করতো না, মানুষ নিজেই করত। অর্থাৎ মানুষ নিজেই ছিল অনুবাদক বা কম্পাইলার। প্রোগ্রামারদের কাজ ছিল যুক্তি সাজিয়ে কোড লিখে সমস্যা সমাধান করা, তারপর সেই অনুযায়ী কোড লেখা। আর কম্পাইলারগণের কাজ ছিল একটা তালিকা ধরে সেটাকে মেশিন কোডে অনুবাদ করা। এজন্যে সেই যুগের কম্পাইলারগনকে-
ওই ভাষার কীওয়ার্ড এবং সিনট্যাক্স জানতে হতো।
প্রসেসরের স্পেসিফিকেশন জানতে হতো।
মেশিন কোডে অনুবাদের কৌশল জানতে হতো।
পাঞ্চকার্ডে মেশিন কোড উঠিয়ে রান করাতে হতো।
সারারাত কাজ করে সকালে রিপোর্ট দিতে হতো।
সেই গল্পে পরে আসছি। কিন্তু তার আগে আমরা একটু গভীরভাবে বিষয়টা অনুধাবনের চেষ্টা করব। তার জন্যে আমরা জানতে চাইব যে, একটা প্রোগ্রাম আসলে জিনিসটা কেমন। মেশিন কোডই বা কীরকম যে তার আর কোন অনুবাদ লাগে না, মেশিন তাকে পড়ামাত্রই বুঝতে পারে! তার জন্যে চলুন আজ থেকে ২০-৩০ বছর পিছনে ফিরে যাই। মানে ১৯৯০-৯৯ সালের কথা বলছি।
১৯৮০-৯০ দশকের জনপ্রিয় বিনোদন মাধ্যম ক্যাসেট প্লেয়ার আপনারা হয়ত অনেকেই দেখে থাকবেন। নিজে চোখে না দেখলেও ক্যাসেট প্লেয়ারের কথা শুনে থাকবেন। নিচের ছবিটা দেখুন
sathikhatun publisher