|Que.||Match the description of several parts of a classic optimizing compiler in List - I, with the names of those parts in List - II:
List - I
(a) A part of a compiler that is responsible for recognizing syntax.
(b) A part of a compiler that takes as input a stream of characters and produces as output a stream of words along with their associated syntactic categories.
(c) A part of a compiler that understand the meanings of variable names and other symbols and checks that they are used in ways consistent with their definitions.
(d) An IR-to-IR transformer that tries to improve the IR program in some way (Intermediate representation).
List - II
(ii) Semantic Analysis
(a) (b) (c) (d)
|a.||(iii) (iv) (i) (ii)|
|b.||(iv) (iii) (ii) (i)|
|c.||(ii) (iv) (i) (iii)|
|d.||(ii) (iv) (iii) (i)|
|Answer:(iii) (iv) (i) (ii)|