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.
- 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 Scholar
- BRATMAN, H. 1961. An alternate form of the UNCOL diagram. Commun. ACM 4, 3 (Mar.), 142. Google Scholar
- EARLEY, 3. AND STURGIS, H. 1970. A formalism for translator interactions. Commun. ACM 13, 10 (Oct.), 607-617. Google Scholar
- 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 Scholar
- MILNER, R., TOFTE, M., AND HARPER, R. 1990. The Definition of Standard ML. MIT Press, Cambridge, Mass. Google Scholar
- THOMPSON, K. 1984. Reflections on trusting trust. Commun. ACM 27, 8 (Aug.), 761-763. Google Scholar
Index Terms
- Axiomatic bootstrapping: a guide for compiler hackers
Recommendations
Bootstrapping domain-specific meta-languages in language workbenches
GPCE '16It is common practice to bootstrap compilers of programming languages. By using the compiled language to implement the compiler, compiler developers can code in their own high-level language and gain a large-scale test case. In this paper, we ...
Bootstrapping domain-specific meta-languages in language workbenches
GPCE 2016: Proceedings of the 2016 ACM SIGPLAN International Conference on Generative Programming: Concepts and ExperiencesIt is common practice to bootstrap compilers of programming languages. By using the compiled language to implement the compiler, compiler developers can code in their own high-level language and gain a large-scale test case. In this paper, we ...
Scalable bootstrapping for python
CIKM '13: Proceedings of the 22nd ACM international conference on Information & Knowledge ManagementHigh-level productivity languages such as Python, Matlab, and R are popular choices for scientists doing data analysis. However, for today's increasingly large datasets, applications written in these languages may run too slowly, if at all. In such ...
Comments