谈到编程语言本身,我们不由会想到它们的编译器或者解释器是用什么语言编写呢?一般而言,语言A诞生之初,一定是已存在的另外一种语言写它的编译器,等编译器完成后,就可以用语言A本身写它的编译器。
- GCC
- 早期用C语言,最新用C++.
- MSVC
- C/C++.
- Clang
- C++.
- Java编译器
- 最早是C语言编写,最新主要用Java编写。
- Java HotSpot
- C++
- C#编译器
- 最初是C++编写,后来改用C#编写,开源项目Roslyn, 即C#写C#编译器。Github Roslyn .NET compiler
- RyuJIT采用C++.
- Perl解释器
- C
- PHP解释器
- C
- Python解释器
- 官方采用C语言,即CPython,还有Jython(Java)/IronPython(C#)/PyPy(Python子集)等实现。
- JS解释器
- V8: C++, Node.js构建在V8之上,一样是C++.
- Go编译器
- 最早是C语言,后面用Go语言重写。
- Rust编译器
- 最初是Ocaml语言编写,2011年用Rust语言自举。