CS655: Programming Languages, Spring 2001
Manifest: Tuesday 27 March 2001
Assignments Today Project Proposal Before 11am, Thursday Email me about Sather (see below) ReadingsRead before Thursday 29 March (handed out last time):
- Bertrand Meyer. Eiffel: An overview of the language and method From ISE Eiffel: The Environment, 1995.
- Bertrand Meyer. Static typing and other mysteries of life. Keynote lecture at OOPSLA '95.Most programming language experts believe Eiffel's type system is seriously flawed. Can you figure out why?
- 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 Thursday 29 March.
LinksType Specifications of bset and uset (PDF)
And so, the best of my advices to the originators and designers of Ada has been ignored. In this last resort, I appeal to you, representatives of the programming profession in the United States, and citizens concerned with the welfare and safety of your own country and of mankind: Do not allow this language in its present state to be used in applications where reliability is critical, i.e., nuclear power stations, etc. The next rocket to go astray as a result of a programming language error may not be an exploratory space rocket on a harmless trip to Venus: It may be a nuclear warhead exploding over one of our own cities. An unreliable programming language generating unreliable programs consitutes a far greater risk to our environment and to our society than unsafe cars, toxic pesticides, or accidents at nuclear power stations. Be vigilant to reduce that risk, not to increase it.
- What is (implementation) inheritance?
- What problems does multiple implementation inheritance cause? What are some alternatives or solutions?
- What does is mean for subtyping to be safe?
- When is subtyping safe?
- How to show if there is a valid subtype relation between two type specifications using Liskov and Wing's definition of the subtype relation.
C. A. R. Hoare, "The Emperor's Old Clothes" (Turing Award Lecture), CACM Feb 1981.
University of Virginia
Department of Computer Science
CS 655: Programming Languages