Re: Bootstrapping investigation (looking for discussion and/or references..)

pardo@cs.washington.edu (David Keppel)
Mon, 23 Oct 1995 21:42:54 GMT

          From comp.compilers

Related articles
Bootstrapping investigation (looking for discussion and/or references. WStreett@shell.monmouth.com (1995-10-21)
Re: Bootstrapping investigation (looking for discussion and/or referen pardo@cs.washington.edu (1995-10-23)
| List of all articles for this month |
Newsgroups: comp.compilers
From: pardo@cs.washington.edu (David Keppel)
Keywords: report
Organization: Computer Science & Engineering, U. of Washington, Seattle
References: 95-10-100
Date: Mon, 23 Oct 1995 21:42:54 GMT

WStreett@shell.monmouth.com (Wilbur Streett) writes:
>[I'd like to know more about bootstrapping compilers and languages.]


Every once in a while you stumble across a gem. This is one I found
while I was looking for something else:


%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


The basic idea is this: if you have a system that operates by
compiling code and then executing -- all in a single environment --
then usual retargeting tricks won't work. Consider, for example, a
compiler that constant folds `3 + 4' by generating, compiling and
executing a routine


int lambda() { return (3 + 4); }


If you change the procedure calling convention, then the compiler
runs with the old convention and so it can't call the code that it
generates. Boom. Appel identifies several such dimensions and shows
how retarget in such an environment. I must admit there's a lot I
didn't understand, but I still learned a lot.


This is a little different than what people usually think of as
``bootstrapping'' but remember that you can also retarget the input
language for a compiler and then you've suddenly crossed the threshold
into conventional bootstrapping.


;-D on ( YAAAP -- Yet Another Amazing Appel Paper ) Pardo
--


Post a followup to this message

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