In the context of compilers, which of the following is/are $\text{NOT}$ an intermediate representation of the source program?
Kanwae Kan Yes
Correct Answer: D Symbol table is a data structure created and maintained by compilers in order to store info about occurrences of various entities like variable names, function names, objects, classes and interface. Various forms of intermediate representation of code include Postfix Notation, Three address code ( x = y op z), Syntax Tree, DAG. Abstract Syntax Tree is a condensed version of syntax tree/parse tree more to with program than the compiler. Parse Tree and Syntax Tree:
Control Flow Graph is used in optimization phase of compiler,each basic block consists of linear code, the next block to access is determined by the last instruction of the current block. An Example,
goto L2 L1: t0 := 3 >> x t1 := y / t0 x := t1 if y == 0 goto L3 t2 := x - 3 print t2 L3: L2: t4 := 4 * y x := t4 < t5 if t5 != 0 goto L1
See:
https://www.rose-hulman.edu/class/csse/csse404/schedule/day24/IntermediateRepresentations.pdf (page 8)
As it is given in the Ullman
8.4 Basic Blocks and Flow Graphs This section introduces a graph representation of intermediate code.
8.4 Basic Blocks and Flow Graphs
This section introduces a graph representation of intermediate code.
so OPTION D is correct.
https://testbook.com/question-answer/in-the-context-of-compilers-which-of-the-followin--6037bd1220b00eabf4667b67#:~:text=Control%20Flow%20Graph%3A%20Control%20flow,terms%20of%20some%20variable%20notation.
may be helpful.