Programming Languages and Compilers

Studijní plán: Aplikovaná informatika - platný od ZS 2019/2020

PředmětProgramming Languages and Compilers (PJPa-1)
GarantujeKatedra technických studií (KTS)
Garantdoc. Dr. Ing. Jan Voráček, CSc. ( voracek@vspj.cz )
Jazykanglicky
Počet kreditů5
Ekvivalent
Prezenční studium
Přednáška2 h
Cvičení2 h
Kombinované studium
Tutoriál / přednáška6 h
Cvičení8 h
Studijní plán Typ Sem. Kred. Ukon.
Aplikovaná informatika - kombi, platný od ZS 2019/2020 P 4 5 kr. Z,ZK
Aplikovaná informatika - kombi, platný od ZS 2021/2022 P 4 5 kr. Z,ZK
Aplikovaná informatika - platný od ZS 2019/2020 P 4 5 kr. Z,ZK
Aplikovaná informatika - platný od ZS 2021/2022 P 4 5 kr. Z,ZK
Erasmus - Aplikovaná informatika - příjezd na krátkodobý studijní pobyt PV 1 5 kr. Z,ZK

Sylabus

  • Overview of programming languages and programming paradigms.
  • Compiler structure,front-end and back-end. Virtual machines.
  • Finite automata and their implementation.
  • Lexical analysis, principles and implementation.
  • Context-free grammars and pushdown automata.
  • LL(1) grammars and top-down parsing.
  • LALR(1) grammars and bottom-up parsing.
  • Intermediate code, symbol table, run-time properties.
  • Optimizations.

Doporučená literatura

  • MOGENSEN, T. AE. Basics of Compiler Design Anniversary edition. 3. vyd. University of Copenhagen: lulu.com, 2010, 307 s. ISBN 978-87-993154-0-6. This is the mandatory text, marked further as [MG].
  • AHO, A. V., LAM, M. S., SETHI, R., ULLMAN, J. D. Compilers: Principles, Techniques, and Tools. 2. vyd. Cloth: Prentice Hall, 2006, 1000 s. ISBN 03 21-48681-1, marked further as [ASU].

Anotace

The course includes a survey of general features of programming languages and explanation of fundamental methods of their implementation. Design and program implementation of individual parts of a compiler are founded with fundamental theory of grammars and automatons. To illustrate the methods, a simple programming language is introduced and its compiler is designed and implemented. Next, fundamental methods of data types implementation, subprograms and data abstraction implementation are taught.


Knowledge: The student knows the basics of formal languages theory and can distinguish among various ways of their formal representation. They work fluently with regular expressions and grammars, finite and pushdown automatons and context-free grammars. Within these they can implement fundamental ways of mutual conversions and canonisations.


Skills: Using standard development tools, the student je is able to program lexical and syntactic analyser, include semantic rules to grammars and generate output code in accordance with goal specification.


Competences: The student can formalize efficiently and then automatize standard types of interactions with information technology. They are able to bring their outputs to the form of a goal-oriented compiler or generally interpretable language. Besides programming or scripting languages extending the possibilities of any SW products, they can automatize also processes of SW development in this way, e.g. formal modelling of user requirements or automatized verification and testing of developed program modules.

^ nahoru ^

Pracuji, vyčkejte prosím