1
ryd994 2017-01-29 15:35:31 +08:00
只要这个语言能在物理机器上运行,就一定能用汇编写出来(实际上可不可能无所谓)
|
2
feiyuanqiu 2017-01-29 15:42:38 +08:00 2
自举是为了证明语言的表达能力,同时语言的设计者也可以通过这样一个实际的复杂的项目来验证语言的设计
|
3
noli 2017-01-29 15:46:47 +08:00 via iPhone
|
4
ryd994 2017-01-29 16:55:38 +08:00
只要是图灵完全的语言(大多数都是),那就不存在表达能力的区别
虽然说有怀疑图灵完全之上还有更高层次,然而一直无法证明。因此一般认为图灵完全就是表达能力最强而且相互等价 论运行效率,机器码手撸编译器解释器肯定是最高的 但是,因为人力有限,没必要把人的力气浪费在这种无聊的事情上,所以一般都是基于 c ,再相互补充 你需要意识到一点,硬件能力不停增长,机器的能力是无穷的,而人力是有限的。只要能省人力,运行效率没多少所谓。 当然也有例外,比如嵌入式、数据库、内核,这些是受当前机器能力限制的(成本、或者单线程性能),所以这些关键区域会用 C 甚至汇编写。 |
5
msg7086 2017-01-29 17:18:57 +08:00
> 自举是不是效率更高
大多数时候不是为了编译和执行效率,而是反过来,提高开发效率。 当然开发效率带动更多的优化导致执行效率提高又是另一回事。 随便举个 C 的例子。 假如 C 编译器全程用汇编写,那么参与开发的人必须同时是汇编和 C 的用户才行。 但如果 C 编译器是用 C 写的,那么开发人员不需要通晓汇编就可以参与开发了。 (用汇编来优化又是另一回事。) |
6
jyf007 2017-01-29 22:55:50 +08:00 via Android
呵呵,世界上没有绝对的 cisc 和 risc ,实现指令集都已经靠微码了。
|
7
bombless 2017-01-30 19:06:28 +08:00 via Android
想太多了……自举只是一种实现的风格
之所以有少数情况下自举有自己的性能上的优点,那只不过是因为本身设计的时候没有把足够的接口暴露出来以至于把路堵死了 |
8
momocraft 2017-01-31 09:58:03 +08:00
我们知道编译器也是个不小的程序,能实际做到自举,说明语言和 (编译器实现) 在一定程度上靠谱。
|
9
q397064399 2017-02-01 07:06:55 +08:00
实际上没什么卵用, Go 也自举了,就 C-GO 那尿性,静态语言又缺少泛型,搞个鸡巴毛线
|