| Course Code | 321-4120 |
|---|---|
| Semester | 8 |
| ECTS | 5.00 |
| Hours (Theory) | 3 |
| Hours (Lab) | |
| Instructor | Goumopoulos Christos |
Types of programming languages.
Variables, expressions and commands.
Datatypes and type definition systems.
Scope and time of memory binding.
Procedures.
Exception handling.
Concurrency.
Object-oriented programming languages.
Introduction to the organization and operation of compilers.
Lexical analysis.
Syntax directed translation.
Basic detection techniques.
Symbol tables.
Intermediate code.
The student that will complete successfully the course is expected that will be in position to:
- Understand the fundamental concepts of programming languages.
- Understand key issues in programming language design and implementation (compiler theory)
- Know the main features of the tools and techniques governing the creation of modern programming languages
- Use of tools for implementing lexical, syntactical and semantic analysis of a programming language
- Use a new programming language (Python)
Not required.
| Activity | Semester workload |
|---|---|
| Lectures | 39 hours |
| Laboratory hours | 26 hours |
| Personal study | 56 hours |
| Mid-term Exam | 1 hour |
| Final exams | 3 hours |
| Course total | 125 hours (5 ECTS) |
Final examination and lab exercises (theoretical and programming). The mark of laboratory should be ≥ 5 for attendance in the final examinations. The mark of final examination should be ≥ 5 for successful course completion. The final mark is computed as follows: 0.4 * (Mark of Exercises) + 0.6 * (Mark of Examination). For each examination/exercises subject clearly specified evaluation criteria are given. The students can see their exam paper after the final examination and inspect their faults. The overall distribution of marks is announced on eClass, so that students can evaluate their performance.
Greek (English for Erasmus students)

