2.どのような環境で動作するのか?
これは、その言語がどのようなプラットフォーム、この場合、OSのことをさしているわけだが、で使用できるのかを認識しておく必要があるということだ。また、その言語がコンパイラ言語なのか、インタプリタ言語なのかということにも注意する必要がある。
昨今では、インタプリタ言語にもさまざまなバリエーションが登場し、ソースコードをコンパイルして、仮想コンピュータ(バーチャルマシンとも呼ぶが)上で動作する中間コードに変換し、実行するものも登場してきている。さらに実行中に、コンピュータ本体で直接動作可能な機械語コードに適宜コンパイルしながら(JIT)実行するという回りくどいものも登場してきた。
こうなってくると、どこまでをインタプリタ言語に分類してよいのかわからなくなってくるが、ここでは便宜上、
- ある特定のプラットフォーム上で、単独で動作可能な機械語の実行ファイルを生成可能な言語をコンパイラ言語と呼ぶ。
- 実行時に、言語インタプリタプログラム、または怪しげなバーチャルマシンが必要な言語をインタプリタ言語と呼ぶ。
と規定したいと思う。その意味では、Rubyは(2).のインタプリタ言語に属する。プログラム本体はソースコードの状態で存在し、実行には、Rubyインタプリタプログラム『ruby』、または『ruby.exe』が必要だ。
プログラムがソースコードで存在するため、WIndowsで作成したプログラムをUNIXに持ち込んでも、その逆でも、プラットフォーム固有の特殊な拡張ライブラリを使用していないという前提において、互換性が保障される。
最終更新:2008年12月05日 08:20