2.1 কম্পাইলার এবং ইন্টারপ্রেটার পরিচিতি

 

কম্পাইলার এবং ইন্টারপ্রেটার কি?

সহজ ভাষায় বললে, কম্পাইলার এবং ইন্টারপ্রেটার উভয়ই এমন এক ধরণের Translator প্রোগ্রাম যা আমাদের লেখা High Level ল্যাঙ্গুয়েজকে কম্পিউটার দ্বারা বোধগম্য Low Level ল্যাঙ্গুয়েজ অথবা Binary কোড এ রূপান্তর করে। কিন্তু কম্পাইলার এবং ইন্টারপ্রেটার দুটি ভিন্ন ভাবে কাজ করে। তাই তাদেরকে আলাদা নাম দেয়া হয়েছে।

কম্পাইলার:

একটি কম্পাইলার একটি হাই লেভেল ল্যাঙ্গয়েজকে লো (Low) লেভেল ল্যাঙ্গুয়েজে যেমন Assemble Language, Object Code অথবা Binary Code (0 and 1) এ একবারে translate করে, তারপরে টার্গেট প্রোগ্রামটা  Runnable হয়। সুতরাং প্রোগ্রাম রান করার আগেই প্রোগ্রাম কে compile করে রাখা হয়। যেমন C, C++, C#, Java, etc. কম্পাইলার এর আবার অনেক ধরণ রয়েছে।

053018 0616 CompilervsI1 e1642141249413 2.1. কম্পাইলার এবং ইন্টারপ্রেটার

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

একটি ইন্টারপ্রেটার হাই লেভেল ল্যাঙ্গুয়েজকে লাইন বাই লাইন Translate করে যা শুধু টার্গেট প্রোগ্রাম রান করার সময় সম্পন্ন হয়। যেমন PHP, Python, JavaScript(basically), Perl, Ruby, etc. ইন্টারপ্রেটার এরও অনেক ধরণ রয়েছে।                           053018 0616 CompilervsI1 1 e1642141310310 2.1. কম্পাইলার এবং ইন্টারপ্রেটার

 

কম্পাইলার এবং ইন্টারপ্রেটারের মধ্যে পার্থক্য 

যেহেতু ইন্টারপ্রেটার এবং কম্পাইলার ভিন্ন ভাবে কাজ করে, তাদের মধ্যে অনেক পার্থক্য রয়েছে। চলেন প্রধান পার্থক্ষগুলা দেখে নেই।

Compiler Interpreter
 কম্পাইলার সম্পূর্ণ সোর্স কোড নিয়ে সেটা পুরোটা এনালাইজ করে ফাইনাল মেশিন কোড   তৈরী করে।  ইন্টারপ্রেটার লাইন বাই  লাইন কোড পড়ে, এনালাইজ করে এবং লাইন বাই লাইন  এক্সিকিউট করে ।
 কম্পাইল্ড কোড দ্রুত রান হয়।  ইন্টারপ্রেটেড কোড একটু স্লো রান হয়।
 কম্পাইলার কম্পাইল করার সময়ই সকল এরর বা ওয়ার্নিংগুলোকে একসাথে দেখায় এবং এই এররগুলোকে ঠিক না করা পর্যন্ত কোড রান করা যায় না।   ইন্টারপ্রেটার একটি স্টেটমেন্ট পড়ে এবং এতে যদি কোনো এরর থাকে তবে এররটি দেখায়। পরবর্তী স্টেটমেন্টটি ইন্টারপ্রেট করার জন্য এই এররটিকে অবশ্যই ঠিক করতে হবে। 
 কম্পাইলার প্রথমে ইন্টারমিডিয়েট মেশিন/অবজেক্ট কোড  তৈরী করে।  ইন্টারপ্রেটার কখনোই ইন্টারমিডিয়েট মেশিন কোড বানায় না।
 বেশি মেমোরির দরকার হয় যেহেতু ইন্টারমিডিয়েট অবজেক্ট কোড তৈরী করে।  কম মেমোরি এর দরকার হয়।
 একবার কম্পাইল হবার পর আর কম্পাইলার এর দরকার নেই।  বারবার ইন্টারপ্রেটার এর দরকার হয়, রান করার জন্য।

 

উদাহরন
  • কম্পাইলার কিভাবে কাজ করে?

Source code -> compiler -> machine code -> output

  • ইন্টারপ্রেটার কিভাবে কাজ করে?

Source code -> interpreter -> output

  • ইন্টারপ্রেটার সুবিধা:

কম মেমোরি এর দরকার হয়

ডিবাগিং সহজ

  • কম্পাইলার সুবিধা:

কম্পাইল্ড কোড দ্রুত রান হয়

  • কোড কম্পাইল করার পর কোনো কম্পাইলারের প্রয়োজন আছে কি?

না

এসো নিজে করি
  • কম্পাইলার এবং ইন্টারপ্রেটার মধ্যে প্রধান পার্থক্য
  • কম্পাইলার এবং ইন্টারপ্রেটার মধ্যে কোনটির বেশি মেমোরি প্রয়োজন
  • কখন কম্পাইলার এরর হ্যান্ডলিং করে
  • কখন ইন্টারপ্রেটার এরর হ্যান্ডলিং করে
  • কমপিলার এবং ইন্টারপ্রেটারের মধ্যে কোনটি জাভাস্ক্রিপ্ট প্রধানত ব্যবহার করে