可能的重复:
如何用该语言编写语言的编译器?
在"本身"中实现编译器
我在看Rubinius,这是一个使用Ruby编写的编译器编译成字节码的Ruby实现.我无法理解这一点.你如何编写语言本身的语言编译器?似乎只是文本没有任何东西可以将它编译成可执行文件,然后可以编译用Ruby编写的未来代码.我只是输入那句话感到困惑.有人可以帮忙解释一下吗?
我看过这样写的东西...... C是用C语言编写的,或者ABAP是用ABAP编写的.
我甚至看到有人说这是将语言分类为真正的编程语言的标准之一.
我希望有人向我解释这意味着什么.
提前致谢.
编辑:更改标题:" C使用C "生成" C 使用C 编译 ".
我想到构建一个基于专用硬件的综合工具,以加速RTL的开发.
我们的想法是进行vhdl/verilog/netlist合成器的引导,这是一个在HW中实现大型状态机的平台,它使所有RTL敏感(用自己的语言编写编译器显示了SW世界的近距离想法).
94%的Rust编译器是用Rust编写的。所以我不知道怎么可能?因为要编译rustc,您已经必须具有一些rust编译器。有人可以解释它的工作方式以及rust编译器的创建方式吗?
我从 Go 1.4 中读到,Go 运行时是用 Go 本身(而不是 C)编写的。
这怎么可能?如果 Go 程序运行在运行时之上,而运行时是一个 Go 程序,那么运行时是否运行在其自身之上?
我发现最初的Rust语言编译器是用Ocaml编写的。所以我以为Rust将与Ocaml的性能类似。但是当我查看基准Ocaml与C ++以及Rust与C ++并将Ocaml与Rust进行比较时。它给了我什么...?,但是怎么...?
即使Rust源自Ocaml,如何将Rust的性能比Ocaml更快?
然后它引起了另一个问题?
从C派生的基于编译器的语言是否可以比C本身的性能更快?
c ×2
performance ×2
rust ×2
abap ×1
algorithm ×1
c++ ×1
compilation ×1
go ×1
interpreter ×1
optimization ×1
rubinius ×1
ruby ×1
runtime ×1
verilog ×1
vhdl ×1