সংকলক হ'ল এমন একটি প্রোগ্রাম যা একটি ভাষায় (উত্স ভাষা) লেখা একটি প্রোগ্রাম পড়ে এবং এটিকে অন্য ভাষায় (টার্গেট ল্যাঙ্গুয়েজ) বেশিরভাগ মেশিন ল্যাঙ্গুয়েজে একটি সমতুল্য প্রোগ্রামে অনুবাদ করে।
সংকলকের বিভিন্ন ধাপ রয়েছে যার মাধ্যমে আপনার উত্স ভাষার কোডটি লাইন দ্বারা স্ক্যান করা হয়। একটি প্রতীক টেবিল রয়েছে যা উত্স ভাষা কোডে স্ক্যান করা সমস্ত কীওয়ার্ডের ট্র্যাক রাখে।
প্রথম পর্যায়: লেক্সিকাল অ্যানালাইজার - উত্স প্রোগ্রামের সমস্ত চরিত্রটি পড়ে এবং টোকেনগুলির লজিক্যাল বিভাজন গঠন করে (ইন্ট, চর, ফ্ল্যাট, যদি-অন্যদিকে, তবে ইত্যাদি)
দ্বিতীয় পর্যায়: সিনট্যাক্স বিশ্লেষক - টোকেনের প্রবাহের কাঠামো বিশ্লেষণ করুন। অভিব্যক্তিগুলির হায়ারারিকিকাল পার্সিং যা পোস্টফিক্স / উপসর্গ ইত্যাদি অন্তর্ভুক্ত করে (a = b + c * d)
তৃতীয় ধাপ: সিমান্টিক বিশ্লেষক - টোকেনগুলির টাইপ চেকিং (বাস্তবের সাথে পূর্ণসংখ্যার, ভাসমান ইত্যাদি) এবং অপারেটরের অগ্রাধিকার ইত্যাদির মতো অনেক কিছুই ..
পর্যায় 4: অন্তর্বর্তী কোড জেনারেটর - a = বি + সি * ডি (টেম্প 1 = সি * ডি, টেম্প 2 = টেম্প 1 + বি, টেম্পে = টেম্প 2-ই)
পঞ্চম পর্যায়: কোড অপ্টিমাইজেশন - বিভিন্ন বিশ্লেষণ (নিয়ন্ত্রণ প্রবাহ, ডেটা ফ্লো, ট্রান্সফরমেশন)
যা এলিমেন্ট করে: রিডানডেন্সি কোড, কনস্ট্যান্টস প্রপোজেশন, আংশিক ডেড কোড, সাধারণ সুপ্রেসপ্রেসন, লুপ ইনগ্রিয়েন্ট কোড
Hase ম পর্যায়: কোড জেনারেশন - রেজিস্টারে মান স্থাপনের লক্ষ্য কোড (বেশিরভাগ অ্যাসেম্বলি ল্যাঙ্গুয়েজ) জেনারেশন
এই সমস্ত পর্যায়গুলি ভাল লিখিত প্রোগ্রাম ব্যতীত কিছুই নয় এবং এতে কোনও ত্রুটি থাকতে পারে না ..