语言规范是如何创建的

时间:2019-06-26 13:09:54

标签: java c compiler-construction

我想问一下,java是用什么编写的,但是我在stackexchange上找到了答案,它说,您不是用某种语言编写语言,而是规范,但是JDK是用C

现在,我的问题是,如果JDK是用C编写的,那么Java本质上是否是C语言的另一种形式,例如扩展或其他功能,并添加了更多功能?如何创建此规范,以及这三件事之间的关系是什么?

  • 解释规范的工具(如JDK)
  • 规范本身
  • 该工具的创建语言。

1 个答案:

答案 0 :(得分:3)

我认为您对一些事情有误解,所以让我们先了解基础知识:

计算机程序不过是一组由处理器读取然后执行的指令。一一执行的任务列表。

Java使用一种称为Java运行时环境(JRE)的东西。 JRE是一种(不是完全)虚拟处理器,具有自己的称为Java字节码的指令集。此“虚拟处理器”在您的操作系统内部运行。

Java Runtime Environment用某种语言编写。 Sun JRE用C编写。C代码又被编译为实际处理器的机器代码(处理器可以理解的代码)。

Java被编译为Java字节码。

因此回答您的问题:规范不过是对Java编程语言应如何表现以及其外观的描述。基本上,常规文本文档可以用单词之类的文字编写。

使用此规范,程序员可以构建编译器。编译器是一种更改Java代码的程序,如下所示:

-not $u.LockedOut

变成看起来像这样的字节码

for (int i = 2; i < 1000; i++) {
    for (int j = 2; j < i; j++) {
        if (i % j == 0)
            continue outer;
    }
    System.out.println (i);
}

执行此操作的编译器程序可以用任何语言编写,但是建议将其编写为C ++等低级语言,以加快编译过程。