The purpose of the project is summarized on the
general syllabus page.
Stage 1 Pick a paper that you want to
understand via a Redex model. A list of papers will appear on this web
page by the fourth week and you are welcome to choose one of them.
If you would like to be more ambitious, look at the conferences or
journals discussed in class. Read the abstracts and motivational
sections. If it interests you, figure out what part of the paper you want
to elaborate (semantics, types, implementation, etc). Students in PL/SE
should probably focus on recent results; others may wish to look at old
results.
Get approval by 8 October 2010 for your chosen
paper. We will ensure that you have mutually disjoint topics.
Stage 2 Formulate a problem statement as a
one-page tex'ed or word'ed memo. This is the very first step a researcher
must take, and a good amount of time is often spent on working out what
the problem is. Here you should think of the problem statement as a goal
statement, namely, which part of the chosen paper you wish to turn into a
Redex model and what you hope to learn. The problem
statement is due 2 November 2010.
Stage 3 Just do it! There is nothing like
working on your chosen topic. Experience the feeling of understanding
what the author really meant; what the author could have done. --
Do not hesitate to consult with the instructor if you're stuck!
Stage 4 Report on your experience in a revised
version of the memo; don't use more than two pages. That is, elaborate
your problem statement because you will have insights that improve
it. Then add a couple of paragraphs on what you learned. The revised memo
is due on 19 November 2010. A print out of the
Redex model should be an appendix to the model memo.
Stage 5 Prepare a joint 30 minute presentation
that describes the problem, its motivation, its background, the Redex
model, and your insight. Divide the talk between the two partners but
each partner should be prepared to answer questions about the entire
talk.
Deliverables Your final deliverables are: (1) the
presentation; (2) two-page memo; and (3) an appendix that documents your project
work.
Grading
Your project grade consists of four different pieces:
- the initial formulation of a question concerning the paper;
- the description of your answer or attempts, i.e., the 'revised memo';
- the in-class presentation; and
- the Redex model in support of your answer.
Both memos are judged at two levels: the content and its English
presentation (typos, grammar, unit-level organization). Similarly, the
presentation is about both content and oral communication skills of
technical matters. Finally, the Redex model must support the conclusion
and must show that you have understood the basic modeling techniques.
A note on writing: "less is more". Or, concise language is superior to a
lot of weasel words and paragraphs. The two limits (one and two pages,
respectively) are upper limits not lower limits and not
required writing. -- Good technical writing focuses on the essence of a
topic and avoids emotional words (e.g., "believe") or judgmental adjectives
(e.g., "wonderful"). Also, use the active voice over passive voice, and
connect sentences. Start a unit of writing with a 'thesis' and use the
rest of the unit with support of the thesis. This is both accepted
American style of writing and technical writing. For a short elegant book
on writing, see Strunk and White's "Elements of Style" (3rd edition).
The Paper Pool
-
Crank, Felleisen. Parameter-Passing and the Lambda
Calculus. POPL 1991
-
Flanagan, Sabry, Duba, Felleisen. The Essence of Compiling with
Continuations. PLDI 1993
-
Flanagan, Felleisen. The Semantics of Future and Its Use in
Program Optimizations. POPL 1995
-
Ariola, Felleisen. The Call-by-Need Lambda-Calculus. JFP 1996
assigned to: Hari Prashanth and Jose Falcon
-
Flatt, Felleisen. Units: Cool Modules for HOT Languages. PLDI
1998
-
Clements, Flatt, Felleisen. Modeling an Algebraic Stepper.
ESOP 2001
-
Findler, Felleisen. Contracts for Higher-order
Functions. ICFP 2002
-
Clements, Felleisen. A Tail-Recursive Semantics for Stack
Inspections. ESOP 2003
-
Flatt, Findler, Felleisen. Scheme with Classes, Mixins, and
Traits. ASPLAS 2006
assigned to: Xiaohai Yu and Abhishek Samanta
-
Krishnamurthi, Findler, Graunke, Felleisen. Modeling Web
Interactions and Errors. In: Goldin, Smolka, Wegner (editors).
Interactive Computations. 2006
assigned to: Bahar Qarabaqi and Yue Huang
-
Felleisen, Findler, Flatt, Krishnamurthi. A Functional I/O System
(or Fun for Freshman Kids). ICFP 2009
assigned to: Peter Golbus and Lazlo Ring
-
Eastlund, Felleisen. Making Induction Manifest in Modular
ACL2. PPDP 2009
-
Guha, Saftoiu, Krishnamurthi. The Essence of JavaScript.
ECOOP 2010
assigned to: Zach Donovan and Patrick Redmond