Compilers

Professors Nikitas-Marinos Sgouros
Course category OPT/SDS
Course ID DS-206
Credits 5
Lecture hours 3 hours
Lab hours 2 hours
Digital resources View on Aristarchus (Open e-Class)

Learning Outcomes

This course provides an introduction to the principles of analysis and design of programming languages as well as to the ways these principles are applied in modern programming languages. The successful completion of this course will allow students:

  • to understand the basic and important features of the design, implementation and analysis of compiler systems for modern programming languages.
  • to know the basic features of the tools and the development techniques for the creation of modern programming languages.

Course Contents

  • Introduction – Overview of Modern Programming Languages.
  • Language Definition and Design (Regular Expressions – Automata – Context-Free Grammars).
  • Programming Language Structure (Variables, Types and Scoping, Control Flow and Evaluation of Expressions, Subroutines, Iterative and Recursive Processes, Memory Management and Communication).
  • The Compiling/Interpretation Process (Lectical Analysis, Syntactic Analysis, Code Production & Optimization, Linking).

Recommended Readings

  • Scott, M. L., Programming Language Pragmatics, 2nd edition, Morgan Kaufmann, 2009
  • Instructor Notes