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.
|