Compiler construction 编译器的语言是什么?它们是用不同的语言写的吗?
编译器是否使用不同的语言?编译器通常使用所述编译器的语言编写。例如,C编译器通常是用C编写的 。。。这就引出了一个问题:“第一次是如何编译的?”。对此,我听到了两个答案:要么是手工编译的(听起来很可怕),要么是一个作弊并使用该语言的现有编译器Compiler construction 编译器的语言是什么?它们是用不同的语言写的吗?,compiler-construction,Compiler Construction,编译器是否使用不同的语言?编译器通常使用所述编译器的语言编写。例如,C编译器通常是用C编写的 。。。这就引出了一个问题:“第一次是如何编译的?”。对此,我听到了两个答案:要么是手工编译的(听起来很可怕),要么是一个作弊并使用该语言的现有编译器 正如@jball所评论的,请阅读上的维基百科文章以获取完整的详细信息。什么是语言?例如,是用英文写的。 有一个关于口译员的故事是用Lisp写的 这带来了以下问题-如果C编译器是用C编写的,那么是什么编译了第一个C编译器?因此,.A可能用任何语言编写。在最基
正如@jball所评论的,请阅读上的维基百科文章以获取完整的详细信息。什么是语言?例如,是用英文写的。
有一个关于口译员的故事是用Lisp写的
这带来了以下问题-如果C编译器是用C编写的,那么是什么编译了第一个C编译器?因此,.A可能用任何语言编写。在最基本的形式中,编译器只是将代码从一种语言转换为另一种语言。从现在大多数人使用“编译器”这个术语的意义上说,他们指的是一些接受某种高级语言的源代码并将其转换为汇编语言或某种低级中间语言()的东西。有时是的,有时是不行的。习惯上,我们会尽快用一种新的语言来实现编译器,部分原因是为了证明它可以完成“繁重的工作” 但当然,首先需要一个编译器或至少是解释器来运行该编译器并让它自己编译——所以首先必须用不同的语言实现它
对于许多专业语言来说,用语言本身编写编译器并不实用,因为该语言不适用于编译器之类的东西。以下是几个示例:
- Rubinius Ruby编译器是用Ruby编写的
- YARV Ruby编译器是用C编写的
- XRuby编译器是用Java编写的
- Ruby.NET Ruby编译器是用C#编写的
- MacRuby编译器是用Objective-C编写的
- IronJS ECMAScript编译器是用F#编写的
- MS Visual F#编译器是用F#编写的
- MS Visual C编译器是用C++编写的,目前正在改写C,
- MS Visual Basic .NET编译器是用C++编写的,目前正在Visual Basic .NET中改写,
- GCC C编译器是用C编写的 CLangC编译器是用C++编写的,
- 大多数Pascal编译器都是用Pascal编写的
- 大多数Oberon编译器都是用Oberon编写的
- 6g/8g和gccgo Go编译器都是用C编写的