-2

プラットフォーム非依存の正確な定義は何ですか。ソースコードをバイトコードに変換するため、Javaはプラットフォームに依存しない言語であり、そのバイトコードはJava仮想マシンがインストールされている任意のOSで実行できることを読みました。

C、PHP、VB、C#、C++、RubyOnRailsなどの他の言語のソースコードがあり、このソースコードは、対応するコンパイラ/インタープリターを備えた任意のOSで実行できます。では、C やその他の言語もプラットフォームに依存しない言語であると言ってみませんか。

Java は実際には Java プラットフォームに大きく依存しています。また、C は間違いなく非常に移植性の高い言語です。– ニクラス

4

2 に答える 2

4

オペレーティング システムと直接やり取りすることを目的としたプログラミング言語 (C など) は、プラットフォームに依存すると見なされる傾向があります。これは、あるシステムが 1 つのシステム コール セットを提供し、別のシステムが別のシステム コール セットを提供する場合があるためです。したがって、アプリケーションは、実行するプラットフォームに依存する場合があります。

確かに、コンパイルされた Java プログラムは、JVM の存在に依存するという意味でプラットフォームに依存します。ただし、コンパイル済みの C プログラムとは対照的に、基盤となるオペレーティング システムに依存せず、一度コンパイルすればどこでも実行できるという原則に従います。

以下は、このウェブページからの引用です

プラットフォームに依存しないプログラミングは、プログラムが複数のプラットフォームで動作する場合に実現されます。プラットフォームに依存しないアプリケーションは、どのオペレーティング システムでも、どのプロセッサ アーキテクチャでも同じように動作します。Java は、このようなアプリケーションを作成するためのよく知られた言語です。


正式に言えば (そして私は正式に話すのが好きです)明確に定義されたセマンティクス(すべての言語の 99% をカバーする) を備えた言語で書かれたプログラムは、もちろんどのプラットフォームでも実行できます。

関連する質問:

于 2012-05-30T14:13:32.583 に答える
2

これは理想的には、特定のプラットフォームのことを気にせずに一度書き、一度コンパイルすればどこでも実行できることを意味します。しかし、これを達成するのは本当に難しいです。

于 2012-05-30T14:13:20.587 に答える