Programming Languages

Objectives and Outcomes

Mastering the concepts and techniques of creating programming languages. The acquired knowledge
enables the creation and implementation of specific programming languages, as well as the basis for
further research in this field.

Lectures

Spectrum of programming languages. Translation and interpretation. Programming language syntax.
Regular expressions and context-free grammar. Scanners and parsers. Names, domains and links.
Lifetime and object memory management. Domain rules. Connecting environments.
Semantic analysis. Attribute grammar. Attribute flows. Spatial attribute management.
Syntax tree marking. Computer architecture at the assembler level. Memory hierarchy. Data
presentation. Instruction set architecture. Translation for modern processors. Flow control. Calculating
expressions. Structured and unstructured flow. Sequencing. Selection. Iteration. Recursion.
Indeterminacy. Data types. Type check. Records and variants. Vectors. Strings. Pointers and recursive
types. List. Files and input / output. Equality and assignment testing. Subroutines and control abstraction.
Stack configuration. Calling sequences. Parameter transfer. Generic subroutines and modules. Error
handling. Development of executive programs.

Research work

A part of the course is dedicated to independent research work that includes writing a paper or
implementing a specific solution into the field of programming languages.