Match the steps of compiler design in List-I with their descriptions in List-II and select the correct answer from the options given below.
| List-I (Steps of Compiler Design) | List-II (Descriptions) |
| a) Code Optimization | i) This step translates the source code into tokens and removes white spaces and comments. |
| b) Syntax Analysis | ii) This step identifies and reports syntactic and semantic errors in the source code. |
| c) Lexical Analysis | iii) This step improves the intermediate code to make it run faster and take up less space. |
| d) Error Handling | iv) This step ensures that the source code follows the syntactic structure of the programming language. |
1
a-iii, b-iv, c-i, d-ii
2
a-iv, b-iii, c-ii, d-i
3
a-iii, b-ii, c-i, d-iv
4
a-ii, b-iv, c-iii, d-i