General Info
Assessment
Materials
  Textbooks
  Files
Assignments
Timetable
      

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 Pascal and Java and have found your prefered book describing the syntax and semantics of these languages. A TA of Katrin Becker has put together some information about Pascal that might be useful for those that are not very familiar with the language.

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

  • Haskell
  • PROLOG (this link will only function on the Sun machines in the lab!)

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. Note that the pdf-files have been produced using Acrobat 5.0!

Date handout format one slide per page
Jan. 13 Organization Organization
Jan. 13 Introduction Introduction
Jan. 15 Pascal/Java: representing data Pascal/Java: representing data
Jan. 22 Pascal/Java: control structures Pascal/Java: control structures
Jan. 28 Pascal/Java: manipulating data Pascal/Java: manipulating data
Feb. 3 Pascal/Java: program structure Pascal/Java: program structure
Feb. 10 Pascal/Java: program execution Pascal/Java: program execution
Feb. 10 Pascal/Java: error handling Pascal/Java: error handling
Feb. 12 Pascal/Java: input/output Pascal/Java: input/output
Feb. 24 Pascal/Java: language-specific constructs Pascal/Java: language-specific constructs
Feb. 24 The Lambda-calculus The Lambda-calculus
Mar. 2 Haskell: data types and control constructs Haskell: data types and control constructs
Mar. 9 Haskell: manipulating data and program structure Haskell: manipulating data and program structure
Mar. 11 Haskell: executing programs and error handling Haskell: executing programs and error handling
Mar. 18 Haskell: I/O and comparison Haskell: I/O and comparison
Mar. 23 Resolution Resolution
Mar. 30 PROLOG: data types and control constructs PROLOG: data types and control constructs
Apr. 1 PROLOG: manipulating data and program structure PROLOG: manipulating data and program structure
Apr. 6 PROLOG: executing programs and error handling PROLOG: executing programs and error handling
Apr. 8 PROLOG: in- and output PROLOG: in- and output
Apr. 13 Special purpose languages Special purpose languages
Apr. 15 Conclusion Conclusion

to the assignments of the course.

Last Change: 14/4/2004