General Info

CPSC 449: Principles of Programming Languages - Materials

Textbooks and Sources on the Internet

There are a lot of text books dealing with principles of programming languages but none of them (as usual) covers exactly what we will be looking at in this course. Therefore I have decided not to use any text book. This does not mean that you cannot use any text books. I suggest that you take a look at different text books in our library and if you think that you need additional information on a subject (or want to read a second opinion regarding what I am telling you in the lectures) you can buy the book you like best (or just read the appropriate section).

I assume that all of you already know Java and have found your prefered book describing the syntax and semantics of this language.

In the following I will provide you with links to web resources that contain introductions to the other languages you will have to learn in order to do the assignments to the course:

The above list is not intended to be complete. Be aware that we will have Haskell 98 and GNU Prolog installed on our machines and these are also the language versions in which we expect the assignments to be performed.

Files to the course

The slides containing the general information on a particular topic that I use in the lectures will be available before the respective lectures here as Acrobat pdf-files (in two formats: one slide per page and the 6 slides per page handout). It is recommended that students take a look at the slides before I go over them in lecture so that they can ask questions.

Date handout format one slide per page
Oct. 22, 2018 Organization Organization
Jan. 14, 2019 Introduction Introduction
Jan. 14, 2019 Java, part 1 Java, part 1
Jan. 24, 2019 Java, part 2 Java, part 2
Feb. 1, 2019 Java, part 3 Java, part 3
Feb. 4, 2019 Lambda calculus Lambda calculus
Feb. 12, 2019 Haskell, part I Haskell, part I
Feb. 24, 2019 Haskell, part II Haskell, part II
Mar. 3, 2019 Haskell, part III Haskell, part III
Mar. 7, 2019 Resolution Resolution
Mar. 10, 2019 PROLOG, part I PROLOG, part I
Mar. 18, 2019 PROLOG, part II PROLOG, part II
Mar. 18, 2019 PROLOG, part III PROLOG, part III
Mar. 22, 2019 PROLOG, part IV PROLOG, part IV
Mar. 25, 2019 Special purpose languages and user programming Special purpose languages and user programming
Apr. 7, 2019 Special purpose languages and conclusions Special purpose languages and conclusions

to the assignments of the course.

Last Change: 7/4/2019