24/08/2022
কম্পাইলার এবং ইন্টারপ্রেটার কি?
সহজ ভাষায় বললে, কম্পাইলার এবং ইন্টারপ্রেটার উভয়ই এমন এক ধরণের Translator প্রোগ্রাম যা আমাদের লেখা High Level ল্যাঙ্গুয়েজ কে Low Level ল্যাঙ্গুয়েজ অথবা Binary কোড এ রূপান্তর করে যা কম্পিউটার দ্বারা বোধগম্য।কিন্তু কম্পাইলার এবং ইন্টারপ্রেটার দুটি ভিন্ন ভাবে কাজ করে। তাই তাদেরকে আলাদা নাম দেয়া হয়েছে।
কম্পাইলার:
একটি কম্পাইলার একটি হাই লেভেল ল্যাঙ্গয়েজ কে লো লেভেল ল্যাঙ্গুয়েজে যেমন Assemble Language, Object Code অথবা Binary Code (0 and 1) এ একবারে translate করে, তারপরে টার্গেট প্রোগ্রাম টা runnable হয়। সুতরাং প্রোগ্রাম রান করার আগেই প্রোগ্রাম কে compile করে রাখা হয়। যেমন C, C++, C #, Java, etc. কম্পাইলার এর আবার অনেক রকম ধরণ রয়েছে।
ইন্টারপ্রিটার:
একটি ইন্টারপ্রেটার হাই লেভেল ল্যাঙ্গুয়েজ কে line by line translate করে যা শুধু টার্গেট প্রোগ্রাম রান করার সময় সম্পন্ন হয়। যেমন PHP, Python, JavaScript(basically), Perl, Ruby, etc. ইন্টারপ্রেটার এর ও অনেক ধরণ রয়েছে।
কম্পাইলার এবং ইন্টারপ্রেটারের মধ্যে পার্থক্য
যেহেতু ইন্টারপ্রেটার এবং কম্পাইলার ভিন্ন ভাবে কাজ করে, তাদের মধ্যে অনেক পার্থক্য রয়েছে। চলেন প্রধান পার্থক্ষগুলা দেখে নেই।
Compiler
- কম্পাইলার সম্পূর্ণ সোর্স কোড নিয়ে সেটা পুরোটা analyze করে ফাইনাল মেশিন কোড তৈরী করে।
- কম্পাইল্ড কোড দ্রুত রান হয়।
- কম্পাইলার কম্পাইল হবার সময় এরর দেখায়। কোড এ এরর থাকলে কম্পাইল হয়না।
- কম্পাইলার প্রথমে ইন্টারমিডিয়েট মেশিন/অবজেক্ট কোড তৈরী করে।
- বেশি মেমোরি এর দরকার হয় যেহেতু ইন্টারমিডিয়েট অবজেক্ট কোড তৈরী করে।
- একবার কম্পাইল হবার পর আর কম্পাইলার এর দরকার নেই।
Interpreter
- ইন্টারপ্রেটার লাইন বাই লাইন কোড পড়ে, analyze করে এবং লাইন বাই লাইন এক্সেকিউটও করে ।
- ইন্টারপ্রেটেড কোড একটু স্লোলী রান হয়।
- ইন্টারপ্রেটার কোড রান হওয়ার সময় এরর দেখায়, যেহেতু ইন্টারপ্রেটার কোড রান হওয়ার সময় ট্রান্সলেট করে।
- ইন্টারপ্রেটার কখনোই ইন্টারমিডিয়েট মেশিন কোড বানায়না।
- কম মেমোরি এর দরকার হয়।
- বারবার ইন্টারপ্রেটার এর দরকার হয়, রান করার জন্য।
Thanks for reading this blog