Search for contacts, projects,
courses and publications

Languages & Compilers

People

Nystrom N.

Course director

Schiavio F.

Assistant

Description

Programming languages allow us to express our intentions to computers and to each other. This course teaches you how to analyze programming languages, focusing on semantics, the meaning of programs in languages. To understand the semantics of a programming language, we take an engineering approach, building interpreters and compilers for the language. We use this approach to understand a variety of constructs in functional and object-oriented languages and to understand how these constructs interact with each other in real-world languages.

 

PREREQUISITES
Algorithms & Data Structures, Automata & Formal Languages, Computer Architecture, Programming Fundamentals 1, Programming Fundamentals 2, Programming Fundamentals 3, Systems Programming

 

 

REFERENCES

  • "Compilers: Principles, Techniques, and Tools", 2nd edition, Alfred Aho, Monica Lam, Ravi Sethi, and Jeffrey Ullman, 2006.
  • "Real World Haskell", Bryan O'Sullivan, Don Stewart, and John Goerzen, 2008.
  • "Thinking Functionally with Haskell", Richard Bird, 2015

Education