2.1 কম্পাইলার এবং ইন্টারপ্রেটার পরিচিতি
কম্পাইলার এবং ইন্টারপ্রেটার কি?
সহজ ভাষায় বললে, কম্পাইলার এবং ইন্টারপ্রেটার উভয়ই এমন এক ধরণের 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 | Interpreter |
কম্পাইলার সম্পূর্ণ সোর্স কোড নিয়ে সেটা পুরোটা analyze করে ফাইনাল মেশিন কোড তৈরী করে। | ইন্টারপ্রেটার লাইন বাই লাইন কোড পড়ে, analyze করে এবং লাইন বাই লাইন এক্সেকিউটও করে । |
কম্পাইল্ড কোড দ্রুত রান হয়। | ইন্টারপ্রেটেড কোড একটু স্লোলী রান হয়। |
কম্পাইলার কম্পাইল হবার সময় এরর দেখায়। কোড এ এরর থাকলে কম্পাইল হয়না। | ইন্টারপ্রেটার কোড রান হওয়ার সময় এরর দেখায়, যেহেতু ইন্টারপ্রেটার কোড রান হওয়ার সময় ট্রান্সলেট করে। |
কম্পাইলার প্রথমে ইন্টারমিডিয়েট মেশিন/অবজেক্ট কোড তৈরী করে। | ইন্টারপ্রেটার কখনোই ইন্টারমিডিয়েট মেশিন কোড বানায়না। |
বেশি মেমোরি এর দরকার হয় যেহেতু ইন্টারমিডিয়েট অবজেক্ট কোড তৈরী করে। | কম মেমোরি এর দরকার হয়। |
একবার কম্পাইল হবার পর আর কম্পাইলার এর দরকার নেই। | বারবার ইন্টারপ্রেটার এর দরকার হয়, রান করার জন্য। |