【问题标题】:How do computers interpret programming languages? [closed]计算机如何解释编程语言? [关闭]
【发布时间】:2011-10-26 05:25:40
【问题描述】:

我很想知道机器是如何解释编程语言的。我正在查看一些语言比较/基准,并注意到一些编程语言是用 C 编程语言编写的,而另一些是用其他语言编写的。例如 Ruby 和 JVM(虽然不是一种语言)是用 C 编写的。但是为什么编写 Ruby 或 JVM 的人用 C 编写呢?难道他们不能用像 C 那样的方式来编写它,我猜它不是用另一种语言编写的。 :-) 是因为不重新发明轮子,还是因为 C 是机器之神?

【问题讨论】:

  • 查看解释语言和编译语言,然后编译成字节码和机器码。您的问题意味着您不了解它们之间的区别。在您真正了解这些差异之前,您可能无法就该主题提出问题。
  • @Timur 您需要“接受”其他问题的有效答案。您可以阅读该网站的常见问题解答,了解您应该在此处提出哪些类型的问题,以及该网站的其他方面是如何运作的。

标签: c computer-science


【解决方案1】:

必须将它们写成某种东西。它们可以直接用机器语言(实际的处理器指令)编写,但这会非常麻烦 - 并且不可移植。所以另一种——最好是标准的、可移植的和无处不在的——语言(比如 C)是一个更好的选择。

【讨论】:

  • 那么,每台机器都有自己的代码,而编写语言的人必须知道这些机器代码才能让他们的语言将自己转换成机器代码?
  • 每台机器(= 处理器,有时操作系统也会产生影响)都有自己的机器语言。因此,如果您用 C 编写一些东西并为 PC 或 Mac 编译它,您将获得不同的输出(在 PC 上,如果您为 Windows 或 Linux 编译它,您将获得不同的输出)。但是,一旦您在平台上拥有 C 和解释器 - 对于任何语言 - 是用 C 编写的,您就可以在给定平台上执行用该语言编写的脚本。因此,如果您为 C 语言编写解释器,则无需使用特定于机器的语言编写它。
【解决方案2】:

C(以及 C++、FORTRAN 等)直接编译为机器码,而 Ruby 和 Java 编译为字节码,由虚拟机解释,就像硬件之上的软件平台。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-30
    • 1970-01-01
    • 1970-01-01
    • 2016-04-01
    • 1970-01-01
    • 2011-03-16
    相关资源
    最近更新 更多