কেন অনুবাদক লাগে
কম্পিউটার সরাসরি বোঝে কেবল ০ আর ১ দিয়ে তৈরি বাইনারি কোড, যাকে মেশিন কোড বা মেশিন ভাষা বলে। আমরা নির্দেশ লিখি সি বা পাইথনের মতো প্রোগ্রামিং ভাষায়। এই দুইয়ের মাঝে রূপান্তরের কাজ করে অনুবাদক প্রোগ্রাম, যা দুই রকম: কম্পাইলার ও ইন্টারপ্রেটার।
কম্পাইলার
কম্পাইলার পুরো প্রোগ্রাম একবারে পড়ে, আর সব নির্দেশ নির্ভুল হলে একসাথে মেশিন কোডে রূপান্তর করে। এই কাজকে কম্পাইল করা বলে। তবে পুরো নির্দেশের কোথাও একটি ভুল পেলেও কম্পাইলার রূপান্তর করতে পারে না; সব ভুল ঠিক করার পরই কাজ হয়।
ইন্টারপ্রেটার
ইন্টারপ্রেটার একটি নির্দেশ রূপান্তর করে চালায়, তারপর পরের নির্দেশে যায়। এই কাজকে ইন্টারপ্রেট করা বলে। কোনো নির্দেশে ভুল পেলে সেই নির্দেশে এসে থেমে যায়, তবে আগের নির্দেশগুলোর ফল ততক্ষণে দেখা যায়।
print('এক')
print('দুই')
print(marks)
print('চার')
এখানে marks নামে কোনো ভ্যারিয়েবল তৈরি করা হয়নি। পাইথন "এক" ও "দুই" দেখাবে, তৃতীয় লাইনে এসে NameError দেখিয়ে থেমে যাবে, আর "চার" কখনো দেখাবে না।
মিল কোথায়
- দুটিই প্রোগ্রামিং ভাষাকে মেশিন কোডে রূপান্তর করে, আর দুটিই সফটওয়্যার।
সাধারণ ভুল
- কম্পাইলার নির্দেশ "একটি একটি করে" রূপান্তর করে লেখা। ইন্টারপ্রেটার একটি একটি করে রূপান্তর করে; কম্পাইলার করে একসাথে।
- অনুবাদককে হার্ডওয়্যার ভাবা। কম্পাইলার আর ইন্টারপ্রেটার দুটিই প্রোগ্রাম।