「プログラミング/共通知識」の版間の差分

→‎中間言語を生成するプログラミング言語: s/中間言語を機械語に翻訳するという仕組み/中間言語を読み込みそれを実行するという仕組み/
(→‎コンパイル: 機械語とOSの関係に誤解があった。)
タグ: 2017年版ソースエディター
(→‎中間言語を生成するプログラミング言語: s/中間言語を機械語に翻訳するという仕組み/中間言語を読み込みそれを実行するという仕組み/)
タグ: 2017年版ソースエディター
==== 中間言語を生成するプログラミング言語 ====
[[File:JvmSpec7.png|300px|ソースコード→classファイル→機械語|right]]
プログラミング言語のなかには、インタプリタかコンパイラかの分類に当てはまらない言語もあります。例えば、Javaはソースコードを、Java仮想マシンが解釈できる中間言語 (classファJavaバトコード) にコンパイルします。そして実行時に、その中間言語を機械語に翻訳読み込みそれを実行するという仕組みです(中間コード・インタプリタ)。中間言語ファイルは機械語から独立しているため、どのOSハードウェアでも使うことができます。かわりにユーザーは、Java中間言語を機械語に翻訳実行するためのソフトウェア (これを「JRE; Java Runtime Environment」、あるいは略してJREと呼ぶ) をインストールします。そして、そのJavaのランタイムは、Windows、macOS、Linux系列といったそれぞれのOSごとで動作するようにメンテナンス開発・維持されています。ユーザーから見れば、Javaのように中間言語を生成するプログラミング言語は、どのOSにも依存せず動作するので理想的なように見えます。しかし、ユーザーから見て統一的なAPIを提供しつつ、統一的なAPIとそれぞれのOSの違い橋渡し吸収する部分を実装することは非常に手間がかかります
 
==== 両方できる言語 ====
3,384

回編集