CSE 505 - Project
One of the course requirements is a project on a programming language issue
of student's choosing. The project can either just involve reading and
discussing papers, or can also have an implementation component. You
choose the topic - we'll give some feedback on your initial proposal.
Students may work individually or in pairs (somewhat more work will be
expected from a pair). Please feel free to use the cse505 mailing list to
look for project partners.
Deliverable: 10-15 page paper, and optionally a short
presentation in class. Think of the expected work as about 4-5 homeworks
worth.
Short project proposal due Nov 19. This should be
a short e-mail message to Alan, Vass, and Todd describing the topic, the
sources you plan to use, and the format (for example, a paper discussing
one language, a comparative languages paper, or an implementation project
and accompanying paper). We'll send feedback on this proposal. If you
send the proposal sooner we'll send feedback sooner; preliminary inquiries
are also welcome.
Paper due Dec 12.
Suggestions
There is great flexibility in choice of topic - pick something that
interests you, or that will potentially feed into your graduate research.
Below are a few suggestions; I'll add to this list if appropriate.
Literature sources: relevant journals include ACM Transactions on
Programming Languages and Systems, Constraints, Theory
and Practice of Logic Programming (and formerly Journal of Logic
Programming), and others. Relevant conference proceedings include
various ACM SIGPLAN
conferences, IEEE-sponsored conferences, and standalone conferences
such as the International Conference on Logic Programming, and Principles
and Practice of Constraint Programming. Also see the
505 Useful Links page.
- If you are interested in constraint languages, one topic would be
Constraint Handling Rules. (This would be suitable either for a paper
alone, or an implementation-based project.) See
Thom
Fruwirth's CHR page
- Another constraint topic, which also includes object-oriented languages
and other concepts, is Oz.
- Further explore some aspect of functional languages, such as
applications of monads, or small domain-specific languages in Haskell, or
implementation techniques for pure functional languages such as
combinators.
- In object-oriented languages, you could investigate a pure OO language,
such as Cecil or Squeak; or Java extensions such as Pizza, GJ, and NextGen
(we'll talk about Pizza and GJ in class, but there is more that could be
done). Or you could investigate other OO languages, such as BETA or
Squeak. (See the links on the
Other programming language resources page.)
Or investigate Python or other clean object-oriented scripting
languages.
- A local UW CSE language is
ZPL, a parallel
array-oriented language for scientific computation. (By the way, for years
I've been looking for someone to do a project investigating the
relationship between constraint languages and ZPL. If you look at the
heated metal plate example in the Marriott & Stuckey text (also in
~borning/clpr/progs/laplace on ceylon), and the Jacobi program on the ZPL
walk-through page, they are strikingly similar. What I'd like to have
someone try is defining a CLP(Array) language, with operators modelled on
those in ZPL. There could be a very inefficient but clean prototype
implementation in CLP(R).)
Last updated: October 20, 2001.