কম্পাইলার হলাে একটি অনুবাদক প্রােগ্রাম যা উচ্চস্তরের ভাষার উৎস প্রােগ্রামকে বস্তু প্রােগ্রামে অনুবাদ করে। অর্থাৎ সাের্স প্রােগ্রামকে অবজেক্ট প্রােগ্রামে রূপান্তর করে। কম্পাইলার দুই ধাপে অনুবাদকের কাজ সম্পন্ন করে। প্রথম ধাপে কম্পাইলার উৎস প্রােগ্রামের প্রত্যেকটি লাইন পড়ে এবং অবজেক্ট প্রােগ্রামে রূপান্তর করে। এই ধাপে কম্পাইলার সাের্স প্রােগ্রামে যদি ভুল থাকে, তবে তা সংশােধন করার জন্য ব্যবহারকারীকে Error Message দেয়। এই Error Message কে কম্পাইলড টাইম ডায়াগনােস্টিক Error Message বলে। একবার প্রােগ্রাম কম্পাইল হয়ে গেলে পরবর্তীতে আর কম্পাইল করার প্রয়ােজন হয় না। দ্বিতীয় ধাপে উপাত্ত বা ডেটার ভিত্তিতে অবজেক্ট প্রােগ্রামকে নির্বাহ করানাে হয় ফলাফল প্রদর্শনের জন্য।
ভিন্ন ভিন্ন হাই লেভেল ভাষার জন্য ভিন্ন ভিন্ন কম্পাইলার প্রয়ােজন কেন?
কোনাে নির্দিষ্ট কম্পাইলার একটি মাত্র হাই লেভেল ভাষাকে মেশিন ভাষায় পরিণত করতে পারে বলে, ভিন্ন ভিন্ন হাই লেভেল ভাষার জন্য ভিন্ন ভিন্ন কম্পাইলার প্রয়ােজন। কম্পাইলার উচ্চস্তরের ভাষার উৎস প্রােগ্রামকে বস্তু প্রােগ্রামে অনুবাদ করে। সম্পূর্ণ প্রােগ্রামটিকে একসাথে পড়ে এবং একসাথে অনুবাদ করে এটি একটি মাত্র হাই লেভেল ভাষাকে মেশিন ভাষায় পরিণত করতে পারে, এজন্য ভিন্ন হাই লেভেল ভাষার জন্য ভিন্ন ভিন্ন কম্পাইলার লাগে।
কম্পাইলারের কাজ
কম্পাইলারের প্রধান কাজ হল–
- উৎস প্রােগ্রামকে বস্তু প্রােগ্রামে অনুবাদ করা।
- এরপর প্রােগ্রামকে লিঙ্ক (Link) করা। এর অর্থ প্রােগ্রামের সঙ্গে প্রয়ােজনীয় রুটিন (Routine) যােগ করা। রুটিন হল প্রােগ্রামের কোন ছােট অংশ যাতে কোন নির্দিষ্ট কাজ (যেমন গুণ) করার জন্য উপযুক্ত নির্দেশ দেওয়া থাকে। কোন প্রােগ্রামে একই রুটিন বার বার প্রয়ােজন হলে তা প্রধান মেমরিতে রাখা থাকে ও প্রয়ােজনের সময় ব্যবহার করা হয়।
- প্রােগ্রামে কোন ভুল থাকলে তা জানানাে।
- প্রধান মেমরিতে প্রয়ােজনীয় স্মৃতি অবস্থানের ব্যবস্থা করা (Allocation)।
- প্রয়ােজনে বস্তু বা উৎস প্রােগ্রামকে ছাপিয়ে বের করা।
কম্পিউটার অপারেটার সব ভুলত্রুটি সংশােধন করার পর লােডার প্রােগ্রাম বস্তু প্রােগ্রামকে প্রধান মেমরিতে নিয়ে যায়। তারপর কম্পিউটার তা কার্যকরী করে।
কম্পাইলারের সুবিধা
- পুরাে প্রােগ্রামকে একসাথে অনুবাদ করতে পারে।
- প্রােগ্রাম নির্বাহ করতে সময় কম লাগে।
- প্রােগ্রামের সমস্ত ভুল-ত্রুটি একবারে প্রদর্শন করে।
- কম্পাইলার দিয়ে কোন প্রােগ্রাম রুপান্তর করা হয়ে গেলে তা আর পুনরায় রূপান্তর করার দরকার হয় না।
- কম্পাইলারের মাধ্যমে প্রােগ্রাম পুর্নাঙ্গ যান্ত্রিক প্রােগ্রামে রূপান্তরিত হয়। আর এই পুর্নাঙ্গ যান্ত্রিক প্রােগ্রামকে অবজেক্ট প্রােগ্রাম বলে।
কম্পাইলারের অসুবিধা
- প্রােগ্রাম ডিবাগিং এবং টেস্টিং এর ক্ষেত্রে এর গতি খুব কম।
- ভিন্ন ভিন্ন হাই লেভেল ভাষার জন্যে ভিন্ন-ভিন্ন কম্পাইলার দরকার হয়।
- মেমােরিতে বেশি জায়গার দরকার হয়।