永发信息网

什么是编程语言的自举

答案:1  悬赏:10  手机版
解决时间 2021-01-24 17:12
什么是编程语言的自举
最佳答案
就是自己的编译器可以自行编译自己的编译器。
实现方法就是这个编译器的作者用这个语言的一些特性来编写编译器并在该编译器中支持这些自己使用到的特性。
首先,第一个编译器肯定是用别的语言写的(不论是C还是Go还是Lisp还是Python),后面的版本才能谈及自举。
至于先有鸡还是先有蛋,我可以举个这样的不太恰当的例子:比如我写了一个可以自举的C编译器叫作mycc,不论是编译器本身的执行效率还是生成的代码的质量都远远好于gcc(本故事纯属虚构),但我用的都是标准的C写的,那么我可以就直接用gcc编译mycc的源码,得到一份可以生成高质量代码但本身执行效率低下的mycc,然后当然如果我再用这个生成的mycc编译mycc的源码得到新的一份mycc,新的这份不光会产生和原来那份同等高质量的代码,而且还能拥有比先前版本更高的执行效率(因为前一份是gcc的编译产物,后一份是mycc的编译产物,而mycc生成的代码质量要远好于gcc的)。故事虽然是虚构的,但是道理差不多就是这么个道理。这也就是为什么如果从源码编译安装新版本的gcc的话,往往会“编译——安装”两到三遍的原因。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
博乐音乐教室(通化梅河口市)地址好找么,我有
明星工作室有哪些
我用的是华为P7,怎么把手机通讯录里边的微信
PLC程序中急停为什么用常开
学习了溶液的概念后,老师的提问及同学的回答
现在是做土建预算好还是园林预算好
卓文书法地址在什么地方,我要处理点事
中国工商银行(平谷支行营业部)地址有知道的么
超市里成盒的鸭血吃多了可好
读等高线地形图,选择正确说法A.图中C---D是
东北师大辅导班地址在什么地方,我要处理点事
下列纬线圈最长的是A.10°SB.65°NC.40°SD.3
金牛座的男明星:何炅是什么星座
建设银行(北京新平支行)怎么去啊,我要去那办
笔畅辅导地址在什么地方,我要处理点事
推荐资讯
山东名山建筑安装工程有限公司地址在哪,我要
疼痛夜间加重原理
季报中利润表的上期金额是不是自动生成的
下图是60° 纬线的地形剖面示意图,判读后回
求 历届格莱梅奖 获奖歌曲
鹏达汽车(十里工业区209国道旁)地址在哪,我
什么是光合细菌?它有哪些作用?
口袋妖怪复刻小火龙开局怎么抓闪电鸟
我对自己的人生感到绝望了,看不到未来的希望
请问下重庆大学城附近哪里有可以练习钢琴的琴
30米t梁梁底板出现裂纹是什么原因
桂林教育宾馆-洗手间地址在哪,我要去那里办
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?