कम्पाइलर एक प्रोग्राम है जो एक भाषा (स्रोत भाषा) में लिखे गए प्रोग्राम को पढ़ता है और इसे किसी अन्य भाषा (लक्ष्य भाषा) में एक समकक्ष समकक्ष प्रोग्राम में अनुवाद करता है, ज्यादातर मशीन भाषा।
संकलक के विभिन्न चरण हैं जिनके माध्यम से आपके स्रोत भाषा कोड को लाइन द्वारा स्कैन किया जाता है। एक प्रतीक तालिका है जो सभी कीवर्ड्स का ट्रैक रखती है जिन्हें स्रोत भाषा कोड में स्कैन किया जाता है।
चरण 1: लेक्सिकल एनालाइजर - स्रोत कार्यक्रम में सभी चरित्र को पढ़ता है और टोकन (इंट, चार, फ्लोट, इफ-अन्यथा, के लिए, जबकि आदि) के तार्किक पृथक्करण का निर्माण करता है।
चरण 2: सिंटेक्स एनालाइज़र - टोकन की धारा की संरचना का विश्लेषण। अभिव्यक्तियों के पदानुक्रमित पार्सिंग जिसमें उपसर्ग / उपसर्ग आदि शामिल हैं (a = b + c * d)
चरण 3: सिमेंटिक एनालाइज़र - टोकन की जाँच (वास्तविक, फ्लोट आदि के लिए पूर्णांक) और कई चीजें जैसे ऑपरेटर प्रिसेंस आदि।
चरण 4: मध्यवर्ती कोड जेनरेटर - a = b + c * de (temp1 = c * d, temp2 = temp1 + b, temp3 = temp2-e)
चरण 5: कोड ऑप्टिमाइज़ेशन - विभिन्न विश्लेषण (नियंत्रण प्रवाह, डेटा प्रवाह, परिवर्तन)
जो कि लाल होते हैं: अतिरेक कोड, निरंतर प्रसार, आंशिक मृत कोड, सामान्य उप-कोड, लूप अपरिवर्तनीय कोड
चरण 6: कोड जनरेशन - रजिस्टर में मान डालने वाले लक्ष्य कोड (ज्यादातर असेंबली लैंग्वेज) की पीढ़ी
ये सभी चरण कुछ भी नहीं है, लेकिन अच्छी तरह से लिखे गए कार्यक्रम हैं और इसमें एन खामियां हो सकती हैं।