অনুসরণ ব্লগে আপনাদের স্বাগতম। আমরা আজকে অনুবাদক প্রোগ্রাম নিয়ে আলোচনা করবো। অর্থাৎ অনুবাদক প্রোগ্রাম সম্পর্কে কথা বলবো। আমরা গত পর্বে প্রোগ্রামিং এর বিভিন্ন প্রজন্মের ভাষা সম্পর্কে জেনেছিলাম এবং তাদের সুবিধা ও অসুবিধা সম্পর্কে জেনেছিলাম। তো আমরা দেখতাম মেশিন ভাষা সরাসরি ০, ১ ব্যবহার হয়ে রচিত হওয়ার কারণে কম্পিউটার সরাসরি সেই ভাষাটা বুঝতে পারতো। কিন্তু পরবর্তী মেশিন ভাষার পরে যে ভাষাগুলো এসেছে অর্থাৎ ২য় প্রজন্ম থেকে ৫ম প্রজন্ম পর্যন্ত ভাষাতে সরাসরি ০, ১ ব্যবহার না করার কারণে কম্পিউটারকে সেই ভাষাগুলো বুঝানোর জন্য অন্য একটা প্রোগ্রামের নিতে হচ্ছে। আর এই প্রোগ্রামটার নাম হলো অনুবাদক প্রোগ্রাম।
অনুবাদক প্রোগ্রাম কাকে বলে? (What is called Translator Program in Bengali/Bangla?)
যে প্রোগ্রাম কম্পিউটারের উৎস প্রোগ্রামকে যন্ত্রভাষায় অনুবাদ করে বস্তু প্রোগ্রামে পরিণত করে সে প্রোগ্রামকে অনুবাদক প্রোগ্রাম বলে। কম্পিউটার একমাত্র মেশিনভাষা বুঝতে পারে বলে অন্য ভাষায় লেখা উৎস প্রোগ্রামকে মেশিনভাষায় অনুবাদ না করে নিলে কম্পিউটার তা কার্যকরী করতে পারে না।
অনুবাদক প্রোগ্রাম তিন প্রকার। যথা–
- কম্পাইলার (Compiler) : কম্পাইলার এক ধরনের কম্পিউটার প্রোগ্রাম বা প্রোগ্রাম-সমষ্টি যা কোন কম্পিউটার ভাষা (উৎস ভাষা) থেকে অপর একটি কম্পিউটার ভাষায় (গন্তব্য ভাষা) টেক্সট অনুবাদ করে। সাধারণত কোন প্রোগ্রামের সোর্সকোড থেকে মেশিনকোডে রূপান্তরের কাজটি কম্পাইলার দিয়ে করা হয়ে থাকে।
- ইন্টারপ্রিটার (Interpreter) : ইন্টারপ্রেটার কম্পিউটার বিজ্ঞানে একটি প্রোগ্রাম যা প্রোগ্রামিং ভাষায় লেখা নির্দেশাবলী একজিকিউট করে। এটি হাই লেভেল প্রোগ্রামিং ল্যাংগুয়েজের সোর্স কোড একজিকিউট করে।
- অ্যাসেম্বলার (Assembler) : অ্যাসেম্বলার একটি কম্পিউটার প্রোগ্রাম যার কাজ হল অ্যাসেম্বলি ভাষায় লিখিত প্রোগ্রামকে মেশিন ভাষার অবজেক্ট প্রোগ্রামে অনুবাদ করা।
কম্পাইলার কি?
কম্পাইলার এক ধরনের অনুবাদক প্রোগ্রাম। কম্পাইলার হাই লেভেল ভাষার উৎস প্রোগ্রামকে বস্তু প্রোগ্রাম বা মেশিন ভাষার প্রোগ্রামে অনুবাদ করে। এটি সেকেন্ডারি মেমোরিতে থাকে। কোন নির্দিষ্ট কম্পাইলার একটিমাত্র হাই লেভেল ভাষাকে মেশিন ভাষায় অনুবাদ করতে পারে।
কম্পাইলারের সুবিধা :
- পুরো প্রোগ্রামটিকে একবারেই বস্তু প্রোগ্রামে অনুবাদ করে।
- প্রোগ্রামে কোন ভুল থাকলে তা জানিয়ে দেয়।
- প্রোগ্রামকে লিংক করে থাকে।
- প্রধান মেমোরিতে প্রয়োজনীয় মেমোরির ব্যবস্থা করে থাকে।
কম্পাইলারের অসুবিধা :
- ধাপে ধাপে ভুল শনাক্ত করা যায় না। ফলে সাথে সাথে সংশোধনও করা যায় না।
- প্রাইমারি মেমোরিতে বেশি জায়গার প্রয়োজন হয়।
কম্পাইলারের কাজ :
- উৎস প্রোগ্রামকে বস্তু প্রোগ্রামে অনুবাদ করা।
- প্রোগ্রামের সাথে প্রয়োজনীয় রুটিন যোগ করা।
- প্রোগ্রামে কোনো ভুল থাকলে তা জানানো।
- প্রাইমারি মেমোরিতে প্রয়োজনীয় জায়গার ব্যবস্থা করা।
- প্রয়োজনে বস্তু বা উৎস প্রোগ্রামকে ছাপিয়ে বের করা।
ইন্টারপ্রেটার কি?
ইন্টারপ্রেটার একটি অনুবাদক প্রোগ্রাম। এটি হাই লেভেল ভাষাকে মেশিন ভাষায় অনুবাদ করে। তবে কম্পাইলার যেখানে সম্পূর্ণ প্রোগ্রামকে অনুবাদ করে তারপর পর তা কার্যে পরিণত করে সেখানে ইন্টারপ্রেটার একটি লাইনকে ভাষায় অনুবাদ করে তা কার্যে পরিণত করে, তারপর পরবর্তী নির্দেশে হাত দেয়।
ইন্টারপ্রেটারের সুবিধা :
- ইন্টারপ্রেটার খুব ইউজার ফ্রেন্ডলি।
- এটি ব্যবহার করে প্রোগ্রামের ভুল সংশোধন বা প্রোগ্রাম পরিবর্তন করা সহজ। কারণ ইন্টারপ্রেটার ব্যবহারে প্রোগ্রামের কোন অংশ পরিবর্তন করতে হলে উৎস প্রোগ্রামের কোন অংশ পরিবর্তন না করে শুধু সেটুকু অংশ নতুন করে অনুবাদ করতে হয়।
- ইন্টারপ্রেটার আকারে ছোট।
- অনূদিত বস্তু প্রোগ্রামকে মেমোরিতে সেভ করে রাখতে হয় না।
ইন্টারপ্রেটারের অসুবিধা :
- ইন্টারপ্রেটার ব্যবহার করে প্রোগ্রামকে কাজের উপযোগী অনেক সময় লাগে। কারণ এটি এক লাইন করে পড়ে এবং তা অনুবাদ করে।
- ইন্টারপ্রেটার মাধ্যমে রূপান্তরিত প্রোগ্রাম পুনরায় রূপান্তরের প্রয়োজন হয়।
কম্পাইলার ও ইন্টারপ্রেটার এর পার্থক্য কি? (What is the difference between Compiler and Interpreter?)
কম্পাইলার ও ইন্টারপ্রেটারের পার্থক্য নিচে তুলে ধরা হলো :
কম্পাইলার (Compiler)
- কম্পাইলার সম্পূর্ণ প্রোগ্রামকে একসাথে অনুবাদ করে।
- প্রোগ্রাম রান হতে কম সময় লাগে।
- ডিবাগিং টেস্টিং ধীর গতিতে হয়।
- সব ভুল একসাথে তুলে ধরে।
- প্রধান মেমোরিতে জায়গা বেশি লাগে।
ইন্টারপ্রেটার (Interpreter)
- ইন্টারপ্রেটার এক লাইন এক লাইন করে অনুবাদ করে।
- প্রোগ্রাম রান হতে বেশি সময় লাগে।
- ডিবাগিং টেস্টিং দ্রুত গতিতে হয়।
- এটি প্রতিটি লাইনের ভুল ধরে এবং অনুবাদ করা বন্ধ করে দেয়।
- প্রধান মেমোরিতে জায়গা কম লাগে।