Personal tools
Log in

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