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).
  • Scott, M. L., Programming Language Pragmatics, 2nd edition, Morgan Kaufmann, 2009
  • Instructor Notes