Re: Bootstrapping theory? (David Keppel)
29 Sep 1996 23:41:21 -0400

          From comp.compilers

Related articles
Bootstrapping theory? (Kjetil Valstadsve) (1996-09-03)
Re: Bootstrapping theory? jgm@CS.Cornell.EDU (Greg Morrisett) (1996-09-05)
Re: Bootstrapping theory? (1996-09-05)
Re: Bootstrapping theory? (1996-09-05)
Re: Bootstrapping theory? (1996-09-05)
Re: Bootstrapping theory? (Jens Vaasjo) (1996-09-25)
Re: Bootstrapping theory? (1996-09-29)
Re: Bootstrapping theory? jbuck@Synopsys.COM (1996-09-29)
| List of all articles for this month |

From: (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.


Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.