§ Partial Evaluation, Chapter 3
§ Bootstrapping and self-application
- Suppose we have a high-level compiler in the language
S, from S to T. I will denote that as h : S(S → T). where the compiler is h (for high), written in language S, from S to T. - We also have a low-level compiler written in
T from S to 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 h', to compile the language S' to T. h' is also written in S, so we have h': S(S'→ T). - Now we can use
t on h' to recieve an S' compiler l' : T(S' → T).