6

我正在寻找另一种独立于平台的语言,如 Java。
还有其他 PI 语言吗?

谢谢

4

11 回答 11

17

平台无关并不是一个完美定义的术语。它对不同的人可能意味着不同的事情。例如,有些人说 C 是 PI,有些人会说不是。有时,人们会费尽心思让 C 代码与 configure(1) 一起工作,以便它可以在许多不同的平台上编译。这是否意味着可以编写平台无关的 C,但并非所有 C 都是平台无关的?

也许 Java(+其他在 JVM 上运行的软件)被认为是 PI,因为它们定义了一个平台,并且由不同的机器来实现该平台。但它们并不总是正确地做到这一点——例如,一些 JVM(尤其是早期的 JVM)存在其他(在其他平台上)没有的错误。当然,您可以编写链接到本机代码的非纯 java - 当然不是独立于平台的。

几个答案表明脚本语言是平台独立的。告诉那些编写 javascript 并希望它在 IE6、IE7、FF、Chrome、Safari 等上运行的人!

因此,您真的需要更多地说明“平台独立”的含义,或者您为什么要问。

于 2010-04-09T12:47:22.693 回答
4

取决于您对平台无关的含义:

  • 可在具有相同源代码的任何平台上编译:几乎任何语言
  • 在不同的平台上复制并立即运行:任何脚本语言和 Java 和 .NET 用于具有框架(JRE 和 .NET/mono)的平台。
于 2010-04-09T12:38:24.047 回答
3

Perl、php、scheme、lisp、LOLCODE。大多数解释语言确实如此。

于 2010-04-09T12:39:08.283 回答
2

Ruby、Lisp、Scheme、Scala、Clojure、Python、Perl、PHP、C#(通过 Mono)...

老实说,这个名单可能会继续增长。缩小平台无关的定义或询问哪些语言依赖于平台要容易得多。

于 2010-04-09T12:37:34.670 回答
2

列出平台相关的语言可能更容易。

于 2010-04-09T12:38:19.733 回答
2

有很多 pi 语言。你想达到什么目标?只是想学习另一种语言?或者你有一个特定的项目?

一些示例:
C/C++、C#、Java、Ruby、Python、Perl、PHP、Scheme、Lisp

一些有用的链接:
http://en.wikipedia.org/wiki/Lists_of_programming_languages
http://en.wikipedia.org/wiki/Comparison_of_programming_languages_(basic_instructions)
http://en.wikipedia.org/wiki/Comparison_of_programming_languages

于 2010-04-09T12:45:17.263 回答
1

Java 是独立于平台的,因为它运行在 Java 虚拟机 (jvm) 上。jvm上运行的还有其他语言,当然都是PI。斯卡拉就是一个例子。

于 2010-04-09T12:39:26.067 回答
1

多亏了供应商或社区,几乎每种语言都以某种方式独立于平台。

C/C++ (Boost, QT, etc.), C#/Java, Vala, Python/Ruby/Perl, PHP etc.等,所有这些语言都是平台无关的,唯一的区别是有些被重新编译到相应的平台,有些是在框架之上运行的,而另一些是解释性语言。

于 2010-04-09T12:43:11.030 回答
1

如果您指的是平台无关代码的编译器(例如用于 Java 语言的 Java VM),您可以查找 CIL/MSIL(用于 C# 和其他基于 .Net)和 LLVM(低级虚拟机,我想它可以找到编译器对于 C 和 Haskell)。

于 2010-04-09T12:52:55.313 回答
1

我的建议是Scala。您可以在 JVM 上使用所有 Java API,并且您拥有更简洁、更强大和更干净的语言。

于 2010-04-09T13:05:15.650 回答
0

如果有人为它编写一个抽象底层硬件的层来运行,那么几乎任何语言都可以是 PI。

相比之下,每个平台都需要有人编写这样的层,然后“PI”语言才能在其上运行。

于 2010-04-09T12:46:13.493 回答