回答編集履歴
7
「解釈と実行すること自体」という表現に変更
answer
CHANGED
@@ -12,7 +12,8 @@
|
|
12
12
|
実態では機械語への逐次翻訳なんかしてない
|
13
13
|
(少なくともインタプリタのコードに書かない)ことが分かります。
|
14
14
|
|
15
|
+
でもまあ、その解釈と実行すること自体を、
|
15
|
-
|
16
|
+
「翻訳」と表現できなくもないかもしれません。
|
16
17
|
「嘘も方便」で、分かりやすいからよくある説明ではあります。
|
17
18
|
|
18
19
|
---
|
6
最後の補足にも見出しを記載
answer
CHANGED
@@ -64,6 +64,7 @@
|
|
64
64
|
|
65
65
|
---
|
66
66
|
|
67
|
+
###補足
|
67
68
|
最近では中間コードを作る中間型言語が増えているので、
|
68
69
|
コンパイラ型とインタプリタ型の区別は曖昧化しています。
|
69
70
|
|
5
インタプリタと翻訳の部分に補足追加
answer
CHANGED
@@ -8,12 +8,13 @@
|
|
8
8
|
それでまず、本当は**インタプリタは機械語に翻訳しない**です。
|
9
9
|
インタプリタはコードを解釈したら自身が実行します。
|
10
10
|
|
11
|
+
実際に簡単なインタプリタのコードを自分で読み書きしてみれば、
|
12
|
+
実態では機械語への逐次翻訳なんかしてない
|
13
|
+
(少なくともインタプリタのコードに書かない)ことが分かります。
|
14
|
+
|
11
|
-
まあ、
|
15
|
+
でもまあ、解釈と実行を「翻訳」と表現できなくもないかもしれません。
|
12
16
|
「嘘も方便」で、分かりやすいからよくある説明ではあります。
|
13
17
|
|
14
|
-
ただ、実際に簡単なインタプリタのコードを自分で読み書きしてみれば、
|
15
|
-
実態では機械語への逐次翻訳なんかしてないことが分かります。
|
16
|
-
|
17
18
|
---
|
18
19
|
|
19
20
|
###質問1
|
4
インタプリタの翻訳について補足
answer
CHANGED
@@ -5,10 +5,15 @@
|
|
5
5
|
以下、「スクリプト = インタプリタ」
|
6
6
|
を意味している、という前提で回答します。
|
7
7
|
|
8
|
-
それでまず、**インタプリタは機械語に翻訳しない**です。
|
8
|
+
それでまず、本当は**インタプリタは機械語に翻訳しない**です。
|
9
9
|
インタプリタはコードを解釈したら自身が実行します。
|
10
|
-
ただまあ、その行為を「翻訳」と表現できなくもないかもしれません。
|
11
10
|
|
11
|
+
まあ、その行為を「翻訳」と表現できなくもないかもしれません。
|
12
|
+
「嘘も方便」で、分かりやすいからよくある説明ではあります。
|
13
|
+
|
14
|
+
ただ、実際に簡単なインタプリタのコードを自分で読み書きしてみれば、
|
15
|
+
実態では機械語への逐次翻訳なんかしてないことが分かります。
|
16
|
+
|
12
17
|
---
|
13
18
|
|
14
19
|
###質問1
|
3
整形
answer
CHANGED
File without changes
|
2
整形
answer
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
|
1
|
+
###二つ言葉の認識
|
2
2
|
> 【スクリプト言語】
|
3
3
|
> ソースコードを逐次機械語に翻訳しながら実行する
|
4
4
|
|
@@ -11,7 +11,7 @@
|
|
11
11
|
|
12
12
|
---
|
13
13
|
|
14
|
-
|
14
|
+
###質問1
|
15
15
|
> この二つの言語は「どのタイミングで」コンパイルを開始するのですか?
|
16
16
|
> 「書き換えたソースコードを保存したタイミング」でしょうか?
|
17
17
|
|
@@ -25,7 +25,7 @@
|
|
25
25
|
|
26
26
|
---
|
27
27
|
|
28
|
-
|
28
|
+
###質問2
|
29
29
|
> スクリプト言語の方が速そうだと思うのですが、
|
30
30
|
> 記事には「コンパイル言語の方が速い」ということなので、混乱しています
|
31
31
|
|
@@ -45,15 +45,16 @@
|
|
45
45
|
|
46
46
|
---
|
47
47
|
|
48
|
-
|
48
|
+
###質問3
|
49
49
|
> これは例えば、PCゲームをコンパイラ言語で作って、
|
50
50
|
> 機械語の状態(コンパイラ済み)でサイトなどに公開しているから
|
51
51
|
> コンパイラは必要ない、とかそういうことでしょうか?
|
52
52
|
|
53
53
|
これはおおむねその通りです。
|
54
54
|
|
55
|
-
コンパイルして実行ファイルにすれば、OSが
|
55
|
+
コンパイルして**実行ファイル**にすれば、OSが直接実行できます。
|
56
|
-
インタプリタ型言語のコードを実行するには、
|
56
|
+
インタプリタ型言語のコードを実行するには、
|
57
|
+
その言語のインタプリタ(の実行ファイル)が必要です。
|
57
58
|
|
58
59
|
---
|
59
60
|
|
1
中間型言語について補足
answer
CHANGED
@@ -53,4 +53,12 @@
|
|
53
53
|
これはおおむねその通りです。
|
54
54
|
|
55
55
|
コンパイルして実行ファイルにすれば、OSがそのまま実行できます。
|
56
|
-
インタプリタ型言語のコードを実行するには、その言語のインタプリタが必要です。
|
56
|
+
インタプリタ型言語のコードを実行するには、その言語のインタプリタが必要です。
|
57
|
+
|
58
|
+
---
|
59
|
+
|
60
|
+
最近では中間コードを作る中間型言語が増えているので、
|
61
|
+
コンパイラ型とインタプリタ型の区別は曖昧化しています。
|
62
|
+
|
63
|
+
ただ、たとえばJavaVMが中間言語を機械語に変換するときにも、
|
64
|
+
「JIT**コンパイル**」と言うので、最低限の区別は今でもあります。
|