offSchoolবেটা

তথ্য ও যোগাযোগ প্রযুক্তি · প্রোগ্রামিংয়ের মাধ্যমে সমস্যার সমাধান

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

সর্বশেষ হালনাগাদ ২২ অক্টোবর ২০২৬

সংক্ষেপে

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

কম্পাইলার ও ইন্টারপ্রেটার: পার্থক্যের ছক
তুলনার বিষয়কম্পাইলারইন্টারপ্রেটার
রূপান্তরের ধরন

সব নির্দেশ একসাথে মেশিন কোডে রূপান্তর করে

একটি একটি করে নির্দেশ রূপান্তর করে

ভুল থাকলে

পুরো প্রোগ্রামের কোথাও ভুল থাকলে রূপান্তরই হয় না

ভুল নির্দেশ পর্যন্ত চলে, সেখানে এসে থেমে যায়

ভুল খোঁজা

সব ভুলের তালিকা একসাথে দেখায়

একবারে একটি ভুল দেখায়; খুঁজে পাওয়া সহজ

চালানোর গতি

রূপান্তরের পর প্রোগ্রাম দ্রুত চলে

প্রতিবার চালাতে রূপান্তর লাগে বলে তুলনামূলক ধীর

ফলাফল

আলাদা মেশিন কোড ফাইল তৈরি করে

সাধারণত আলাদা ফাইল তৈরি করে না

উদাহরণ

সি, সি++

পাইথন

কেন অনুবাদক লাগে

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

কম্পাইলার

কম্পাইলার পুরো প্রোগ্রাম একবারে পড়ে, আর সব নির্দেশ নির্ভুল হলে একসাথে মেশিন কোডে রূপান্তর করে। এই কাজকে কম্পাইল করা বলে। তবে পুরো নির্দেশের কোথাও একটি ভুল পেলেও কম্পাইলার রূপান্তর করতে পারে না; সব ভুল ঠিক করার পরই কাজ হয়।

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

ইন্টারপ্রেটার একটি নির্দেশ রূপান্তর করে চালায়, তারপর পরের নির্দেশে যায়। এই কাজকে ইন্টারপ্রেট করা বলে। কোনো নির্দেশে ভুল পেলে সেই নির্দেশে এসে থেমে যায়, তবে আগের নির্দেশগুলোর ফল ততক্ষণে দেখা যায়।

print('এক')
print('দুই')
print(marks)
print('চার')

এখানে marks নামে কোনো ভ্যারিয়েবল তৈরি করা হয়নি। পাইথন "এক" ও "দুই" দেখাবে, তৃতীয় লাইনে এসে NameError দেখিয়ে থেমে যাবে, আর "চার" কখনো দেখাবে না।

মিল কোথায়

  • দুটিই প্রোগ্রামিং ভাষাকে মেশিন কোডে রূপান্তর করে, আর দুটিই সফটওয়্যার।

সাধারণ ভুল

  • কম্পাইলার নির্দেশ "একটি একটি করে" রূপান্তর করে লেখা। ইন্টারপ্রেটার একটি একটি করে রূপান্তর করে; কম্পাইলার করে একসাথে।
  • অনুবাদককে হার্ডওয়্যার ভাবা। কম্পাইলার আর ইন্টারপ্রেটার দুটিই প্রোগ্রাম।

পরীক্ষায় যেভাবে লিখবে

SSC-র আইসিটি বোর্ড পরীক্ষায় সৃজনশীল প্রশ্ন নেই; নম্বর আসে বহুনির্বাচনি (২৫) আর ব্যবহারিক (২৫) থেকে। এখান থেকে MCQ সাধারণত আসে এভাবে: "কোন অনুবাদক সব নির্দেশ একসাথে মেশিন কোডে রূপান্তর করে?" (কম্পাইলার), "পাইথনে কোন অনুবাদক ব্যবহৃত হয়?" (ইন্টারপ্রেটার), বা উদ্দীপকে কোনো প্রোগ্রাম আগের নির্দেশগুলো চালিয়ে ভুল নির্দেশে এসে থেমে গেলে কোন অনুবাদক কাজ করছে। ব্যবহারিকে পাইথন চালানোর সময় ইন্টারপ্রেটার যে লাইনে ভুল দেখায়, সেখান থেকেই খোঁজা শুরু করো।

স্কুলের লিখিত পরীক্ষায় পার্থক্য চাইলে লিখতে পারো:

কম্পাইলারইন্টারপ্রেটার
১. সব নির্দেশ একসাথে মেশিন কোডে রূপান্তর করে।১. একটি একটি করে নির্দেশ রূপান্তর করে।
২. কোথাও ভুল থাকলে রূপান্তর করতে পারে না।২. ভুল নির্দেশে এসে থেমে যায়।
৩. উদাহরণ: সি।৩. উদাহরণ: পাইথন।

নিজে চালিয়ে দেখো

