skip to main content
article
Open Access

Axiomatic bootstrapping: a guide for compiler hackers

Published:01 November 1994Publication History
Skip Abstract Section

Abstract

If a compiler for language L is implemented in L, then it should be able to compile itself. But for systems used interactively commands are compiled and immediately executed, and these commands may invoke the compiler; so there is the question of how ever to cross-compile for another architecture. Also, where the compiler writes binary files of static type information that must then be read in by the bootstrapped interactive compiler, how can one ever change the format of digested type information in binary files?

Here I attempt an axiomatic clarification of the bootstrapping technique, using Standard ML of New Jersey as a case study. This should be useful to implementors of any self-applicable interactive compiler with nontrivial object-file and runtime-system compatibility problems.

References

  1. APPEL, A. W. AND MACQUEEN, D. B. 1994. Separate compilation for Standard ML. In Proceedings of SIGPLAN '94 Symposium on Programming Language Design and Implementation. ACM Press, New York, 13-23. Google ScholarGoogle Scholar
  2. BRATMAN, H. 1961. An alternate form of the UNCOL diagram. Commun. ACM 4, 3 (Mar.), 142. Google ScholarGoogle Scholar
  3. EARLEY, 3. AND STURGIS, H. 1970. A formalism for translator interactions. Commun. ACM 13, 10 (Oct.), 607-617. Google ScholarGoogle Scholar
  4. LECARME, O., PELLISSIER, M., AND THOMAS, M.-C. 1982. Computer-aided production of language implementation systems: A review and classification. Softw. Pract. Exp. 12, 9, 785-824.Google ScholarGoogle Scholar
  5. MILNER, R., TOFTE, M., AND HARPER, R. 1990. The Definition of Standard ML. MIT Press, Cambridge, Mass. Google ScholarGoogle Scholar
  6. THOMPSON, K. 1984. Reflections on trusting trust. Commun. ACM 27, 8 (Aug.), 761-763. Google ScholarGoogle Scholar

Index Terms

  1. Axiomatic bootstrapping: a guide for compiler hackers

                  Recommendations

                  Comments

                  Login options

                  Check if you have access through your login credentials or your institution to get full access on this article.

                  Sign in

                  Full Access

                  • Published in

                    cover image ACM Transactions on Programming Languages and Systems
                    ACM Transactions on Programming Languages and Systems  Volume 16, Issue 6
                    Nov. 1994
                    243 pages
                    ISSN:0164-0925
                    EISSN:1558-4593
                    DOI:10.1145/197320
                    Issue’s Table of Contents

                    Copyright © 1994 ACM

                    Publisher

                    Association for Computing Machinery

                    New York, NY, United States

                    Publication History

                    • Published: 1 November 1994
                    Published in toplas Volume 16, Issue 6

                    Permissions

                    Request permissions about this article.

                    Request Permissions

                    Check for updates

                    Author Tags

                    Qualifiers

                    • article

                  PDF Format

                  View or Download as a PDF file.

                  PDF

                  eReader

                  View online with eReader.

                  eReader