Study programmes / C-SE System engineering and informatics / Theory of Programming Languages
Course code:TPJ
Course title in language of instruction:Teorie programovacích jazyků
Course title in Czech:Teorie programovacích jazyků
Course title in English:Theory of Programming Languages
Mode of completion and number of credits:Exam (6 credits)
(1 ECTS credit = 28 hours of workload)
Mode of delivery/Timetabled classes:full-time, 2/2
(full-time, hours of lectures per week / hours of seminars per week)
Language of instruction:Czech
Level of course:master continuing
Semester:WS 2018/2019 - FBE
Name of lecturer:Ing. Dita Dlabolová, Ph.D. (tutor)
Ing. Pavel Haluza, Ph.D. (examiner, instructor, lecturer, tutor)
doc. Dr. Ing. Jiří Rybička (examiner, lecturer, supervisor, tutor)
Prerequisites:Final Bachelor Exam
 
Aims of the course:The aim of the course is to provide students with the basic knowledge and principles of construction and implementation of programming languages, theory of formal languages, lexical, syntax and semantic analysis and compiler construction.
Course contents:
1.The term of programming language, its classification and representation (allowance 4/2)
 
a.The formal language
b.Chomsky classification of formal languages
c.Formal grammars and automata

2.Regular languages (allowance 8/8)
 
a.Linear and regular grammar
b.Regular expression
c.Finite automata and its implementation
d.Lexical analyzator and its implementation

3.Context-free languages (allowance 8/8)
 
a.Deterministic context-free languages and syntax analysis
b.LL-class of context-free languages
c.LR-class of context-free languages
d.Stack automata and its implementation

4.Semantics (allowance 4/4)
 
a.Semantic analysis
b.Generating of intermediar code

5.Compiler implementation (allowance 4/6)
 
a.Generating compiler
b.Interpreting compiler

Learning outcomes and competences:
Generic competences:
 
-ability to apply knowledge
-ability to solve problems
-ability to work independently
-general knowledge

Specific competences:
 
-student has knowledge about the field of formal languages, their classification and ability to use
-student is able to apply theoretical elements for the construction of own formal language
-student is able to construct appropriate formal language and its description, i.e. formal grammar and automaton
-student is able to implement propose formal language compiler

Type of course unit:required
Year of study:Not applicable - the subject could be chosen at anytime during the course of the programme.
Work placement:There is no compulsory work placement in the course unit.
Recommended study modules:none
Assessment methods:The exam consists of two written tests and oral part. The first test is possible to write after first half of the semester. For each test it is possible to get 50 points, the required minimum is 25 points. For successful completion of the course it is required to obtain at least 55 points. The oral exam consists the survey of theoretical principles.
 
Learning activities and study load (hours of study load)
Type of teaching methodDaily attendance
Direct teaching
     lecture28 h
     practice28 h
Self-study
     preparation for exam56 h
     preparation for regular testing56 h
Total168 h

Basic reading list
  • MELICHAR, B. -- MOLNÁR, Ľ. -- ČEŠKA, M. Gramatiky a jazyky. Bratislava: Alfa, 1987. 192 p.
  • ČEŠKA, M. Gramatiky a jazyky. VUT Brno, 1992. 137 p.
  • MEDUNA, A. Automata and languages : theory and applications. London: Springer, 2000. 916 p. ISBN 1-85233-074-0-.
Recommended reading list
  • HOPCROFT, J E. -- ULLMAN, J D. Formálne jazyky a gramatiky. Bratislava: Alfa, 1978. 343 p.
  • Col. Compilers: principles, techniques, & tools. 2nd ed. Boston: Pearson/Addison Wesley, 1009 p. ISBN 0-321-48681-1.