Related articles |
---|
Stackless compilers? Karol.Skocik@gmail.com (neptundancer) (2008-07-01) |
Re: Stackless compilers? dido@imperium.ph (Rafael Sevilla) (2008-07-02) |
Re: Stackless compilers? torbenm@pc-003.diku.dk (2008-07-02) |
Re: Stackless compilers? blume@hana.uchicago.edu (Matthias Blume) (2008-07-03) |
From: | Rafael Sevilla <dido@imperium.ph> |
Newsgroups: | comp.compilers |
Date: | Wed, 2 Jul 2008 12:47:27 +0800 |
Organization: | Imperium Technology |
References: | 08-07-003 |
Keywords: | design, storage |
Posted-Date: | 03 Jul 2008 08:27:37 EDT |
On Tue, 1 Jul 2008 05:13:52 -0700 (PDT)
neptundancer <Karol.Skocik@gmail.com> wrote:
> Could you recommend me some papers on constructing a stackless
> compilers? I can only find lots of links about Stackless Python, but I
> am more interested in combination of PI calculus and lambda calculus.
> I know about CubeVM, but that's just pure PI calculus, and it directly
> evaluates AST. I would like to read something about compiler design
> for stackless language, but could not find anything.
I suppose what you mean by stackless languages are languages that do
not make use of a run-time stack in their execution, such as Stackless
Python or some implementations of Scheme and Lisp. Such languages
invariably make use of transformations to continuation-passing style
and must support tail calls, closures, and automatic garbage collection
to be useful, and as such Scheme is one of the first major languages for
which such an approach was practical. An early example of such a
compiler was Guy Steele's Rabbit compiler for Scheme [1], which used
CPS transformations extensively. Steele also wrote about this method of
designing compilers in the famous paper "Debunking the Expensive
Procedure Call Myth, or, Procedure Call Implementations Considered
Harmful, or Lambda: The Ultimate GOTO" [2]. Other useful resources
describing this approach to building a compiler are a paper by Richard
Kelsey and Phil Hudak: "Realistic Compilation by Program
Transformation" [3], and the ORBIT Scheme compiler by David Kranz [4].
I think looking for resources on continuation-passing style
transformations and their use in compiler design will be more fruitful
than using 'stackless' as your keyword.
[1] http://repository.readscheme.org/ftp/papers/ai-lab-pubs/AITR-474.pdf
[2] http://repository.readscheme.org/ftp/papers/ai-lab-pubs/AIM-443.pdf
[3] http://citeseer.ist.psu.edu/179975.html (link down at the moment)
[4] http://repository.readscheme.org/ftp/papers/orbit-thesis.pdf
--
http://stormwyrm.blogspot.com
Return to the
comp.compilers page.
Search the
comp.compilers archives again.