平台独立性:它与将源代码从一个操作系统移动到另一个操作系统有何不同


Platform Independence: How is it different from moving source code from one OS to another?

独立于平台的确切定义是什么?我已经读过Java是一种独立于平台的语言,因为它将源代码转换为字节码,并且该字节码可以在任何安装了Java虚拟机的操作系统上运行。

我很困惑,如果我有一些来自任何其他语言的源代码,比如C,PHP,VB,C#,C++,RubyOnRails等,并且这些源代码可以在任何具有相应编译器/解释器的操作系统上运行。那么我们为什么不说C或其他语言也是一种独立于平台的语言呢?

Java

实际上非常依赖于Java平台。此外,C可以说是一种非常便携的语言。- 尼克拉斯

旨在直接与操作系统交互的编程语言(如C)往往被视为依赖于平台,仅仅是因为一个系统可能提供一组系统调用,而另一个系统可能提供另一组系统调用。因此,应用程序可能取决于它在哪个平台上执行。

当然,编译的Java程序依赖于平台,因为它取决于JVM的存在。然而,与编译的C程序相反,它独立于底层操作系统,并遵循一次编译,随处运行的原则。

这是这个网页的引用

当一个程序在多个平台上工作时,可以实现独立于平台的编程。独立于平台的应用程序在任何操作系统、任何处理器体系结构等上都应以相同的方式工作。Java是用于创建此类应用程序的众所周知的语言。


从形式上讲(我喜欢正式地说),任何用具有明确定义语义的语言编写的程序(涵盖所有语言的99%)当然可以在任何平台上执行。

相关问题:

  • Java是跨平台的吗?
  • .NET 平台是否独立?
  • 为什么 Java 平台是独立的

理想情况下,这意味着编写一次,无需担心特定的平台问题,编译一次即可在任何地方运行。但这真的很难实现。