Compilers
Teaching Staff: Stefanidakis Michael
Code: HY340
Course Type: Elective Course
Course Level: Undergraduate
Course Language: Greek
Semester: 6th
ECTS: 5
Teaching Units: 3
Lecture Hours: 2
Lab/Tutorial Hours: 2L
Total Hours: 4
E Class Page: https://opencourses.ionio.gr/courses/DDI154/
Curricula: Revamped Curriculum in Informatics from 2025
"Compilers" utilize knowledge from different fields of computer science: algorithms, programming languages, and computer architecture. The purpose is the complex transformation of text into a different format, e.g., from a high-level language to machine instructions. Today, in the era of AI and heterogeneous computing units, new special-purpose programming languages are required, and the construction of compilers is more relevant than ever. However, compilation to machine code is not the only purpose: compiler techniques are now used for the efficient extraction and processing of all kinds of information from large datasets.
Upon successful completion of the "Compilers" course, undergraduate students will be able to:
-
Understand the process of source code conversion and the connection between hardware and software.
-
Autonomously follow further developments in the field of compilers and Domain-Specific Languages (DSLs).
-
Design and implement programs for pattern searching and data extraction in very large text files.
-
Select the appropriate parsing tool for the non-trivial transformation of structured textual information into machine-readable data.
1st week:
Introduction to the Python programming language (for labs).
2nd week:
Introduction to the various stages of compilation.
3rd week:
Lexical Analysis: Introduction and ad-hoc scanning.
4th week:
Laboratory exercises: Lexical analysis using finite state automata.
5th week:
Regular expressions.
6th week:
Laboratory exercises with regular expressions.
7th week:
Lexical analysis with automatic DFA construction tools.
8th week:
Laboratory exercises on lexical analysis tools.
9th week:
Syntactic Analysis.
10th week:
Top-down parsing: Introduction - basic concepts.
11th week:
Laboratory exercises in top-down syntactic analysis.
12th week:
Parsing Expression Grammars (PEGs).
13th week:
Optimizations and final code generation.
Back
Studies
e-mail: cs@ionio.gr