অনুবাদক

 

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

অন্য প্রজন্মের ভাষায় লেখা প্রোগ্রামকে ‘সোর্স প্রোগ্রাম’ বলা হয়, এবং মেশিন ভাষায় অনুবাদ করা প্রোগ্রামকে বলা হয় ‘অবজেক্ট প্রোগ্রাম’।

অনুবাদক প্রোগ্রাম তিন প্রকার। যথা–

  1. অ্যাসেম্বলার (Assembler)
  2. কম্পাইলার (Compiler)
  3. ইন্টারপ্রিটার (Interpreter)

অ্যাসেম্বলার (Assembler)

 

অ্যাসেম্বলার একটি অনুবাদক যা অ্যাসেম্বলি ভাষায় লেখা একটি প্রোগ্রামকে মেশিন ভাষায় রুপান্তর করে।

কম্পাইলার (Compiler)

 

কম্পাইলার একটি সম্পূর্ণ প্রোগ্রামকে একসাথে অনুবাদ করে। প্রোগ্রাম অনুবাদ করার পূর্বে প্রোগ্রাম লেখার নিয়ম-কানুন (syntex) ঠিক আছে কিনা কম্পাইলার তা যাচাই (check) করে দেখে। সব ঠিক থাকলে প্রগ্রামটিকে মেশিন কোডে অনুবাদ করে ও একটি অবজেক্ট ফাইলে সংগ্রহ করে রাখে। এজন্য কোনো একটি প্রোগ্রামকে একবার কম্পাইল করলে পরবর্তীতে তাকে আর কম্পাইল করার দরকার হয়না। ফলে প্রোগ্রামগুলো খুবই দ্রুত কাজ করে। 

 

যেহেতু সম্পুর্ন প্রোগ্রাম একসাথে অনুবাদ করে তাই প্রোগ্রাম কম্পাইল(অনুবাদ) করার সময় সবগুলো ভুল একসাথে দেখায়, ফলে ভুল সংশোধন করা একটু জটিল হয়।  

ইন্টারপ্রেটর (Interpreter)

 

ইন্টারপ্রেটার একটি প্রোগ্রামের প্রতিটি লাইন বা নির্দেশ(instruction) আলাদাভাবে পর্যায়ক্রমে অনুবাদ করে। কোন লাইনে যদি ইন্টারপ্রেটার ভুল খুঁজে পায় তাহলে সে ওই লাইনেই কাজ বন্ধ করে তৎক্ষণাৎ ভুলটি প্রদর্শন করে এবং তা সংশোধন এর জন্য অপেক্ষা করে। এ কারনে ভুল সংশোধন তুলনামূলক সহজ কিন্তু বেশ সময়সাপেক্ষ।

 

কম্পাইলারের মত অবজেক্ট ফাইল সংরক্ষণ না করার কারনে ইন্টারপ্রেটারকে একটি প্রোগ্রাম প্রতিবার run করার পূর্বে পুনরায় অনুবাদ করতে হয়।

 কম্পাইলার ও ইন্টারপ্রেটারের পার্থক্যঃ