Programming Languages and Compilers

Semestr: Winter

Range: 2+2s

Completion:

Credits: 5

Programme type: Undefined

Study form:

Course language: English

Summary:

This course offers an overview of general features of programming languages and explanation of basic methods of language implementation. Design and programming of particular parts of compilers are supported by elements of the theory of grammars and automata. Simple programming language is designed and its compiler is written as an example.

Keywords:

Course syllabus:

1. Overview of programming languages, programming paradigms
2. Structure of a compiler, virtual computer
3. Finite state automata and their implementation
4. Design and implementation of lexical analyzer
5. Context free grammars and pushdown automata
6. LL(1) grammars
7. Recursive descent
8. Translation grammars and automata
9. L-attributed translation grammars
10. Compiler specified by L-attributed translation grammar
11. Specification and implementation of data types
12. Specification and implementation of subprograms
13. Specification and Implementation of data abstractions
14. Machine code generation

Seminar syllabus:

1. Syntax diagrams, BNF and EBNF
2. Semester project specification
3. Virtual computer
4. Implementation of finite state automata
5. Design and implementation of lexical analyzer
6. Context free grammars and pushdown automata
7. LL(1) grammars
8. Recursive descent
9. Translation grammars and automata
10. L-attributed translation grammars
11. Example of a compiler specified by L-attributed translation grammar
12. Example of a compiler specified by L-attributed translation grammar
13. Subprograms implementation
14. Assessment

Literature:

1. Pratt,T.W., Zelkowitz, M.V.: Programming Languages. Third Edition. Prentice Hall, London, 1999.
2. Melichar,B., Holub,J., Muzatko,P.: Languages and Translations. CTU, Praha 1997.

Examiners:

Lecturers:

Instructors: