せかいや

いまいるここを、おもしろく http://sekai-in-the-box.appspot.com/

【Ruby】【言語】インタプリタとは?コンパイラとは?言語処理系とは?

インタプリタって何?
・「処理系」って何?

っていうことを考えました。

以下はメモ書き、、ではないのだけれど
きっと読むのが体力いると思うのでメモ書きと化してしまうと思います。

ほんとは師匠とのやり取りでまとめた経緯もあれば、もっと楽しいと思うのですが、
メール数が40を越えた上での結論なので、
結論ありきでいきたいと思います。。



こんなコードを考えたとき↓

def dentaku st
//1charづつ拾って処理をふりわける
end
p dentaku("1 tasu 1 wa ?")  #=>2

この「"1 tasu 1 wa ?"」をせかい言語で書かれたコード、と定義する。



X言語処理系とは

X文法で書かれたコードを入力とし評価する物のこと。


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

C言語で書かれたRuby言語処理系(=A)とは、

Ruby文法のコードを入力とし、(C言語でかかれた処理プログラムを機械語にコンパイルしたもので)評価する物のこと」

Ruby文法で書かれたコードをインタプリトする」とは

Ruby文法で書かれたコードを(A)で評価(=インタプリト)する行動を指す。
 ※MRIの場合

(A)はインタプリトを行うため、(A)はインタプリタであるという。
一般にRuby言語の処理系はインタプリタであることから、
Ruby言語はインタプリタ言語と呼ばれる。


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Ruby言語で書かれたせかい言語処理系(=B)とは、

「せかい文法のコードを入力とし、(Ruby言語でかかれた処理プログラムで)評価する物のこと」

「せかい文法で書かれたコードをインタプリトする」とは

せかい文法で書かれたコードを(B) で評価(=インタプリト)する行動を指す。

(B)はインタプリトを行うため、(B)はインタプリタであるという。
せかい言語の処理系がインタプリタであることから、
せかい言語はインタプリタ言語と呼ばれる。


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

javacコマンドで書かれたJava言語処理系(=C)とは、

Java文法のコードを入力とし、(javacコマンドで)翻訳する物のこと」

Java文法で書かれたコードをコンパイルする」とは

Java文法で書かれたコードを(C) で翻訳(=コンパイル)する行動を指す。

(C)はコンパイルを行うため、(C)はコンパイラであるという。
Java言語の主な処理系がコンパイラであることから、
Java言語はコンパイル言語と呼ばれる。


 
師匠からのメール↓

ええんやない?大きくまちがってないと思うよ
ま、すさまじくわかりにくい日本語やけどwww

そうか、、良かった。

 

てか、川渡りとか一緒に解いて競争しようぜ!


・・・。

師匠のお守りも大変です。