平台无关的确切定义是什么。我读过Java是一种独立于平台的语言,因为它将源代码转换为字节码,并且该字节码可以在任何安装了Java虚拟机的操作系统上运行。
我很困惑,如果我有任何其他语言的源代码,例如 C、PHP、VB、C#、C++、RubyOnRails 等,并且该源代码可以在具有相应编译器/解释器的任何操作系统上运行在上面。那么为什么我们不说 C 或其他语言也是平台无关语言。
Java 实际上非常依赖于 Java 平台。而且,C 可以说是一种非常可移植的语言。 – 尼克拉斯
最佳答案
旨在与操作系统直接交互的编程语言(例如 C)往往被视为依赖于平台,仅仅是因为一个系统可能提供一组系统调用,而另一个系统可能提供另一组系统调用系统调用集。因此,应用程序可能依赖它所执行的平台。
毫无疑问,编译后的 Java 程序依赖于平台,因为它依赖于 JVM 的存在。然而,与编译的 C 程序相反,它独立于底层操作系统并遵循 compile once, run anywhere原理。
这里引用 this webpage
<小时/>Platform Independent Programming is achieved when a program works on several platforms. Platform Independent applications shall work the same way on any Operating System, for any Processor Architecture and so on. Java is a well known language for creating such applications.
正式地说(我喜欢正式地说)任何用具有明确定义的语义的语言(涵盖 99% 的语言)编写的程序当然可以在任何平台上执行。
相关问题:
关于c# - 平台独立性: How is it different from moving source code from one OS to another?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10818015/