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

Manifest: Thursday 9 March 2000
Assignments Due
NowPlease fill out mid-term survey (both sides)
Today, 3:30Go to Ion Stoica's seminar
Tuesday, 21 March (11am)Send mail about functional languages (see below)
Tuesday, 21 Mar (5pm) Trial Depositions (attorneys and witnesses only)
Thursday, 23 Mar (11:59pm)Project Prelminary Report
Monday, 3 April (11:59pm)Position Paper 4 (Trial Verdicts) - Jurors Only

Problem Set 3 will be handed out after Spring Break and due April 11.


Read before Tuesday 21 March:
· David C. Keenan. To Dissect a Mockingbird: A Graphical Notation for the Lambda Calculus with Animated Reduction. 1996.

A clever and intuitive way of understanding Lambda Calculus. Try to translate his examples into traditional textual notation.

· John Backus. Can Programming Be Liberated from the von Neumann Style?. Turing Award Lecture, 1977.

John Backus (developer of FORTRAN) makes the case for functional programming in his Turing Award Lecture.

· Alex Aiken, John Williams and Ed Wimmers. The FL Project: The Design of a Functional Language.

Provides an overview of FL, the language derived from the FP language introduced in Backus' Turing Lecture.

Readings Email

After reading these papers (and before 11am on Tuesday 21 March), send a short email to cs655-staff speculating on why functional languages have not been successful outside academia.

Read before Thursday 23 March:
· Alex Aiken and Brian Murphy. Static Type Inference in a Dynamically Typed Language.

The authors present a system for type inference for FL using an operational semantics. Try to see through the complex notation and understand what is really going on.


From what I've read, I get the impression this book was written in a rush, and with the purpose of cramming tons of nonsense and filler in just to have an excuse to present Scheme (a pathetic language). The authors claim to present a view of programming that's widely applicable, and state that top-down (i.e. procedural) programming is by far not the best way to think about programs abstractly. Well, they don't stick to their promise. They present a biased, one sided promotion of scheme as the best language out there. No attempt is made to make comparisons between functional languages like scheme and normal languages like C. The end result, you come out knowing scheme and a few boring applications of it, but can't apply any of it to real programming tasks. This proves this book is just a fancy concotion of some egghead professor who has no idea what happens in the real world. I found many explanations to be incoherent and contradictory. The whole approach is divorced from the computing practice. This is no 21 day book, in fact, you can spend 21 months on it and still not learn a thing, because there's nothing but worthless garbage here.'s lead review of SICP

Don't be mislead by the review --- its the best introductory Computer Science textbook,
possibly the best textbook ever written for any field.

CS 655 University of Virginia
CS 655: Programming Languages
Last modified: Mon Feb 26 12:48:20 2001