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