bootstrapping

Nov 1, 2022

bootstrap

Readers who understand compiler bootstrapping can jump directly below the split line to see it.

There is an interesting concept in the process of building compilers called bootstrapping(Bootstrapping. To wit, suppose I want to create an X language, then I must write a compiler or interpreter for the X language, and if this compiler is written in the X language, then the process of writing the X language compiler in the X language is a bootstrap. Of course, the reality is not so simple, because when the compiler is written, the X language does not exist, so it is not possible to write a compiler in the X language, which is caught in a predicament of the chicken or the egg first. The common practice is:

For uncommon practices see link


Well the science is over, these are actually not what I want to say, what I want to say is that I suddenly realized today that the concept of self-raising is important in life.

For example, the process of learning English should be the process of lifting, but how many people have been learning English for more than ten years and still haven’t started lifting? The bootstrapping process of learning English should be such that at first we use Chinese to learn English, and then when we have learned a core subset of English, we should use English to interpret English, and a simple way to do this is to use an English-English dictionary. Another example is when you go abroad and talk to someone, when the other person says a word you don’t understand, you shouldn’t take out your cell phone and ask them to spell out the word letter by letter and then look up the Chinese meaning of the word on your cell phone, the correct way to do it would be to ask them to explain the word using other words in English.

Thinking about it differently, C represents a comfort zone, while X represents new territory. The process of bootstrapping may be a bit more painful, but it will also allow one to grow faster.

(The End)

[Return to the homepage]