Computer Science 311 Principles of Programming Languages

Fundamental concepts and general principles underlying programming languages and their use as illustrated by Prolog and SCHEME. Syntax: context free and attribute grammers, parse trees. Semantics: parameter passing, variable binding, assertions, verification.

Textbook: The SCHEME Programming Language
R. Kent Dyvbig          The MIT Press
(on-line at

Computer Science Department
University At Albany, State University of New York.

Class Syllabus
Grading Criteria & Exam Schedule
Professor and TA office Hours
The CSI 311 Class Announcements Posting
The Generic Announcements Posting
Online resources on Logic Programming
In particular, we will use SWI Prolog for our logic programming language.
    To invoke the interpreter, use the command "pl".
Sample Questions I (Language/Verification Theory)
Sample Questions II (Functional Programming)
Sample Questions III (Logic Programming)

Some notes and sample SCHEME questions also located in ~csi311/SCHEMEnotes/.

Slides on syntax/semantics topics can be found here.

Slides on SCHEME topics/examples can be found here.

Slides on Prolog topics/examples can be found here.

Useful Utilities

The Pine Users Guide
GSview Postscript Viewer for linux, OS/2 and Windows.
PageDraw for Windows PageDraw for Windows

Dr. Murray
The CSI 311 Home Page has been accessed many times.

Last revised 1/10/2009
An earlier version of this Page was developed by Mark C Shay