Principles of Programming Languages and Systems

Peter Fritzson,

PELAB - Programming Environment Laboratory
Dept. of Computer and Information Science,
Linköping University, Sweden

Course information

Course Literature

  • Programming Languages, Principles and Practice; Kenneth C. Louden
  • Natural Semantics and RML Tutorial; Peter Fritzson
  • System development environments (parts); Peter Fritzson
  • Chapter on Interacting with Mathematica (from John W. Gray's book)
  • Mathematica as illustration of programming constructs, on-line manual
  • One-line Mathematica notebooks
  • Paper on the Integrated MathModelica Environment; Peter Fritzson, Johan Gunnarsson, Mats Jirstrand.


  • Hand-in exercises at next lecture
  • Oral presentation of exercises, selected students at each lecture
  • 3 course points
  • Small programming exercises


  • Peter Fritzson, lecturer; petfr@ida
  • Britt-Inger Karlsson, course secretary; brika@ida
  • Advisor on Mathematica programming, RML programming and system installation: (Adrian Pop, adrpo@ida).

Optional mini-project

  • For example, develop a mini-language yourself
  • 1-2 points

Lecture overview

(Chapter references: Louden1993, 1st edition, 1993,
or Louden2003, 2nd edition, 2003)

Lecture 1,2         October 11

13.15-16.00 Lecture 1+2:  Don Knuth
Overview, chapter 1; History, chapter 2;
Language design, chapter 3;  BNF, abstract syntax (4.2, 4.3)

Basic semantics, chapter 5
Data types (parts of chapter 6)

Lecture 3       October 18

13.15-16.00  Donald Knuth

Discussion of exercise solutions
Parameter passing, section 7.4 in Louden1993 or 8.3 in Louden2003
Functional languages, chapter 10 in Louden1993 or  Chapter 11 in Louden2003.

Lecture 4        Nov 1

13.15-16.00  Donald Knuth

Discussion of exercise solutions
Abstract data types, Chapter 8 in Louden1993 or Chapter 9 in Loudn2003.
Object-oriented languages, Chapter 12 in Louden1993 or Chapter 13 in Louden2003.

Lecture 5       Nov 8

13.15-16.00  Donald Knuth


Discussion of exercise solutions
Environments, stacks (section 7.5 in Louden1993, section 8.4 in Louden2003)
Semantics (sections 12.1-12.2.3 in Louden1993, sections 13.1 – 13.2.3 in Louden2003)
Natural semantics and RML  (lecture notes, chapters 1-2 in RML book).

Lecture 6      Nov 22

13.15-16.00  Donald Knuth (last lecture, most exercises completed)


Discussion of exercise solutions

Integrated Programming environments
Structured environments
Configuration management and version handling
Course evaluation