Information about the course:

Formal Systems and Their Applications (FSA) (Dutch: Formele Systemen en hun Toepassingen (FST))

Academic year 2011-2012

Frank Piessens

Official syllabus of the course.


Course Contents

The course text book is Types and Programming Languages by Benjamin Pierce.

  1. Introduction.
    Discusses the role of formal systems in computer science, an overview of the contents of this course, and administrative and logistic information about the course.
    Slides
  2. Formal models of programming languages.
    Discusses the formal treatment of syntax, concrete versus abstract syntax, the formal treatment of semantics using small-step structural operational semantics, the notion being stuck to model runtime errors. In addition, the syntax and semantics of the untyped lambda calculus are defined.
    Slides
  3. Simple type systems.
    Illustrates the notions of type system, safety, progress and preservation on a simple expression language, then on the simply typed lambda calculus, and finally on various simple extensions of the simply typed lambda calculus such as records, variants, lists, exceptions, ...
    Slides
  4. Subtyping.
    Discusses the  subtyping relation, structural subtyping, the interaction of subtyping with other language features, type systems for object oriented languages, and nominal subtyping.
    Slides
  5. Conclusion
    Slides

 


Links

http://www.cis.upenn.edu/~bcpierce/tapl/

http://www.scala-lang.org/


Examination

The examination is a closed-book, oral exam with sufficient time to prepare in writing for the oral part.

Defending your solution to the course project is part of the exam.


Project

Information about the course project: see Toledo.