CS655: Programming Languages, Spring 2001
Manifest: Thursday 29 March 2001
Assignments Before 11am, Tuesday Email me about Sather (see 27 March Manifest) Randomly, anytime after today Elevator Speeches Elevator SpeechesImagine you are in an elevator with a very busy, rich and important person. You have ninety seconds (elevators in buildings with rich and important people in them tend to be faster than the one in our building) to convince her your project is so exciting she should read your proposal and consider funding it generously. In ninety seconds you should be able to explain the problem you hope to solve, why it is interesting (to someone not an expert in your area), and what you are doing to solve it. A successful elevator speech elicits a question from the listener after the elevator doors open; an unsuccessful one drives the listener away as quickly as possible.
Starting next week, I will call randomly on students to give an elevator speech on what you are doing for your course project. Being able to give a good elevator speech is even more important to your future career in research or industry than being able to write well, so it is worth practicing this whenever you get the chance.
ReadingsRead before Tuesday 3 April (handed out last week):
- Clemens Szypersky, Stephen Omohundro, Stephan Murer. Engineering a Programming Language: The Type and Class System of Sather. ICSI Techreport TR-93-064.Sather was designed to fix some of the flaws in Eiffel. Identify at least one substantial improvement in Sather and send mail to firstname.lastname@example.org describing it. If you can't, send mail with three questions relating to the assigned readings. This mail should be received before 11am on Tuesday 3 April.
- How to show if there is a valid subtype relation between two type specifications using Liskov and Wing's definition of the subtype relation.
- What do typing rules matter?
- What are the important differences between the subtyping rules for procedures in Eiffel and other object-oriented languages?
- How (and when) should you email experts?
Must it be assumed that because we are engineers beauty is not our concern, and that while we make our constructions robust and durable we do not also strive to make them elegant? Is it not true that the genuine conditions of strength always comply with the secret conditions of harmony? The first principle of architectural esthetics is that the essential lines of a monument must be determined by a perfect adaptation to its purpose.
Gustave Eiffel, 1887. Response to a petition protesting his project to build a tower of iron in Paris. Quoted in Bertrand Meyer, Eiffel: The Language.
What the language design has sought is the highest possible signal-to-noise ratio, allowing uses of the language to make the most out of their intellectual energy. This means getting rid of the noise (features which make the language bigger without contributing any really new concept): who needs three forms of loop when a general enough one will do, or special syntax for array access when we can simply view arrays as "container" structures described by a library class? But it also means reaching for the highest possible level of signal: including the appropriate constructs to deal with the truly difficult cases of software development, especially those which arise in the construction o large and ambitious systems.
Bertrand Meyer, Eiffel: The Language.
University of Virginia
Department of Computer Science
CS 655: Programming Languages