.

Friday, January 25, 2019

Compiler Design Phases

Lexical Analysis * Stream of characters in the source broadcast is grouped into meaningful sequences called lexemes. Tokens are produced for each lexeme. A token is an diddle emblem generated during lexical analysis. * Generally, a token has an attribute value habituated to it. It denotes the position of the variable in a symbol table. A symbol table is a table which stores information about an identifier and is referred at diverse stages of compilation. Syntax Analysis * The syntax analyser checks each line of the encrypt and spots every tiny mistake that the programmemer has committed firearm typing the code. The compiling program follows a detailed procedure using the tokens creates by the lexical analyzer and creates a tree-like structure called the syntax tree. * The syntax analyzer checks whether the order of tokens conform to the rules of the programming language. Unmatched parenthesis, missing semicolons are near of the errors detected in this phase. * If there are no errors in the code, the syntax analyser successfully constructs a syntax tree which is later utilize by the semantic analyser. Semantic Analysis * Semantic by exposition is concerned with meanings.A semantic analyser is mainly concerned with what the program promoter and how it executes. * Type checking is an important aspect of semantic analysis where each hustler should be compatible with its operands. Intermediate ordinance Generation * A compiler may construct fair representations while converting a source program to a stain program. * The representation should be easy to convert into a target language. It is then passed onto the second phase of compiler design the synthesis phase. This phase involves the actual construction of target program and includes code optimisation and code generation.Code Optimization * As the name suggests, this phase aims at optimising the target code. * The code can be optimised in terms of time interpreted to execute, length of the code, me mory utilised or any other criteria. Code Generation * Target code is generated at this phase using the intermediate representation of the source program. * The machine instructions perform the same tasks as the intermediate code. Registers are allocated to variables in the program. * This has to be done carefully so as to avoid any clashes or repeated assignments. Various algorithms book been formulated to generate the most efficient machine code.

No comments:

Post a Comment