Talks and Papers
The C-- papers reflect the evolution of our thoughts about the
language and its run-time system. No single paper gives an
accurate and comprehensive view, but if you want to
read just one paper, the GC paper is your best bet. You
can get a full picture of the system from a combination of
three papers: the
IFL overview, the
GC paper, and the
All links are to abstracts, so you can see if you really
want a paper before downloading it.
Papers on the original language alone
Papers involving the language and its run-time system
- Simon Peyton Jones and Norman Ramsey, Machine-Independent Support for
Garbage Collection, Debugging, Exception Handling, and
Concurrency, University of Virginia technical
report, September 1998.
Many if not most of the details in this paper have been
made obsolete by the papers below, but this paper is still
the most comprehensive view of what we hope
C-- will become. Much of the best material appears in the
next paper in more readable form. Still, this paper has a few
important ideas that don't appear anywhere else.
- Simon Peyton Jones, Norman Ramsey, and Fermin Reig, C--: a portable assembly
language that supports garbage collection. Invited
talk at PPDP, October 1999.
The paper to read if you're going to read only
one. Reasonably thorough overview of the language
and its run-time system, emphasizing garbage collection.
Still, we have already changed a handful of
- Norman Ramsey and Simon Peyton Jones, A Single Intermediate
Language That Supports Multiple Implementations of
Exceptions, ACM SIGPLAN 2000 Conference on
Programming Language Design and Implementation (PLDI'00),
Discusses current techniques used to implement
exceptions and the mechanisms used to support them in C--.
Also presents Abstract C--, the essence of C--, including a
formal operational semantics.
The talk is also online.
- Norman Ramsey and Simon Peyton Jones, Featherweight concurrency in a
portable assembly language, unpublished.
A proposal for supporting both single-threaded and
multi-threaded languages within the C-- framework.
Focuses on three techniques: using weak continuations for
context switching, managing shared state in registers,
and coping with stack overflow.
The C-- Specification
The specification is available as DVI,
PostScript, or PDF.
The old specification from May, 1999
is obsolete and deprecated.
Contact: C-- Webmaster.
Last edited: Mon 05 Feb 2007 14:02 EST.