§ Partial Evaluation, Chapter 3
§ Bootstrapping and self-application
- Suppose we have a high-level compiler in the language
T. I will denote that as
h : S(S → T). where the compiler is
h (for high), written in language
- We also have a low-level compiler written in
T, denoted by
l : T(S → T), where the compiler is
l for low.
- Suppose the two versions agree, so
[h]_S = [l]_T.
- Suppose we extend
h', to compile the language
h' is also written in
S, so we have
h': S(S'→ T).
- Now we can use
h' to recieve an
l' : T(S' → T).