
This is the home page for the course CS 103: Programming Languages, offered
by the Department of
Computer Science at the University
of Vermont, Spring 1998.
(N.B., the content of this page changes frequently: reload this page.)
General Information:
Textbooks:
- Daniel P. Friedman, Mitchell Wand, and Christopher T. Haynes, Essentials
of Programming Languages, (EOPL) McGraw-Hill, New York,1993
(Required). Revised version of
Chapter 6 is available in pdf and PostScript
formats. (N.B., these revisions appear to
be incorporated in the current edition.)
- R. Kent Dybvig, The Scheme Programming Language, Second Edition, Prentice
Hall, Englewood Cliffs, NJ, 1997, ISBN: 0-13-454646-6, (Recommended).
- The reference list .
Handouts and Slides:
Most handouts are availabe in pdf format, a page description language
supported by Adobe(R) Acrobat(R). If you do not have Acrobat Reader for
your personal computer, you can download it for free from Adobe.
- Syllabus [html | pdf]
1/12/98 (updated 1/24/98), 1 page.
- Elements of Scheme [pdf] 1/16/98, 9 pages.
- More Elements of Scheme [pdf] 1/23/98 (corrected
1/25/98), 9 pages.
- Variable Arity Procedures [pdf] 1/26/98,
4 pages.
- Induction, Inductive Specification, and Context Free Grammars [pdf] 1/28/98, 8 pages.
- Syntactic Derivations using BNF [pdf]
1/30/98, 8 pages.
- Recursive Functions [pdf] 2/2/98 (updated
2/4/98), 10 pages.
- Depth of an S-List, Static Properties of Variables, etc. [pdf] 2/6/98, 11 pages.
- Scope, lexical address, alpha-conversion [pdf]
2/9/98, 15 pages.
- Syntactic Abstraction [pdf] 2/18/98,
10 pages.
- Records, Variant Records, Abstract Syntax [pdf]
2/20/98, 9 pages.
- Abstract Syntax Trees, Parsers, Data Abstraction [pdf]
2/23/98, 8 pages.
- Data Abstraction, and Implementations (Finite Functions) [pdf] 2/25/98, 8 pages.
- Program Transformation Rules, beta & eta conversion [pdf]
3/2/98, 8 pages.
- Reduction Strategies, Church-Rosser Theorem, Applicative Order Reduction
[pdf] 3/4/98, 5 pages.
- More on letrec. Implementing the lambda calculus in Scheme
[pdf] 3/11/98, 12 pages.
- Continuations [pdf] 3/23/98, 3 pages.
- Recursion in the lambda calculus [pdf] 3/27/98,
9 pages.
- Imperative programming in Scheme [pdf]
3/30/98, 12 pages.
- A Simple Interpreter [pdf] 4/1/98 (updated
4/8/98), 19 pages.
- Adding procedures to the interpreter [pdf]
4/8/98, 12 pages.
- Dynamic variable assignment [pdf] 4/13/98,
6 pages.
Homework Assignments:
- Homework 1, due Friday, January 23, 1998.
- Homework 2, due Friday, January 30, 1998.
- Homework 3, due Friday, February 6, 1998.
- Homework 4, due Friday, February 13, 1998.
- Homework 5, due Friday, February 27, 1998.
- Homework 6, due Friday, March 13, 1998.
- Homework 7, due Monday, April 6, 1998.
- Homework 8, due Monday, April 13, 1998.
- Homework 9, due Friday, April 24, 1998.
Exam Information:
Resources:
Robert Snapp's Home
Page
(Last modified on 20 April 1998.)