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