_____________________________________________________________________________________


Unit 1. Introduction to Language Processors

Unit 1 introduces the main aims of the course and describes important concepts related to compilers, translators, interpreters, and related programs. It also presents the main components in the architecture of a compiler, their evolution, programming paradigms and language design.

1. Unit 1. Introduction to Language Processors. Main guide to follow the unit (PDF)

2. Unit 1. Introduction to Language Processors. Theoretical contents (PDF)


Unit 2. Lexical Analysis

Unit 2 introduces the role of the lexical analyzer into the architecture of a language processor. It also presents different techniques for the scanner implementation, and explains how to implement a scanner by means of the recognition of tokens using Regular Expressions and Deterministic Finite Automata.

3. Unit 2. Lexical Analysis. Main guide to follow the unit (PDF)

4. Unit 2. Lexical Analysis. Theoretical contents (PDF)


Unit 3. Formal Grammars

Unit 3 reviews the most important concepts related to formal grammars (main definitions, use of the production rules, derivations and parse trees representations, Chomsky Hierarchy, BNF notation, etc.). It also illustrates the key issues in parsing context-free grammars (ambiguity, recursive rules, and left-factoring).

5. Unit 3. Formal Grammars. Main guide to follow the unit (PDF)

6. Unit 3. Formal Grammars. Theoretical contents (PDF)


Unit 4. Syntax Analysis

Unit 4 describes the role of the parser in the architecture of a language processor. It also presents the advantages of using grammars to develop a syntax analyzer and the most relevant techniques for syntax analysis (Top-Down and Bottom-Up parsing).

7. Unit 4. Syntax Analysis. Main guide to follow the unit (PDF)

8. Unit 4. Syntax Analysis. Theoretical contents (PDF)


Unit 5. Top-Down Parsing

Unit 5 describes the main characteristics of Top-Down parsing techniques. It presents the most relevant techniques to develop a Top-Down predictive parser and the main alternatives for error detection and recovery using these parsing techniques.

9. Unit 5. Top-Down Parsing. Main guide to follow the unit (PDF)

10. Unit 5. Top-Down Parsing. Theoretical contents (PDF)


Unit 6. Bottom-Up Parsing

Unit 6 describes the main characteristics of Bottom-Up parsing techniques. It presents the most relevant features and approaches in shift-reduce parsing, and explains how to construct LR table-driven shift-reduce parsers.

11. Unit 6. Bottom-Up Parsing. Main guide to follow the unit (PDF)

12. Unit 6. Bottom-Up Parsing. Theoretical contents (PDF)


Unit 7. Semantic Analysis

Unit 7 describes the role of the semantic analyzer into the architecture of a language processor. It presents the main tasks that must be completed by a semantic analyzer and the main approaches to solve them.

13. Unit 7. Semantic Analysis. Main guide to follow the unit (PDF)

14. Unit 7. Semantic Analysis. Theoretical contents (PDF)


Unit 8. Error Handling

Unit 8 describes the main error recovery strategies for a parser. It presents the main approaches for error detection and recovery in Top-Down predictive parsing and Bottom-Up parsing.

15. Unit 8. Error Handling. Main guide to follow the unit (PDF)

16. Unit 8. Error Handling. Theoretical contents (PDF)


Unit 9. Intermediate Code Generation

Unit 9 describes the role of intermediate code generation in the architecture of a language processor. It presents the main types of intermediate languages (graphical and linear intermediate representations).

17. Unit 9. Intermediate Code Generation. Main guide to follow the unit (PDF)

18. Unit 9. Intermediate Code Generation. Theoretical contents (PDF)


Unit 10. Code Optimization

Unit 10 describes the role of code optimization in the architecture of a language processor. It presents the concept of basic block and uses it to classify optimizations into local and global.

19. Unit 10. Code Optimization. Main guide to follow the unit (PDF)

20. Unit 10. Code Optimization. Theoretical contents (PDF)


Unit 11. Final Code Generation

Unit 11 describes the role of final code generation in the architecture of a language processor. It presents the concepts of target program, target machine, and instruction cost. The unit also describes the main transformations on basic blocks and how to carry out register allocation.

21. Unit 11. Final Code Generation. Main guide to follow the unit (PDF)

22. Unit 11. Final Code Generation. Theoretical contents (PDF)

Última modificación: viernes, 13 de mayo de 2022, 13:54