Compiler क्या है? (What is a Compiler)
Compiler वह सिस्टम सॉफ़्टवेयर है जो उच्च स्तरीय भाषा (High Level Language) में लिखे गए पूरे प्रोग्राम को एक साथ पढ़कर उसे निम्न स्तरीय भाषा (Machine / Object Code) में बदल देता है, ताकि कंप्यूटर उसे समझकर निष्पादित कर सके।
उदाहरण: C, C++, Java जैसे प्रोग्राम पहले compiler से होकर machine code में बदलते हैं।
Compiler के Phases (चरण)
Compiler का कार्य कई चरणों (phases) में पूरा होता है। प्रत्येक phase का अपना विशेष कार्य होता है।
Compiler Phases का Diagram
Source Program
|
v
+——————+
| Lexical Analysis |
+——————+
|
v
+——————+
| Syntax Analysis |
+——————+
|
v
+——————+
| Semantic Analysis|
+——————+
|
v
+——————+
| Intermediate |
| Code Generation |
+——————+
|
v
+——————+
| Code Optimization|
+——————+
|
v
+——————+
| Target Code |
| Generation |
+——————+
|
v
Object / Machine Code
1️⃣ Lexical Analysis (Lexical Analyzer / Scanner)
-
यह compiler का पहला चरण है।
-
यह source code को tokens में तोड़ देता है।
-
Comments, white spaces को हटाता है।
-
Identifiers, keywords, operators पहचानता है।
Input : Source Program
Output : Tokens
उदाहरण:
int, a, =, 10, ;2️⃣ Syntax Analysis (Parser)
-
यह जाँच करता है कि प्रोग्राम व्याकरण (grammar) के अनुसार सही है या नहीं।
-
Parse Tree / Syntax Tree बनाता है।
-
Syntax error बताता है।
उदाहरण:
c
int a = ;
❌ Syntax Error
3️⃣ Semantic Analysis
-
यह प्रोग्राम के अर्थ (meaning) की जाँच करता है।
-
Type checking करता है।
-
Variable declaration, scope की जाँच करता है।
उदाहरण:
a = “hello”;
❌ Type Mismatch Error
4️⃣ Intermediate Code Generation
-
Source code का machine independent रूप बनाता है।
-
इसे Intermediate Representation (IR) कहते हैं।
उदाहरण:
a = t1
5️⃣ Code Optimization
-
Code को तेज़ और कम memory उपयोग वाला बनाता है।
-
Unnecessary instructions हटाता है।
उदाहरण:
Optimize होकर:
6️⃣ Target Code Generation
-
अंतिम चरण
-
Intermediate code को Machine Code / Object Code में बदलता है।
Output : Executable Program
सहायक घटक (Supporting Components)
🔹 Symbol Table
-
Variables, functions की जानकारी रखता है।
🔹 Error Handler
-
हर phase में errors को handle करता है।
Compiler उच्च स्तरीय भाषा को मशीन भाषा में बदलने की एक क्रमबद्ध प्रक्रिया है। इसके सभी phases मिलकर source program को सही, तेज़ और निष्पादन योग्य बनाते हैं।
Speak Your Mind