Compilation
:- It is a process to convert a high level Programming Language into
a Machine Language that the computer can understand.
· Why do we need a compilation process?
अगर हम C Language की बात करे तो ये एक High
Level Programming Language है जिसकी
वजह से C Language में लिखे गए Code को मशीन Language(Binary Language यानि 0 और 1) में convert किया जाता है
इसके लिए हमें Compilation
Process की जरुरत होती है |
· Compilation Process का ये काम compiler के जरिये किया जाता है | Compiler C Language में लिखे गए code को Machine Code में convert कर देता है जिससे Machine उस Code को आसानी से समझने में
Capable (सक्षम) हो
जाता है |
· Phases of Compilation Process :-
1. Lexical
Analyzer
2. Syntax
Analyzer
3. Semantic
Analyzer
4. Intermediate
Code Generator
5. Code
Optimization
Fig:- Compilation Process |
1. Lexical Analyzer :- यह Phase प्रोग्राम को character by character स्कैन करता है और इन characters को meaningful words (Lexemes ) में grouping करता है जैसे Identifier, Special words ,Operators और punctuation
Symbols · Lexical Analyzer ये Source Program के comments को Ignores करता है क्योकि compiler का उनके लिए कोई इस्तेमाल नहीं है | 2 . Syntax Analyzer :- यह Phase Lexical Analyzer के output को Input के शकल में लेता है और Program के Grammar को check करने के लिए Syntax tree (Parse Tree ) को Generate करता है ताकि इसके syntax को check कर सके | 3. Semantic Analyzer :- यह phase check करता है की Syntax Analyzer phase में जिस syntax tree का construction किया गया है वो language के rules को follow कर रहा है | Eg :- अगर हमने int x को define किया है तो वह X सिर्फ Integer value को ही store करना चाहिए | 4. Intermediate code generator:- इस phase में source code का Intermediate code generate होता है और इस Intermediate code को Machine Language में translate किया जाता है | 5.Code Optimization :- इस phase में जो भी intermediate code के जरिये से unnecessary code lines generate हुआ है उसको remove कर दिया जाता है | What is a Symbol Table?The symbol table is mainly known as the data structure of the compiler. It helps in storing the identifiers with their name and types. It makes it very easy to operate the searching and fetching process. The symbol table connects or interacts with all phases of the compiler and error handler for updates. It is also accountable for scope management. Why do we use parsing in compilers? The parser in the compilation process is utilised to split the data into smaller components reaching from the lexical analysis phase (first phase). It takes input in the form of a series of tokens and creates output as the parse tree. Difference between a Compiler and an Interpreter?
|