Compiler Design and Construction - Old Questions
Question Answer Details
8. What do you mean by intermediate code? Explain the role of intermediate code in compiler design.
Answer
AI Generated Answer
AI is thinking...
Official Answer
Intermediate code is used to translate the source code into the machine code. Intermediate code lies between the high-level language and the machine language. The given program in a source language is converted into an equivalent program in an intermediate language by the intermediate code generator. Intermediate codes are machine independent codes.
Roles of Intermediate code are :
- It acts as a glue between front-end and
backend (or source and machine codes).
- If the compiler directly translates source code into the machine code without generating intermediate code then a full native compiler is required for each new machine.
- The intermediate code keeps the analysis portion same for all the compilers that's why it doesn't need a full compiler for every unique machine.
- Intermediate code generator receives input from its predecessor phase and semantic analyzer phase. It takes input in the form of an annotated syntax tree.
- Using the intermediate code, the second phase of the compiler synthesis phase is changed according to the target machine.
- Intermediate code generator lowers abstraction from source level.
- Complete some syntactic checks, perform more
semantic checks. For e.g. break should be inside loop or switch only.
The intermediate code representation are
- Graphical representation e.g. Abstract Syntax Tree(AST) , DAGS
- Postfix notations
- Three Address codes