Lecturer: Prof. Marinus Jakobus Plasmeijer, Radboud Universiteit Nijmegen
Credits: 1

Brief Summary of the Course

In this course, advanced programming concepts will be taught. We will address the following:

  1. Type-deriven generic programming.
  2. Task Oriented Programming for developing multi-user, distributed, web-based applications in a pure functional language.

Objectives

Insight in some state-of-the-art advanced programming concepts, their theoretical background and their practical applicability.

Subjects

  1. Generic programming. Theoretical background, overloading, type constructor classes, kind indexing, applications of generic programming.

  2. Task Oriented Programming (TOP). Editors, task combinators, shared data sources, web programming in a functional language, client-server architecture, publish-subscribe systems, developing applications for Android.

  3. TOP examples. Examples and practical applications of TOP.

  4. TOP as example of Embedded Domain Specific Language. Deep and shallow semantics, continuation-based operational semantics.

Examination

Oral, closed book.

Pre-requisites

Basic knowledge about functional programming in general (Clean or Haskell).

Support Materials

Slides for the lectures and the associated examples are available (as a single zip file of size approx. 13 MB) on this site for download.

For the included sources, the use of the latest version of the Clean compiler and the iTask library is suggested. Both of them can be obtained from the Clean home page. Here, the Windows (32-bit) version is recommended due to its ease of installation. Alternatively, the Linux or Mac OS X versions are also available there.


Last Update: February 8, 2017