|
Lecturer(s)
|
-
Lipka Richard, Ing. Ph.D.
|
|
Course content
|
1-Types of compilers, structure of compilers and interpreters. 2-Regular grammars and finite automata in lexical analysis, FLEX. 3-Introduction to syntactic analysis, Recursive Descent Metod. 4-Statements translation. 5-Declaration evaluation. 6-Run-Time storage allocation. 7-Interpretation. Checking test. 8-Code generation. 9-Features of context free grammars. 10-Deterministic top-down analysis. 11-LL(1) transformation. 12- Deterministic bottom-up analysis, LR grammars. 13-Formal methods for software construction, compiler generators.
|
|
Learning activities and teaching methods
|
Lecture with practical applications, Project-based instruction
- Contact hours
- 65 hours per semester
- Individual project (40)
- 40 hours per semester
- Preparation for formative assessments (2-20)
- 12 hours per semester
- Preparation for an examination (30-60)
- 50 hours per semester
|
| prerequisite |
|---|
| Knowledge |
|---|
| use knowledge about programming structures |
| have a good knowledge of a high-level programming language, primarily Java or C |
| use knowledge of the theoretical informatics (especially Chomsky hierarchy) |
| use knowledge of data structures |
| use theoretical knowledge of discrete mathematic (especially about grahphs) |
| show basic knowledge of terms and methods of mathematics, probability and statistics |
| Skills |
|---|
| use basic knowledge of discrete mathematics |
| use basic knowledge of theoretical informatics (especially about regular languages) |
| use basic knowledge of programming techniques |
| be able to use higher programming languages to create complex programs |
| know how to create well documented, robust code, be able to practically use algorithmization, data structures and specific development tools |
| Competences |
|---|
| N/A |
| learning outcomes |
|---|
| Knowledge |
|---|
| have an overivew about formal tools for software construction |
| describe positive and negative impacts of implementation of different programming constructions and use them efficiently |
| describe the working of different parts of the high-level language compiler |
| describe the working of tools for the text processing |
| Describe principles and advantages of different programming paradigmas |
| Skills |
|---|
| use formal methods for software construction |
| Implement different program constructions |
| to efficiently use programming language for algorithm representation |
| implement a compiler of a simple language |
| Competences |
|---|
| N/A |
| N/A |
| N/A |
| teaching methods |
|---|
| Knowledge |
|---|
| Students' portfolio |
| Self-study of literature |
| Task-based study method |
| Textual studies |
| Lecture with visual aids |
| Project-based instruction |
| Practicum |
| Skills |
|---|
| Practicum |
| Students' portfolio |
| Competences |
|---|
| Textual studies |
| Students' portfolio |
| assessment methods |
|---|
| Knowledge |
|---|
| Test |
| Written exam |
| Group presentation at a seminar |
| Project |
| Skills |
|---|
| Skills demonstration during practicum |
| Project |
| Group presentation at a seminar |
| Competences |
|---|
| Skills demonstration during practicum |
| Group presentation at a seminar |
|
Recommended literature
|
-
Aho, Alfred V. Compilers : principles, techniques, and tools. 2nd ed. Boston : Pearson Education, 2007. ISBN 0-321-49169-6.
-
Aho, Alfred V.; Sethi, Ravi; Ullman, Jeffrey D. Compilers : principles, techniques, and tools. Reading : Addison-Wesley, 1988. ISBN 0-201-10088-6.
-
Melichar, Bořivoj. Jazyky a překlady. Vyd. 2., přeprac. Praha : Vydavatelství ČVUT, 2003. ISBN 80-01-02776-7.
-
Melichar, Bořivoj. Konstrukce překladačů. I. část. Vyd. 1. Praha : Vydavatelství ČVUT, 1999. ISBN 80-01-02028-2.
-
Molnár, Ludovít; Melichar, Bořivoj; Češka, Milan. Gramatiky a jazyky. Bratislava : Alfa, 1987.
-
Reinhard Wilhelm Helmut Seidl Sebastian Hack. Compiler Design. Berlin, 2013. ISBN 978-3-642-17539-8.
-
Thain, Douglas. Introduction to Compilers and Language Design. 2020. ISBN 979-8-655-18026-0.
|