আমরা আগেই জেনেছি যে কম্পিউটার ০ এবং ১ ছাড়া কিছুই বোঝে না। তাই আপনি কম্পিউটারকে কোন আদেশ দিতে চাইলে সেটা ০ বা ১ ব্যবহার করেই আদেশ দিতে হবে। ০ এবং ১ দিয়ে আদেশ দেয়া যেহেতু একটু কঠিন বিষয় তাই আমাদের এমন একজনকে ( যন্ত্র ) লাগবে যে আমাদের ভাষাকে অনুবাদ করে কম্পিউটারের নিজস্ব ভাষায় রুপান্তর করবে।তো সেই যন্ত্রের নাম হচ্ছে কম্পাইলার। আমরা এখন কম্পাইলার এর খুঁটিনাটি বিষয় জানার ট্রাই করবো। চলুন তাহলে শুরু করা যাক।
কম্পাইলার কি
কম্পাইলার এক ধরনের কম্পিউটার প্রোগ্রাম বা প্রোগ্রাম-সমষ্টি যা কোন কম্পিউটার ভাষা (উৎস ভাষা) থেকে অপর একটি কম্পিউটার ভাষায় (গন্তব্য ভাষা) টেক্সট অনুবাদ করে। সাধারণত কোন প্রোগ্রামের সোর্সকোড থেকে মেশিনকোডে রূপান্তরের কাজটি কম্পাইলার দিয়ে করা হয়ে থাকে। আরো নিখুঁতভাবে বলতে গেলে, কম্পাইলার সোর্সকোডকে অ্যাসেম্বলি কোডে পরিনত করে, পরবর্তীকালে অ্যাসেম্বলার অ্যাসেম্বলি কোডকে মেশিনকোড এ পরিনত করে। কম্পিউটারের মাইক্রোপ্রসেসর এই মেশিনকোড বুঝতে পারে এবং সেই অনুযায়ী কর্মসম্পাদন করে।
কম্পাইলার কিভাবে কাজ করে
কম্পাইলার কিভাবে কাজ করে সেটা জানতে হলে আগে আপনাকে কম্পিউটারের বেসিক টারমিনলজী জানতে হবে । কম্পাইলার উৎস কোডকে একসাথে অবজেক্ট কোডে রুপান্তর করে এবং লিঙ্কারের সাথে যুক্ত করে। যখন কম্পিউটারের প্রোগ্রামিং ভাষা তৈরি করা হয় তখন তার বর্ণনা একটা আলাদা ফাইলে রাখা হয় এগুলোকে হেডার ফাইলে রাখা হয় । যখন আপনি ঐ প্রোগ্রামিং ভাষার সিনট্যাক্স বা গ্রামার মেনে প্রোগ্রাম লিখেন তখন তখন কম্পাইলার শুধু ভেরিয়াবল গুলো বাদে প্রোগ্রামের যাবতীয় অন্যান্য ফাংশন গুলো হেডার ফাইল থেকে লোড করে ।কম্পাইলার শুধু আপনার সোর্স কোড পড়ে এবং নিজস্ব কোড দিয়ে আপনার গুলো রিপ্লেস করে । অর্থাৎ অনেকটা কপি পেস্টের মত ।
কম্পাইলার ৪ টি ধাপে তার কাজ সম্পাদন করে।
কম্পাইলার ৪ টি ধাপে তার কাজ সম্পাদন করে।
- প্রি-প্রসেসিং
- কম্পাইলেসন
- অ্যাসেম্বলি
- লিঙ্কিং
প্রি-প্রসেসিং
এটি হচ্ছে সর্বপ্রথম পর্যায়। এই পর্যায়ে আমাদের লিখা সোর্স ফাইল থেকে সকল ধরনের কমেন্ট রিমুভ এবং ইনক্লুডেড হেডার ফাইল ও ম্যাক্রোগুলোকে এক্সপান্ড করে।
কম্পাইলেসন
কম্পাইলেসন হচ্ছে দ্বিতীয় পর্যায়, এই পর্যায়ে প্রি প্রসেসড ফাইলটিকে একটি অ্যাসেম্বলি ফাইলে রূপান্তর করা হয় , যা কিনা অ্যাসেম্বলার বুঝতে পারে।
অ্যাসেম্বলি
এটা তৃতীয় ধাপ। এই পর্যায়ে অ্যাসেম্বলার অ্যাসেম্বলি ফাইলটিকে ইনপুট হিসেবে নেয় এবং মেশিন লেভেল ইন্সট্রাকশনে পরিবর্তন করে। উল্লেখ্য, এই ইন্সট্রাকশন গুলো মানুষ এর পক্ষে পড়ে বোঝা সম্ভব না এগুলো শুধুমাত্র কম্পিউটার ই বুঝতে পারে।
লিঙ্কিং
চতুর্থ ও সর্বশেষ ধাপ হচ্ছে লিঙ্কিং। এই ধাপে আমরা যত সিস্টেম ফাংশন কল করেছি তা লিঙ্ক করা হবে এবং এক্সিকিউটেবল তৈরি করা হবে। লিঙ্কার জানে কোথায় কোন ফাংশন ইমপ্লিমেন্ট করা আছে, সে সেই অনুযায়ী প্রোগ্রামে কল করা সকল ফাংশন লিঙ্ক করে। এরপরে, প্রোগ্রামের স্বার্থে লিঙ্কার আরও কিছু কোড আমাদের প্রোগ্রামে যুক্ত করে এবং এক্সিকিউটেবল ফাইল তৈরি করে। যেটিকে রান করলে আমরা প্রোগামটির আউটপুট পাই।
আজ এ পর্যন্তই। বুঝতে অসুবিধা হলে অবশ্যই জানাবেন।
ভাল থাকবেন, ভাল রাখবেন 😊