0

**解释是否在执行 pgm 期间遵循编译阶段?**仅当我们运行程序时会发生什么?如果这些是不同的事情,那么在解释之前将执行语法检查。当我读到 python 是一种解释语言然后检查由什么做的陈述?

4

1 回答 1

2

你有两个选择:

  • 编译语言
  • 口译语言

编译语言中,您需要一个编译器,它可以获取源代码作为输入,并生成可以在给定目标平台上运行的二进制文件作为输出。例如,C、C++ 或 Java 是编译语言。编译器生成二进制文件后,您在目标平台上执行该二进制文件。生成二进制文件的编译过程涉及的主要步骤是词法、句法和语义分析以及代码生成。

编译器是在本机平台上运行并为给定目标平台生成代码的程序(二进制)。你有两个选择:

* target_platform == native_platform (native-compiler)
* target_platform != native_platform (cross-compiler). 

如果你有一台 x86_64 台式电脑,你的编译器在 x86_64 上运行并生成在 x86_64 上运行的代码,你就有一个本机编译器。在这种情况下,编译器生成本机机器代码。

如果您有一台 x86_64 台式 PC,您的编译器在 x86_64 上运行并生成在不同平台(例如 JVM)上运行的代码,那么您就有了一个交叉编译器。您应该了解 Java 语言使用一个交叉编译器,该交叉编译器将 java 语言作为输入,并生成在 JVM(而不是 x86_64 机器上)上运行的字节码作为输出。

其他交叉编译器,如 arm-linux-gcc、mips-linux-gcc、ppc-linux-gcc 等,将 C 源代码作为输入并生成二进制文件以在适当的目标平台(ARM、MIPS、PPC)上运行.

解释型语言中,您不需要编译器来生成代码,因此在进程结束时不会生成二进制文件。bash 和 python 是解释型语言。该语言的解释器(安装在您的 PC 中的二进制文件,例如 /bin/bash 或 /usr/bin/python)接收输入源代码,对其进行解释并执行它以生成输出。解释源代码所遵循的步骤与编译器所遵循的步骤完全相同,只是解释器不生成代码,只是在分析后执行。

前段时间我写了一篇文章,解释了如何使用 python 编写自定义语言的解释器。这篇文章是用西班牙语写的,但是整个过程是一步一步解释的,所以如果你对它感兴趣的话,可以学到很多东西。在文章的最后你可以找到源代码来下载和测试。源代码可在 github 中找到。该文章可在此链接中找到

希望能帮助到你!:)

于 2017-02-10T09:17:06.717 回答