Compilers
Course title: Compilers
Code: 3ФЕИТ07Л015
Number of credits (ECTS): 6
Weekly number of classes: 2+2+1+0
Prerequisite for enrollment of the subject: Passed: Data Structures and Algorithm Analysis
Course Goals (acquired competencies): Introducing to the structure and steps for designing compilers and interpreters. Upon completion of the course students will be able to independently design and create a compiler/interpreter for the appropriate programming language.
Total available number of classes: 180
Course Syllabus: Compiler/interpreter model; Structure and architecture of a compiler; Lexical analysis; Regular expressions; Symbol table; Introduction to parsing. Syntax analysis. Finite automata. Grammar. Top-down parsing. Bottom-up parsing. Semantic analysis and type checking. Run-time environment. Code Generation. Interpreter. Assembler, disassembler, linker and loader. Optimization Techniques. From syntactic tree to code. Local optimization. Global optimization. An explicit and implicit way of managing memory. Register allocation. Memory Management. Functional and logic programs. Parallel and distributed programs.
Literature:
Required Literature |
||||
No. |
Author |
Title |
Publisher |
Year |
1 |
Aho A.V., Lam M.S., Sethi Р., Ullman J.D. |
Compilers: Principles, Techniques, and Tools, 2/E |
Addison Wesley |
2007 |
2 |
Grune D.,Bal H.E., Jacobs C., Langendoen K.G. |
Modern Compiler Design |
John Wiley & Sons |
2000 |
3 |
Appel, Andrew W. |
Modern Compiler Implementation in Java, 2nd ed. |
Cambridge |
2002 |