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

Manifest: Tuesday, 1 February 2000
Assignments Due
Today after class Schedule meeting with your project team
Thursday 3 Feb, in class Problem Set 1: Operational Semantics
Wednesday, 16 Feb Project Proposals
Thursday, 17 Feb, in class Project Elevator Speeches

Readings

Reminder: Read before Thursday's class (see Jan 27's Manifest):

· Bernad A. Galler, The FORTRAN Language; David Gries, Algol 60 Language Summary
· P. Nauer, et. al., Report on the Algorithmic Language Algol 60. Comm. of the ACM, 1963.
· D. E. Knuth, The Remaining Troublespots in Algol 60. Comm. of the ACM, 1967.

Read before next Tuesday's class (handed out today):

Note: You don't need to read all of these papers, but should select either the Algol68 paper and any other paper of your choosing (where the two Pascal papers count as one), or all the other four papers:

       (Algol68 + (Bliss | both Pascal Papers | C)) 
     | (Bliss + both Pascal Papers + C)
These papers describe four languages of the late sixties - early seventies. Most programming language researchers consider C the worst of the four, but it is undeniably the most successful. As you read these papers, try to figure out what it was the other languages did wrong and C did right, to lead to the other languages failure (except arguably Pascal), and C's success.

· A. S. Tanenbaum. A Tutorial on Algol 68, Computing Surveys, 1976.
Algol 68 is a very interesting and influential language, but was never widely used. It illustrates where a deisgn principle (in this case orthogonality) is followed to such an extent that practical considerations are ignored.

· W. A. Wulf, D. B. Russell, and A. N. Habermann. BLISS: A Language for Systems Programming. Communications of the ACM, December 1971.
Pay particular attention to the section on Data Structures.

· N. Wirth. An Assessment of the Programming Language Pascal, IEEE Transactions on Software Engineering, June 1975.
· J. Welsh, W. Sneeringer and C. A. R. Hoare. Ambiguities and Insecurities in Pascal, Software Practice and Experience, 1977.
Two short papers evaluating Pascal. Read these thinking about how well Pascal accomplished its design goals.

· D. M. Ritchie, S. C. Johnson, M. E. Lesk and B. W. Kernighan. The C Programming Language. Bell System Technical Journal, July-August 1978.
They write, Several hundred programmers within Bell Laboratories and many outside use C as their primary programming language. How come C became so succesful?

In class Tuesday, 8 February we will fill in as much of the table (based loosely on Brooks' study matrix) below as possible. Come to class prepared with ideas for some of these squares based on the papers you read and your experience.

FORTRAN Algol60 BLISS Algol68 Pascal   C  
Design Goals       
Guiding Principle       
Types       
Variables (declaration, scoping)       
Control Structures       
Parameter Passing       
Most Novel Aspect       
Biggest Mistake(s)       
Excuse for Mistakes       

Questions
  • What are the most important programming paradigms?
  • What are the advantages and disadvantages of functional languages?
  • What drives the development of new programming languages?
Algol 60 was not only an improvement on its predecessors, but also on nearly all its successors.
C. A. R. Hoare

CS 655 University of Virginia
CS 655: Programming Languages
cs655-staff@cs.virginia.edu
Last modified: Mon Feb 26 12:48:24 2001