University of Virginia, Department of Computer Science
CS655: Programming Languages, Spring 2000

Manifest: Thursday, 27 January 2000
Assignments Due
Monday, noon Last chance to submit project team requests
Thursday 3 Feb, in class Problem Set 1: Operational Semantics
Note: Problem set says Tuesday 3 Feb, but means Thursday 3 Feb.

Readings
Read before Tuesday's class:
· Wenger, Programming Languages - The First 25 Years. IEEE Trans. on Computers, Dec 1976.
This paper was written in 1976. When you read it, consider how many of the developments the Java marketers have been trumpeting were already known. Come to class prepared to discuss how well Wenger's categories hold today, in terms of the languages you know.

Read before next Thursday's class:
· Bernad A. Galler, The FORTRAN Language; David Gries, Algol 60 Language Summary
One page language summaries from the ACM History of Programming Languages Conference, 1978. The FORTRAN summary should give you some idea of the state-of-the-art before Algol.

· P. Nauer, et. al., Report on the Algorithmic Language Algol 60. Comm. of the ACM, 1963.
This was a landmark in both language design and description. It was the first document to describe a language syntax using a systematic notation (subsequently known as "Backus-Naur Form"). Algol60 had many interesting features, some of which became adopted in nearly all programming languages we use today, and others which disappeared. As you read this paper, think about which features survived and try to understand why others didn't.

· D. E. Knuth, The Remaining Troublespots in Algol 60. Comm. of the ACM, 1967.
Four years after the original report, people are still arguing over ambiguities in the language definition. Was this because of flaws in the design, or flaws in the description?

Questions
  • Why are formal semantics useful?
  • What is operational semantics?
  • What do you need for a structured operational semantics?
  • How to create an operational semantics for a simple language.
  • How to use an operational semantics to prove properties about a language.
The best book on programming for the layman is "Alice in Wonderland"; but that's because it's the best book on anything for the layman.
Alan Perlis

CS 655 University of Virginia
CS 655: Programming Languages
cs655-staff@cs.virginia.edu
Last modified: Fri Mar 2 09:50:02 2001