平台无关的确切定义是什么。我读过Java是一种独立于平台的语言,因为它将源代码转换为字节码并且该字节码可以在任何安装了Java虚拟机的操作系统上运行。
我很困惑,如果我有任何其他语言的源代码,比如 C、PHP、VB、C#、C++、RubyOnRails 等,并且该源代码可以在任何具有相应编译器/解释器的操作系统上运行。那么我们为什么不说 C 或其他语言也是平台无关的语言。
Java 实际上非常依赖于 Java 平台。此外,C 可以说是一种非常便携的语言。– 尼克拉斯
旨在直接与操作系统交互的编程语言(例如 C)往往被视为平台相关的,因为一个系统可能提供一组系统调用,而另一个系统可能提供另一组系统调用。因此,应用程序可能取决于它在哪个平台上执行。
从某种意义上说,编译的 Java 程序肯定依赖于平台,因为它依赖于 JVM 的存在。然而,与编译后的 C 程序不同,它独立于底层操作系统并遵循编译一次,随处运行的原则。
这是此网页的引述
当一个程序在多个平台上运行时,就实现了平台无关编程。独立于平台的应用程序在任何操作系统、任何处理器架构等上都应该以相同的方式工作。Java 是用于创建此类应用程序的众所周知的语言。
正式地说(我喜欢正式地说)任何用具有明确定义的语义(涵盖所有语言的 99%)的语言编写的程序当然可以在任何平台上执行。
相关问题:
理想情况下,这意味着编写一次而无需担心特定平台的事情,一次编译并在任何地方运行。但这真的很难实现。