Course syllabus TPJ - Theory of Programming Languages (FBE - WS 2020/2021)

     ECTS syllabus          Syllabus          Timetable          

     Czech          English          

Course code: TPJ
Course title in language of instruction: Teorie programovacích jazyků
Course title in Czech: Theory of Programming Languages
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 (hours of lectures per week / hours of seminars per week)
Language of instruction: Czech
Level of course: master continuing
Semester: WS 2020/2021
Name of lecturer: doc. Dr. Ing. Jiří Rybička (supervisor)
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: -
Learning activities and study load (hours of study load):
Type of teaching methodDaily attendance
Direct teaching
     lecture28 h
     practice28 h
     preparation for exam56 h
     preparation for regular testing56 h
Total168 h
Assessment methods:
Students pass two practical tests (2 × 50 points), the first of which can be written in the middle of the semester. To get the credit it is necessary to obtain at least 25 points from each test and at least 55 points in total. In case of failure, there is one next attempt for each test.

Completion of the course: Oral exam focusing on theoretical principles and context, students choose two questions.
The final evaluation takes into account the points from the interim tests (40%) and the result of the oral exam (60%).

Students can also choose an alternative course completion in the form of implementing an interpreter of the selected language. The assignment must be consulted in time and approved by the course guarantor.

If the course is registered in the normal form, it cannot be studied during a foreign internship.
Recommended reading:
TypeAuthorTitlePublished inPublisherYearISBN
RQMELICHAR, B. -- MOLNÁR, Ľ. -- ČEŠKA, M.Gramatiky a jazykyBratislavaAlfa1987
RQČEŠKA, M.Gramatiky a jazykyVUT Brno1992
RQMEDUNA, A.Automata and languages : theory and applicationsLondonSpringer20001-85233-074-0-
REHOPCROFT, J E. -- ULLMAN, J D.Formálne jazyky a gramatikyBratislavaAlfa1978
RECol.Compilers: principles, techniques, & toolsBostonPearson/Addison Wesley0-321-48681-1


Last modification made by Ing. Jiří Gruber on 11/05/2019.

Type of output: