অনুবাদক প্রোগ্রামঃ
মেশিন ভাষায় লেখা প্রোগ্রামকে বলা হয় বস্তু প্রোগ্রাম (Object Program)।
অন্য যেকোনো ভাষায় লেখা প্রোগ্রামকে বলা হয় উৎস প্রোগ্রাম (Source program)।
যে প্রোগ্রামের সাহায্যে উৎস (Source) প্রোগ্রামকে বস্তু (Object) প্রোগ্রামে পরিণত করা হয় তাকে অনুবাদক প্রোগ্রাম বলে। প্রোগ্রাম অনুবাদের সময় উৎস প্রোগ্রামে যদি কোন ভুল থাকে, তবে তা সংশোধন করার জন্য ব্যবহারকারীকে Error Message দেয়।
অনুবাদক প্রোগ্রামের প্রকারভেদঃ
- অ্যাসেম্বলার
- কম্পাইলার
- ইন্টারপ্রেটার
অ্যাসেম্বলারঃ
অ্যাসেম্বলি ভাষায় লিখিত প্রোগ্রামকে মেশিন ভাষায় অনুবাদ করার জন্য অ্যাসেম্বলার ব্যবহার করা হয়। এটি অ্যাসেম্বলি ভাষায় লিখিত প্রোগ্রামকে কোড বা যান্ত্রিক ভাষায় রূপান্তর করে অর্থাৎ, নেমোনিক কোডকে মেশিন ভাষায় অনুবাদ করে। প্রোগ্রামে কোনো ভুল থাকলে Error Message দেয়।
প্রধান কাজ সমূহ:
১। নেমোনিক কোডকে মেশিন ভাষায় অনুবাদ করা।
২। সাংকেতিক ঠিকানাকে মেশিন ভাষায় লেখার ঠিকানায় রূপান্তর করা।
৩। প্রোগ্রামে কোনো ভুল থাকলে Error Message দেওয়া।
৪। সব নির্দেশ ও ঠিকানা প্রধান মেমোরিতে রাখা।
কম্পাইলারঃ
কম্পাইলার হলো এক ধরনের অনুবাদক যা হাইলেভেল ভাষায় লিখিত প্রোগ্রামকে মেশিন ভাষায় রূপান্তর করে। অর্থাৎ সোর্স প্রোগ্রামকে অবজেক্ট প্রোগ্রামে রূপান্তর করে।
কম্পাইলার দুই ধাপে অনুবাদকের কাজ সম্পন্ন করে –
প্রথম ধাপে কম্পাইলার উৎস প্রোগ্রামের প্রত্যেকটি লাইন পড়ে এবং অবজেক্ট প্রোগ্রামে রূপান্তর করে। এই ধাপে কম্পাইলার সোর্স প্রোগ্রামে যদি ভুল থাকে, তবে তা সংশোধন করার জন্য ব্যবহারকারীকে Error Message দেয়। এই Error Message কে কম্পাইলড টাইম ডায়াগনোস্টিক Error Message বলে। একবার প্রোগ্রাম কম্পাইল হয়ে গেলে পরবর্তীতে আর কম্পাইল করার প্রয়োজন হয় না। দ্বিতীয় ধাপে উপাত্ত বা ডেটার ভিত্তিতে অবজেক্ট প্রোগ্রামকে নির্বাহ করানো হয় ফলাফল প্রদর্শনের জন্য।
কম্পাইলারের কাজ:
১। উৎস বা সোর্স প্রোগ্রামের স্টেটমেন্টসমূহকে মেশিনের ভাষায় রূপান্তর।
২। সংশ্লিষ্ট সাব-রুটিন এর সাথে সংযোগের ব্যবস্থা প্রদান।
৩। প্রধান স্মৃতির পরিসর চিহ্নিতকরণ।
৪। প্রোগ্রাম ভুল থাকলে অনুবাদের সময় ভুলের তালিকা প্রণয়ন।
কম্পাইলারের সুবিধা:
১। কম্পাইলার সম্পূর্ণ প্রোগ্রামটিকে একসাথে অনুবাদ করে ফলে প্রোগ্রাম নির্বাহের গতি দ্রুত হয়।
২। প্রোগ্রাম নির্বাহে কম সময় লাগে।
৩। কম্পাইলারের মাধ্যমে রূপান্তরিত প্রোগ্রাম সম্পূর্ণরূপে মেশিন প্রোগ্রামে রূপান্তরিত হয়।
৪। একবার প্রোগ্রাম কম্পাইল করা হলে পরবর্তিতে আর কম্পাইলের প্রয়োজন হয় না।
৫। প্রোগ্রামে কোন ভুল থাকলে তা মনিটরে একসাথে প্রদর্শন করে।
কম্পাইলারের অসুবিধা:
১। কম্পাইলার প্রোগ্রামের সবগুলো ভুল একসাথে প্রদর্শন করে ফলে প্রোগ্রাম সংশোধনে বেশি সময় লাগে।
২। কম্পাইলার বড় ধরনের প্রোগ্রাম হওয়ায় ইহা সংরক্ষণে মেমরিতে বেশি জায়গা লাগে।
৩। প্রোগ্রাম ডিবাগিং ও টেস্টিং এর কাজ ধীরগতি সম্পন্ন।
ইন্টারপ্রেটারঃ
ইন্টারপ্রেটারও কম্পাইলারের মতো হাইলেভেল ভাষাকে মেশিন ভাষায় রূপান্তর করে। তবে কম্পাইলার যেমন প্রথমে সোর্স প্রোগ্রামকে অবজেক্ট প্রোগ্রামে রূপান্তর করে এবং সর্বশেষ ফলাফল প্রদান করে কিন্তু ইন্টারপ্রেটার সোর্স প্রোগ্রামকে অবজেক্ট প্রোগ্রামে রূপান্তর করে না, ইন্টারপ্রেটার লাইন নির্বাহ করে এবং তাৎক্ষণিক ফলাফল প্রদর্শন করে।
ইন্টারপ্রেটারের কাজ:
১। সংশ্লিষ্ট সাব-রুটিন এর সাথে সংযোগের ব্যবস্থা করা।
২। উৎস প্রোগ্রামের স্টেটমেন্ট সমূহকে বস্তু প্রোগ্রামে বা মেশিন ভাষায় রূপান্তর করা।
৩। প্রোগ্রাম ভুল থাকলে অনুবাদের সময় ভুলের তালিকা প্রণয়ন।
৪। প্রধান মেমোরির পরিসর চিহ্নিতকরণ।
ইন্টারপ্রেটারের সুবিধা:
১। এটি ব্যবহারে প্রোগ্রামের ভুল সংশোধন করা এবং পরিবর্তন করা সহজ হয়।
২। Interpreter Program আকারে ছোট হয় এবং মেমরি স্থানে কম জায়গা দখল করে।
৩। এটি সাধারণত ছোট কম্পিউটারে ব্যবহার করা হয়।
ইন্টারপ্রেটারের অসুবিধা:
১। ইন্টারপ্রেটার ব্যবহারে প্রোগ্রাম কার্যকরী করতে কম্পাইলারের তুলনায় বেশি সময় লাগে।
২। ইহার মাধ্যমে রূপান্তরিত প্রোগ্রাম সম্পূর্ণরূপে মেশিন প্রোগ্রামে রূপান্তরিত হয় না।
৩। প্রতিটি কাজের পূর্বে অনুবাদ করার প্রয়োজন হয়।