CS655: Programming Languages, Spring 2001
Manifest: Thursday 22 March 2001
If you have settled on a project idea, you should turn in Project Proposal on Tuesday containing:
Assignments Tuesday, 26 March Project Proposal
If you have not yet found a idea for a project, send me an email before midnight Monday explaining the directions you are thinking about, and what you are doing to try and find a good project idea. You will not need to turn in a proposal on Tuesday, but will negotiate with me to turn in a proposal at some later date.
- Description of the problem - what will we (meaning the programming languages community) know after you have finished the project that we don't know now? Motivate your project and explain why it is interesting.
- Related Work - this doesn't need to be complete yet, but enough to show the problem is relevant and interesting. You should make sure to relate the related work to your project - why is it relevant to what you want to do?
- Research Plan - concrete description of what you plan to do including a schedule with concrete milestones.
- Evaluation - description of how will you decide if the project is successful.
If you have an idea, and its not a good idea, take a nap instead of implementing it.
Alan Kay's Third Law
Read before Tuesday (handed out last time):
Read before Thursday 29 March:
- Barbara Liskov and Jeannette Wing. Behavioral Subtyping Using Invariants and Constraints. CMU-CS-99-156 (based on November 1994 ACM TOPLAS paper.)A challenging, but worthwhile paper. As you read it, attempt to relate their rules for subtyping to the programming problem they are trying to solve: making programs written without knowledge of all possible subtypes work as expected with new subtypes.
- 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.
- [Recommended, but won't be discussed in class.] Stephan Murer, Stephen Omohundro, David Stoutamire and Clemens Szyperski. Iteration Abstraction in Sather. Transactions on Programming Languages and Systems, Jan 1996.Are Sather's iterators more like Algol's call-by-name or CLU's iterators?
Think Java. Write new applications in Java. Rewrite legacy apps with Java.
- What is object-oriented programming?
- What are features of object-oriented programming languages?
- What is subtype polymorphism?
- What typing judgments belong in object-oriented languages?
- What is inheritance?
Don't upgrade or downgrade. Sidegrade instead to a Java desktop device. Don't get hit with the PC's massively negative ROI.
I don't understand why anybody would be programming in anything other than Java.
Scott McNealy, Open Finance (a Sun publication), Spring 1997.
University of Virginia
Department of Computer Science
CS 655: Programming Languages