Date | Topic (see list below) | Presenter |
---|---|---|
2 April | (organizational meeting) | |
9 April | Polyphonic C# | Andrei |
16 April | Polyphonic C# ct'd. | Keunwoo |
23 April | TupleSpaces & Linda | Sorin |
30 April | InfoPipes & streaming | Michael |
7 May | StagedServer | Jed & Eric |
14 May | Occam | Andrew |
21 May | Concurrent Logic Programming | Tao & Miryung |
28 May | TinyOS & nesC | Jonathan |
4 June | Events vs. threads | Todd |
As usual, we'd like to use the papers as an avenue for discussing some interesting research-level questions, rather than simply presenting a book report. What's perhaps unusual this quarter is that we're discussing some dusty old historical languages, as well as some papers that aren't directly language designs at all. So, it may take extra effort on your part to think about issues that might be interesting for current languages research, or at least that will spark some interesting discussion about novel ways to think about programming.
To help get you started on your presentation, here are some questions (feel free to ignore these if you have others you like better):
The papers linked below are preliminary choices, intended to represent entire lines of work rather than specific points. You can choose some other paper in that line of work for your talk. In some cases, individual papers may not give you enough material to make an interesting presentation; you should perhaps present a synthesis of multiple papers in that line of research.
Polyphonic C# augments C# with synchronization constructs based on join patterns, from the Join Calculus.
Modern Concurrency Abstractions for C#. N. Benton, L. Cardelli, C. Fournet. ECOOP'02, April 2002. project web page, Acrobat (.pdf).
A more comprehensive version of this paper is currently
under submission to TOPLAS. Look in NFS at
~klee/public/polyphony-toplas.pdf
for this
version.
Cooperative Task Management without Manual Stack Management. A. Adya, J. Howell, M. Theimer, W. J. Bolosky, J. R. Douceur. USENIX June 2002. project web page, Acrobat (.pdf)
Why Threads are a Bad Idea (For Most Purposes) T. Ousterhout. Invited talk slides, USENIX 1996. web slides (.html), PowerPoint (.ppt), Acrobat (.pdf).
Kurt has been programming in TinyOS, an operating system for embedded systems with an event-driven execution model. Programming TinyOS in raw C is quite cumbersome, because the user must do manual task management. It might be interesting to examine language designs or program analysis techniques to enable a better programming model in extremely resource-constrained environments.
The nesC Language: A Holistic Approach to Networked
Embedded Systems.
D. Gay, P. Levis, R. von Behren, M. Welsh, E. Brewer, D. Culler.
To appear in PLDI'03.
This is in NFS at ~klee/public/p072-gay.pdf
.
A Network-Centric Approach to Embedded Software for Tiny Devices. D. E. Culler, J. Hill, P. Buonadonna, R. Szewczyk, A. Woo. EMSOFT 2001, Oct. 2001. Acrobat (.pdf)
nesC Language Reference Manual. D. Gay, D. Culler, P. Lewis. nesC Language Reference Manual
OCCAM was the system programming language for the INMOS transputer. Its semantic foundation was Hoare's CSP.
An OCCAM approach to transputer engineering. P. H. Welch. Third Conference on Hypercube Concurrent Computers and Applications. ACM link.
Type Checking Concurrent I/O. W. H. Carlisle. TOPLAS 17(3):448-460. ACM link.
Linda in Context. N. Carreiro, D. Gelernter. Communications of the ACM, 32(4):444-458, Apr. 1989. project web page, ACM paper link.
ActorSpaces: An Open Distributed Computing Paradigm. G. Agha, C. J. Callsen. PPOPP 4, 1993. ACM paper link.
XML Dataspaces for Mobile Agent Coordination G. Cabri, L. Leonardi, F. Zambonelli. ACM paper link
JavaSpaces: Innovative Java Technology that Simplifies Distributed Application Development. Sun Microsystems. White paper. project web page, Acrobat (.pdf),
Distributed Computation with JavaSpaces Technology. M. S. Noble. Talk slides, JavaOne 2001. Acrobat (.pdf)
Programming in concurrent logic languages. (Survey paper) M. M. Huntbach, G. A. Ringwood. IEEE Software 12(6), Nov. 1995. abstract, Acrobat (.pdf) (IEEE access required)
The Concurrent Language, Shared Prolog. A. Brogi, P. Ciancarini. TOPLAS 13(1):99-123, Jan. 1991. ACM link.
Distributed Programming with a Logic Channel Based Coordination Model. M Diaz, B. Rubio and J. M. Troya. Computer Journal 39(10), May 1997. gzip'd PostScript (.ps.gz), Acrobat (.pdf)
The Concurrent Object-Oriented Language Braid. M. Huntbach. Proc. 1995 Symposium on Applied Computing. ACM link
Infopipes: an Abstraction for Multimedia Streaming. A. P. Black, J. Huang, R. Koster, J. Walpole, and C. Pu. Multimedia Systems (special issue on Multimedia Middleware), 8(5):406-419, 2002. Acrobat (.pdf)
The Click Modular Router. E. Kohler, R. Morris, B. Chen, J. Jannotti, M. F. Kaashoek. ACM TOCS 18(3):263-297, Aug. 2000. web page, gzip'd PostScript (.ps.gz), Acrobat (.pdf)
SEDA: An Architecture for Well-Conditioned, Scalable Internet Services. M. Welsh, D. Culler, E. Brewer. SOSP 18, Oct. 2001. project web page, Acrobat (.pdf)
Using Cohort Scheduling to Enhance Server Performance. J. Larus, M. Parkes USENIX June 2002. Acrobat (.pdf)