自举的启发

Sep 1, 2018

bootstrap

了解编译器自举的读者可以直接跳到分割线以下看。

构建编译器过程中有个有趣的概念,叫做自举(Bootstrapping)。大意就是说,假设我要创造一门X语言,那我必然要为X语言写一个编译器or解释器,如果这个编译器就是用X语言写的,那么这个用X语言写X语言编译器的过程就是自举。当然现实并没有这么简单,因为写编译器之时,X语言并不存在,所以也无法用X语言写编译器,这就陷入了一个先有鸡还是先有蛋的困境。常见做法是:

不常见的做法请见此处


好了科普完毕,这些其实都不是我想说的,我想说的是我今天突然意识到自举这个概念在生活中重要性。

比如学英语的过程其实应该是自举的过程,可是有多少人学了十几年还没开始自举呢?学英语的自举过程就应该是,一开始我们使用中文去学英语,当学完了英语的一个核心子集的时候,我们就应该使用英语去解释英语,一个简单的做法就是使用英英字典。再比如说,出国在外和人交谈,当对方说了一个你不懂的词的时候,你不应该掏出手机,再请对方一个个字母地拼出这个词,然后在手机上查出这个词的中文意思,正确的做法应该就是请他用英语中的其他词来解释这个词。

换个角度思考,C语言代表了舒适区,而X语言代表着新的领域,自举的过程也许更痛苦一些,但是也会让人成长得更快。

(The End)