Programing Languages and Compilers

Studijní plán: Aplikovaná informatika - kombi, platný od ZS 2024/2025

PředmětPrograming 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 2024/2025 P 4 5 kr. Z,ZK
Aplikovaná informatika - platný od ZS 2024/2025 P 4 5 kr. Z,ZK

Sylabus

  • Programming languages survey; programming paradigms
  • Compiler structure, virtual computer
  • Finite automatons and their program implementation
  • Lexical analyser design and implementation
  • Context-free grammars and pushdown automatons
  • LL(1) grammars 
  • Syntactic analysis implementation by recursive descent 
  • Translation grammars of LALR(1) types and corresponding automatons 
  • Specification and implementation of data types and subprograms. Structure of a running program. Symbol table.
  • Generating and optimizing the target code.

Doporučená literatura

  • Studijní opora v LMS Moodle.
  • THAIN, Douglas. Introduction to Compilers and Language Design. 2. revid. vyd.. University of Notre Dame: 2023. ISBN: 979-8-655-18026-0.
  • MOGENSEN, Torben Æ. Basics of Compiler Design. Anniversary edition. 3. vyd.. University of Copenhagen: lulu.com, 2010. ISBN 978-87-993154-0-6.
  • AHO, Alfred V., LAM, Monica S., SETHI, Ravi and ULLMAN, Jeffrey D. Compilers: principles, techniques, & tools. 2nd ed. Boston: Pearson/Addison Wesley, 2007. ISBN 0321486811.

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