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
Readings
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 evans@cs.virginia.edu 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?Questions
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 |
David Evans evans@virginia.edu |