对于不同的编程语言,是否有不同的编译器,或者编译器对所有编程语言都是通用的?将使用哪种语言编写编译器。
4 回答
您可能会将编译器(例如 GCC)与 IDE(例如 Microsoft Visual Studio)混淆。编译器是特定于语言的。IDE 可以支持多种语言,每种语言都有一个特定的编译器。
编译器是一种特殊程序,它处理以特定编程语言编写的语句,并将它们转换为计算机处理器使用的机器语言或“代码”。通常,程序员使用编辑器一次一行地用 Pascal 或 C 等语言编写语言语句。创建的文件包含所谓的源语句。然后,程序员运行适当的语言编译器,指定包含源语句的文件的名称。
很明显,每种语言都有自己特定的语言支持编译器来将源代码转换为机器代码。
有关编写编译器的语言的更多信息,请参阅此链接:第一个编译器是如何编写的?
我同意上面的答案,即 java 或其他高级编程语言的编译器必须用 C 等编写,因为它是一种与机器密切相关的语言。
事情是这样的:
机器很笨,它们理解二进制数字的语言,即。1 和 0
早些时候没有翻译器,所以程序员不得不用机器语言给出指令,这很困难,因为它涉及重新布线开关。
然后,在 1951 年,Grace Hopper 开发了第一个编译器,它允许使用单词和符号而不是二进制的 1 和 0对计算机进行编程。“编程”是指给出指令。这使得编写程序更容易,书面指令被称为“源代码”
任何编译器的主要工作是执行“编译”行为,即。从用户那里获取这个源代码(一旦完整编写)并按照一定的规则将其转化为“机器语言”。从而充当翻译者。
现在,由于不同的编程语言有不同的规则集,因此每种编程语言都存在不同的编译器。这些“规则”基本上是句法和词法规则,即。可以使用哪些单词和符号,以及如何将它们组合成一段代码。
编译器严重依赖自动机理论来执行其编译工作。
随着编程技术开发出将源代码转换为机器语言的其他方法的出现,这导致了解释语言的出现,其中涉及将每个句子或子路由直接编译成机器语言指令。此类编译由解释器执行。示例:JavaScript
今天,编译器和解释器一起使用以获得最佳性能并提高机器上的可用性。例如:Java,它是一种编译型和解释型语言。
**我相信“编译器”一词非常通用。
不同的语言有不同的编译器。编译器不是每次都是用其他语言编写的,对于 java,编译器是用 C 编写的。