Modulbeschreibung

Programming Languages and Formal Methods

ECTS-Punkte:
4
Lernziele:

The main aim of this module is to apply formal programming language based techniques for the construction and verification of computer programs.

 

Special emphasis will be made on techniques outside mainstream programming in the imperative object oriented programming style, and verification using unit testing.

 

 All participants are able to:

  • Construct programs in the functional style
  • Verify the correctness of functional programs
  • Explain the formal foundations of the techniques covered

Kurse in diesem Modul

Programming Languages and Formal Methods:

Functional programming (Haskell):

  • Referential transparency
  • Functions as first-class citizens
  • Higher-order functions
  • Algebraic datatypes
  • Pattern matching
  • Recursion
  • Types & type inference
  • Type classes
  • Functors, Applicative, Monads

 

Verification:

  • Property-based testing (Quickcheck)
  • Proving program correctness

 

Formal foundations:

  • Formal proof
  • Lambda calculus

 

General Programming language concepts:

  • Programming Paradigms
  • Evaluation strategies
  • Parameter passing

 

Special topics will be covered, depending on student interest and the time available in the current semester. Here are some examples of such topics covered in the past:

  • Type systems
  • Logic programming

 

The content of this course varies strongly in order to reflect student interest and recent developments in this area. It is therefore strongly recommended that you complete the examination in the same semester as you enrolled for this course.

 

This course will be taught in English.

Vorlesung mit 2 Lektionen pro Woche
Uebung mit 2 Lektionen pro Woche
Disclaimer

Diese Beschreibung ist rechtlich nicht verbindlich! Weitere Informationen finden Sie in der detaillierten Modulbeschreibung.