c#平台独立性:将源代码从一个操作系统移动到另一个操作系统有何不同?
平台无关的确切定义是什么。我读过Java是一种独立于平台的语言,因为它将源代码转换为字节码,并且字节码可以在安装了Java虚拟机的任何操作系统上运行
我很困惑,如果我有其他语言的源代码,比如C、PHP、VB、C++、C++、RuyyRunRiLS等,这个源代码可以在任何有相应编译器/解释器的OS上运行。那么为什么我们不说C或其他语言也是一种平台独立的语言呢Java实际上非常依赖Java平台。而且,C语言可以说是一种非常可移植的语言Niklas
# 1 楼答案
直接与操作系统交互的编程语言(如C)往往被视为依赖于平台的,,这仅仅是因为一个系统可能提供一组系统调用,而另一个系统可能提供另一组系统调用。因此,应用程序可能依赖于它在哪个平台上执行
当然,编译后的Java程序依赖于平台,因为它依赖于JVM的存在。然而,与编译的C程序相反,它独立于底层操作系统,并遵循compile once, run anywhere原则
这里有一段来自this webpage的引文
正式地说(我喜欢正式地说),任何用定义良好语义的语言编写的程序(涵盖99%的所有语言)当然可以在任何平台上执行
相关问题:
# 2 楼答案
理想情况下,这意味着只需编写一次,不必担心特定的平台问题,只需编译一次,就可以在任何地方运行。但这确实很难实现