এইচএসসি তথ্য ও যোগাযোগ প্রযুক্তি

অনুবাদক প্রোগ্রাম

Supported by Matador Stationary

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

ভাগ্যিস অপু নিহালের পাশে ছিল!

অপু জাপানিজ ভাষা বোঝে। সে নিহালকে জাপানিজ ভাষাগুলো বাংলায় অনুবাদ করে দিচ্ছিল। ফলে নিহালের আর বুঝতে অসুবিধা হচ্ছিল না।

এখানে অপু  অনুবাদকের ভূমিকা পালন করে নিহালকে বুঝতে সাহায্য করেছে।

আমাদের কম্পিউটারও কিন্তু কিছুটা নিহালের মতই। সে মেশিন ভাষা ছাড়া অন্য কোন ভাষা বুঝতে পারে না। মানে কম্পিউটার শুধু বোঝে ‘0’ আর ‘1’ .

কিন্তু আমাদের লিখা বেশিরভাগ প্রোগ্রামই তো উচ্চস্তরের ভাষায় লিখা। তাহলে কম্পিউটার সেটা বুঝবে কিভাবে?

এখানেও অপুর মত একজন অনুবাদকের প্রয়োজন তাই না?

হ্যাঁ। উচ্চস্তর কিংবা এসেম্বলি ভাষায় লিখিত প্রোগ্রাম মেশিন ভাষায় রূপান্তরের জন্য একজন অনুবাদকের প্রয়োজন হয় যাকে বলে অনুবাদক প্রোগ্রাম( Translator Program).

এখানে আরেকটা জিনিস মনে রাখবে, মেশিন ভাষা ব্যতীত অন্য কোন ভাষায় লিখিত প্রোগ্রাম হচ্ছে সোর্স প্রোগ্রাম। আর যখন সেটা মেশিন ভাষায় রূপান্তর করা হয় তখন সেটাকে বলে অবজেক্ট প্রোগ্রাম।



অনুবাদক প্রোগ্রাম হচ্ছে তিন প্রকারঃ

১। এসেম্বলার

২। কম্পাইলার

৩। ইন্টারপ্রেটার

এসেম্বলার (Assembler)

 

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

আমরা আরও জানি মেশিন ভাষা ব্যতীত অন্য যেকোন ভাষায় রচিত প্রোগ্রাম যাকে মেশিন ভাষায় রূপান্তর করা প্রয়োজন, তাকে বলে সোর্স প্রোগ্রাম। অর্থাৎ এখানে এসেম্বলি ভাষা হচ্ছে সোর্স প্রোগ্রাম।

আর মেশিন ভাষাকে বলে বস্তু বা অবজেক্ট প্রোগ্রাম।



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

 

ইন্টারপ্রিটার পুরো প্রোগ্রামে সরাসরি মেশিন ভাষায় রূপান্তরিত করে না। ইন্টারপ্রিটার যেটা করে সেটা হলো সে প্রোগ্রামের এক লাইন করে পড়ে আর মেশিন ভাষায় কম্পিউটারকে সেটা বুঝিয়ে দেয় এবং সাথে সাথে সেটা নির্বাহ বা RUN করে। নির্বাহ বা RUN  করার মানে প্রোগ্রামটাকে চালিয়ে দেখা।

ইন্টারপ্রিটারের আরেকটা বৈশিষ্ট্য হলো সে কিন্তু একেবারেই ভুল সহ্য করতে পারে।

এক লাইন এক লাইন করে পড়তে পড়তে সে যখনই প্রোগ্রামে ভুল পায়, তখনই কাজ বন্ধ করে দেয়। এটা কিন্তু নতুন যারা প্রোগ্রামিং করে তাদের জন্য সুবিধাজনক।

কারণ প্রোগ্রামারের কোন লাইনে ভুল হলে ইন্টারপ্রিটার সেখানে থেমে যায়।



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

 

কম্পাইলার উচ্চস্তরের ভাষায় লিখা প্রোগ্রামে সরাসরি মেশিন ভাষায় রূপান্তরিত করে। এটা কিন্তু ইন্টারপ্রিটারের মত এক লাইন এক লাইন করে অনুবাদ করে না। সরাসরি পুরো প্রোগ্রামকে মেশিন ভাষায় বা অবজেক্ট প্রোগ্রামে রূপান্তরিত করে। তারপর সেই অবজেক্ট প্রোগ্রাম যতবার ইচ্ছা চালানো যায়। বারবার কম্পাইলারের প্রয়োজোন নেই। ব্যাপারটা এরকম – একবার অনুবাদ করো, তাহলেই ঝামেলা শেষ! (কম্পাইলার ঝামেলা পছন্দ করে না :D)

বর্তমানে প্রায় সব উচ্চস্তরের ভাষার কম্পাইলার আছে। যেমনঃ [C]১ বা [C++]২  ভাষার জন্য যেসব কম্পাইলার আছে সেগুলো হলো ->

#ভিজুয়্যাল সি/সি++

#বোরল্যান্ড সি/সি++

#সিমানটেক সি/সি++

#হট সি

#জিনু সি/সি++

ইত্যাদি।



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

উক্তিগুলোর সত্যতা যাচাই করো! 


সঠিক উত্তরে ক্লিক করো!