ZKX's LAB

Java为什么不自举? 自编译和自举

2020-10-13知识17

C语言是用什么编出的? 首先答案是c语言是用c语言编写。语言自举性一个语言能否自己编写自己实现自己编译,这叫自编译,自举性。目前能实现自举性的语言没有几个,而自举性也就成了一个语言能否真实强大的标志。一般来说图灵完备的语言,编译型语言,虚拟机语言可以实现自举。而解释型语言基本上很难。现代很多语言都没实现自举,Java(jvm),Javascript,python,ruby,lua,php,perl…一堆。这些语言编译器、解释器都是c语言。一个语言能自举是他们社区和开发一直梦寐以求的事情,也是他们情怀和追求所在。有一个语言为了实现自举成功,花了近20年,前年圣诞节才正式推出了第一个正式版本。它就是perl6,perl的下一代语言。perl6支持过程、OO、函数式三种程模式,支持虚拟机的语言(自己的虚拟机和jvm)。为了做好perl6,社区搞了一个功能启示录,把要实现的功能好点子都录进去。后来一个日本人参考这个启示录自己实现了一个语言,这就有了ruby语言,但是ruby没有自举。c语言的自举过程和交叉编译我在以前的回答中,曾说过c语言的来历:上世纪70年代,为了实现unix,教主Tomphson和Ritchie开发了B语言,但是b语言性能不行,编写也较繁琐,所以又在B语言的基础上开发出了现在的C语言。第一个C语言。

Java为什么不自举? 自编译和自举

什么是自举开发能力?什么样的系统才具有自举开发能力? 以下全是个人理解:在当前开发环境的基础上开发更好的开发环境的能力被称为自举开发能力。用C语言来开发C编译器的过程就是自举开发过程。这一过程可能是这样的:机器语言编写汇编编译器,用汇编编写一个简单的C编译器,然后用C编写一个更好的C编译器,同时也可以用C编译一个更好的汇编编译器,而且新的编译器还可以重新编译原来的C编译器…个人认为具备了图灵完备性的系统都具有自举开发能力。但是受硬件局限性,自举能力可能受到限制,并且根据需求或许这一能力并不必要…比如说我听说有个牛人用74系列门电路集成芯片、八段码液晶显示、开关搭建了一个单片机开发环境,然后用它开发一个用单片机实现的单片机开发环境(所有的程序都是用开关按进去的),后来他在准备给这个开发环境添加LCD支持的时候,他终于有了一台属于自己的计算机,这时候,他就不再需要将他的单片机开发环境继续自举下去了…因为他已经拥有了足够满足要求的计算机和相应软件…

Java为什么不自举? 自编译和自举

编译器的自举原理是什么?

Java为什么不自举? 自编译和自举

Java为什么不自举? Golang也好,Rust也好很多高级语言都实现了自举。而很多人拿Java和C++比较,我只想说:为什么Java不自举…

计算机编程语言必须能够自举吗? 设计一种新的计算机编程语言的时候,用新设计的语言编写语言自己的编译器或解析器是不是编程语言设计过程…

#c语言#编程语言#golang

随机阅读

qrcode
访问手机版