CS655: Programming Languages, Spring 2001
Manifest: Tuesday 27 February 2001
Assignments Now Midterm Quiz (please start filling out) 6 March 2001 Problem Set 3
Schedule until Spring Break Thursday, 1 March Operational Semantics Tuesday, 6 March Projects Kick-Off, Types Thursday, 8 March Class is Cancelled - start your break early, and think about project ideas
ReadingsTopic for Thursday's class:
Recommended (but probably won't be discussed further in class):
- (Required, preferably before Thursday's class) Franklyn Turbak and David Gifford with Brian Reistad, Applied Semantics of Programming Languages, Nov 1999, Chapter 1: Introduction. (This was handed out on February 15.)
- (Required, preferably before Thursday's class) Franklyn Turbak and David Gifford with Brian Reistad, Applied Semantics of Programming Languages, Nov 1999, Chapter 3: Operational Semantics. (You probably do not need to read Chapter 2 to understand it.)
- A. S. Tanenbaum, A Tutorial on Algol 68, Computing Surveys, 1976.This paper, published in 1976, was probably the first easily comprehensible introduction to Algol 68 (it followed an earlier attempt, Algol 68 With Fewer Tears, and may enable one to learn Algol 68 with no tears at all, except perhaps the occasional tear of joy!) Algol 68 is a very interesting and influential language, but was never widely used. It illustrates where a design principle (in this case orthogonality) is followed to such an extent that practical considerations are ignored.
Algol 68 Minority Report
We regard the current Report on Algorithmic Language ALGOL 68 as the fruit of an effort to apply a methodology for language definition to a newly designed programming language. We regard the effort as an experiment and professional honesty compels us to state that in our considered opinion we judge the experiment to be a failure in both respects.
The failure of the description methodology is most readily demonstrated by the sheer size of the Report in which, as stated on many occasions by the authors, "every word and every symbol matters" and by the extreme difficulty of achieving correctness. The extensive new terminology and the typographical mannerisms are equally unmistakable symptoms of failure. We are aware of the tremendous amount of work that has gone into the production of the Report, but this confirms us in our opinion that adequacy is not the term that we should employ of its approach. We regard the high degree of inaccessibility of its contents as a warning that should not be ignored by dismissing the problems of "the uninitiated reader." That closer scrutiny has revealed grave deficiencies was only to be expected.
Now the language itself, which should be judges, among other things, as a language, in which to compose programs. Considered as such, a programming language implies a conception of the programmer's task. We recognize that over the last decade the processing poawer of commonly available machines has grown tremendously and that society has increased its ambition in their application in proportion to this growth. As a result the programmer of today and tomorrow, finding his task in the field of tension between available equipment and desired applications, finds himself faced with tasks of completely different and still growing scope and scale. More than ever it will be required from an adequate programming tool that it assists, by structure, the programmer in the most difficult aspects of his job, that is, in the reliable creation of sophisticated programs. In this respect we fail to see how the language proposed here is a significant step forward: on the contrary, we feel that its implicit view of the programmer's task is very much the same as, say, ten years ago. This forces upon us the conclusion that, regarded as a programming tool, the language must be regarded as obsolete.
The present minority report has been written by us because if we had not done so, we would have forsaken our professional responsibility towards the computing community. We therefore propose that this Report on the Algorithmic Language ALGOL 68 should not be published under IFIP sponsorship. If it is so published, we recommend that this "minority report" be included in the publication.
Signed by: Dijkstra, Duncan, Garwick, Hoare, Fandell, Seegmuller, Turski, Woodger.
The most important thing in the programming language is the name. A language will not succeed without a good name. I have recently invented a very good name and now I am looking for a suitable language.
Donald E. Knuth, 1967 (explaining the real reason Algol 68 was doomed to failure one year early, although TeX seems to have done okay with a horrible name!)
University of Virginia
Department of Computer Science
CS 655: Programming Languages