|
Load:
|
1. komponenta
| Lecture type | Total |
| Lectures |
45 |
* Load is given in academic hour (1 academic hour = 45 minutes)
|
|
Description:
|
COURSE AIMS AND OBJECTIVES:
To train the student for the practical interpretation of programs written in various and modern programming languages.
COURSE DESCRIPTION AND SYLLABUS:
I. Introduction and motivations
1. Connections to the Chomsky hierarchy, lexers, parsers, interpreters
II. Practical interpretation of programs
1. Software support for practical interpretation of programs, simple examples of parser and interpreter, optimization, detecting and reporting errors
2. Precedence levels and their association, recursive and iterative parsing, implicit operators and lookahead, simple compiler example
3. Implementation of rudimentary memory, non-local flow control, simple context-sensitive conditions
4. Recursive function calls, non-local context transfer and return values
5. Interpretation of programs for various universal (and weaker) models of computation
6. Execution on foreign virtual machines, runtime environment construction and input from files
7. Parsing markup languages
8. Static typing, type inference, type checking, coerceability, variable declaration, compile-time symbol table
9. More complex examples
|
|
Literature:
|
-
Parsing Techniques: A Practical Guide, 2nd edition, D. Grune, C. J. H. Jacobs, Springer, 1990.
-
Compilers: Principles, Techniques and Tools, 2nd edition, A. Aho, M. Lam, R. Sethi, J. Ullman, Addison Wesley, 2006.
-
Introduction to the Theory of Computation, 3rd edition, M. Sipser, Cengage Learning, 2013.
|
|
Prerequisit for:
|
Enrollment
:
Attended
:
Calculation models
Examination
:
Passed
:
Calculation models
|