|Bootstrapping theory? email@example.com (Kjetil Valstadsve) (1996-09-03)|
|Re: Bootstrapping theory? jgm@CS.Cornell.EDU (Greg Morrisett) (1996-09-05)|
|Re: Bootstrapping theory? firstname.lastname@example.org (1996-09-05)|
|Re: Bootstrapping theory? email@example.com (1996-09-05)|
|Re: Bootstrapping theory? firstname.lastname@example.org (1996-09-05)|
|Re: Bootstrapping theory? email@example.com (Jens Vaasjo) (1996-09-25)|
|Re: Bootstrapping theory? firstname.lastname@example.org (1996-09-29)|
|Re: Bootstrapping theory? jbuck@Synopsys.COM (1996-09-29)|
|From:||email@example.com (David Keppel)|
|Date:||29 Sep 1996 23:41:21 -0400|
|Organization:||Computer Science & Engineering, U of Washington, Seattle|
|References:||96-09-014 96-09-026 96-09-112|
I didn't see the original request, so I don't know if this is along
the right lines. However, bootstrapping is more complex than I had
thought. I found the following paper to be very enlightening, even
though there was lots in it that I didn't understand. I'd rank the
paper with Peter Deutsch's IFIP '71 paper -- truly great.
;-D on ( Lifting myself by my own inertia ) Pardo
%A Andrew W. Appel
%T Axiomatic Bootstrapping: A Guide for Compiler Hackers
%J ACM Transactions on Programming Languages and Systems (TOPLAS)
%D November 1994
%X An interactive compiler is updated to generate code using some new
calling convention; old code and new code cannot be intermixed because
the calling conventions disagree. If a compiler is used to recompile
itself, then the new compiler cannot run until the libraries that it
depends upon (e.g., strcpy) have been recompiled.
RTCG interest: some uses of dynamic compilation make some
retargeting problems harder than if only static compilation is used.
This paper identifies a variety of such dependencies, such as
architecture, calling conventions, data type layouts, and so on. Some
of the dependencies are applicable to general retargeting; some of
them are particular to dynamic compilers.
The paper develops several retarageting axioms and shows how they
are applied to guide construction of a new system from the old. For
example, a conventional static compiler retarget takes two build
cycles: one to build compiler C', which runs on architecture A and
emits code for A', and a second cycle to build C'' which runs on A'
and generates code for A'. (pg 1711-12) In the worst case (all
dependencies have changed), the axioms show that building
(bootstrapping) the new system takes five recompilation cycles.
Return to the
Search the comp.compilers archives again.