Related articles |
---|
Bootstrapping theory? eddie@voldsboks.pvv.ntnu.no (Kjetil Valstadsve) (1996-09-03) |
Re: Bootstrapping theory? jgm@CS.Cornell.EDU (Greg Morrisett) (1996-09-05) |
Re: Bootstrapping theory? sc@cs.unc.edu (1996-09-05) |
Re: Bootstrapping theory? cliffc@ami.sps.mot.com (1996-09-05) |
Re: Bootstrapping theory? jonm@saul.cis.upenn.edu (1996-09-05) |
Re: Bootstrapping theory? jvaasjo@gpu.srv.ualberta.ca (Jens Vaasjo) (1996-09-25) |
Re: Bootstrapping theory? pardo@cs.washington.edu (1996-09-29) |
Re: Bootstrapping theory? jbuck@Synopsys.COM (1996-09-29) |
From: | pardo@cs.washington.edu (David Keppel) |
Newsgroups: | comp.compilers |
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 |
Keywords: | tools |
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)
%V 16
%N 6
%D November 1994
%P 1699-1718
%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
comp.compilers page.
Search the
comp.compilers archives again.