首页 文章

非常基本的编译问题 - 请帮忙!

提问于
浏览
0

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

(2)是否必须是机器可读的才能由某种CPU执行?

(3)程序执行时操作系统会起什么作用?它与帮助系统解释程序代码有什么关系吗?

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

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

非常感谢!!

1 回答

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

    • 同样,它取决于CPU . 绝大多数(我所知道的都是)将运行自己的机器代码 .

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

    • 否 . 如果您希望它们被执行,它们必须是特定格式,但这并不一定意味着 exe 扩展 . 而且,虽然你认为你正在运行JVM,这是一个可执行文件 . 它恰好是解释类文件(为了简单起见忽略了JIT的东西,它将Java字节码转换为原始机器代码以提高效率 . 你可以"execute" Java类文件,Powershell脚本, cmd 脚本等等 .

    • 反编译器试图将编译后的文件(EXE,类文件,Python字节码等)恢复为原始形式,或者至少接近它 .

相关问题