অনুশীলনের প্রশ্ন

  1. পাইথন একটি ইন্টারপ্রেটার ব্যবহার করে। নিচের প্রোগ্রামটির ৩ নম্বর লাইনে c নামে কোনো ভ্যারিয়েবল তৈরি করা হয়নি। প্রোগ্রামটি চালালে কী ঘটবে?

    print("A")
    print("B")
    print(c)
    print("D")
    
    1. ক

      কিছুই প্রিন্ট হয় না, ভুল থাকায় পুরো প্রোগ্রাম শুরুই হয় না

    2. খ

      A ও B প্রিন্ট হয়, তারপর ৩ নম্বর লাইনে ত্রুটির বার্তা এসে প্রোগ্রাম থেমে যায়, D প্রিন্ট হয় না

    3. গ

      A, B ও D প্রিন্ট হয়; ত্রুটিপূর্ণ লাইনটি বাদ পড়ে

    4. ঘ

      A, B প্রিন্ট হয়, তারপর c লেখা প্রিন্ট হয় এবং D-ও প্রিন্ট হয়

    উত্তর ও ব্যাখ্যা
    সঠিক উত্তর:

    খ) A ও B প্রিন্ট হয়, তারপর ৩ নম্বর লাইনে ত্রুটির বার্তা এসে প্রোগ্রাম থেমে যায়, D প্রিন্ট হয় না

    1. ইন্টারপ্রেটার নির্দেশগুলো একটি একটি করে ক্রমানুসারে মেশিন কোডে রূপান্তর করে এবং কোনো নির্দেশে ত্রুটি পেলে সেখানেই থেমে যায়।
    2. তাই প্রথমে লাইন ১ ও ২ চলে এবং A ও B প্রিন্ট হয়। লাইন ৩-এ c সংজ্ঞায়িত নয়, ফলে NameError আসে ও প্রোগ্রাম থেমে যায়; লাইন ৪ আর চলে না। (python৩-এ চালিয়ে দেখা হয়েছে: আউটপুট A, B, তারপর NameError: name 'c' is not defined)।
  2. যে অনুবাদক প্রোগ্রাম সম্পূর্ণ সোর্স প্রোগ্রামকে একসাথে মেশিন ভাষায় রূপান্তর করে, তাকে কী বলে?

    1. ক

      কম্পাইলার

    2. খ

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

    3. গ

      টেক্সট এডিটর

    4. ঘ

      ডিবাগার

    উত্তর ও ব্যাখ্যা
    সঠিক উত্তর:

    ক) কম্পাইলার

    1. কম্পাইলার পুরো সোর্স কোডকে একসাথে পড়ে একবারে সম্পূর্ণ প্রোগ্রামটিকে মেশিন ভাষায় অনুবাদ করে।
    2. অন্যদিকে, ইন্টারপ্রেটার সম্পূর্ণ কোড একসাথে নয়, বরং প্রতি লাইন আলাদাভাবে অনুবাদ ও নির্বাহ করে।
  3. কম্পাইলার ও ইন্টারপ্রেটারের মধ্যে দুটি পার্থক্য লেখো।

    উত্তর ও ব্যাখ্যা
    সঠিক উত্তর:

    কম্পাইলার প্রোগ্রামের সব নির্দেশ একসাথে মেশিন কোডে রূপান্তর করে, কিন্তু ইন্টারপ্রেটার নির্দেশগুলো একটি একটি করে ক্রমানুসারে রূপান্তর করে। কম্পাইলার প্রোগ্রামের কোথাও ত্রুটি থাকলে অনুবাদই শুরু করতে পারে না, আর ইন্টারপ্রেটার যে নির্দেশে ত্রুটি পায় সেখানে এসে থেমে যায়।

    1. কম্পাইলার পুরো প্রোগ্রাম একবারে অনুবাদ করে; ইন্টারপ্রেটার এক নির্দেশ করে করে অনুবাদ করে। যেমন, পুরো লিখিত বক্তৃতা আগে থেকে অনুবাদ করা কম্পাইলারের মতো আর বক্তা বলার সাথে সাথে বাক্যে বাক্যে অনুবাদ করা ইন্টারপ্রেটারের মতো।
    2. ত্রুটির ক্ষেত্রে কম্পাইলার ত্রুটি থাকলে অনুবাদই শুরু করে না, আর ইন্টারপ্রেটার ত্রুটিযুক্ত নির্দেশ পর্যন্ত চলে সেখানে থেমে যায়। পাইথন ইন্টারপ্রেটার ব্যবহার করে।

প্রায়ই জিজ্ঞাসিত প্রশ্ন

পাইথন কম্পাইলার না ইন্টারপ্রেটার ব্যবহার করে?

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

মেশিন কোড কী?

০ আর ১ দিয়ে তৈরি বাইনারি কোড, যা কম্পিউটার সরাসরি বুঝতে পারে।

এই টপিক নিয়ে প্রশ্ন আছে?

মেন্টরকে বাংলায় বা ইংরেজিতে জিজ্ঞেস করো, বা খাতার ছবি দাও। সিমুলেশন চালিয়ে বুঝিয়ে দেবে।

মেন্টরকে জিজ্ঞেস করো