0

(1) 归根结底:为了使程序在特定操作系统上可执行,必须采取什么措施?机器码,汇编语言?

(2) 它必须是机器可读的才能被某种 CPU 执行吗?

(3) 操作系统在程序执行过程中扮演什么样的角色?它与帮助系统解释程序代码有什么关系吗?

(4) 对于 Windows PC,是否所有程序都必须是 .exe 才能执行?为什么选择Java虚拟机?

(5) 反编译器是如何工作的?编译为机器代码和汇编语言的程序有什么区别?

非常感谢!!

4

1 回答 1

1
  1. 这完全取决于操作系统。从理论上讲,您可以拥有一个即时解释 COBOL 源代码的操作系统。但通常,您需要操作系统可以加载到内存中并运行的特定格式的可执行文件。所以,机器码就是这样。

  2. 同样,这取决于 CPU。绝大多数(我所知道的)将运行他们自己的机器代码。

  3. 操作系统提供了一种运行应用程序的方法,并为这些应用程序提供支持服务。

  4. 不。如果您希望执行它们,它们必须具有特定格式,但这并不一定意味着exe扩展。而且,尽管您认为您正在运行 Java 类文件,但实际上您正在运行的是 JVM,它是一个可执行文件。它恰好是在解释类文件(为了简单起见,忽略 JIT 的东西,这会将 Java 字节码转换为原始机器代码以提高效率。您可以“执行”Java 类文件、Powershell 脚本、cmd脚本等。

  5. 反编译器会尝试将已编译的文件(EXE、类文件、Python 字节码等)转回其原始形式,或者至少接近其原始形式。

于 2011-03-21T08:37:13.807 回答