teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

7

「解釈と実行すること自体」という表現に変更

2016/10/14 08:04

投稿

LLman
LLman

スコア5592

answer CHANGED
@@ -12,7 +12,8 @@
12
12
  実態では機械語への逐次翻訳なんかしてない
13
13
  (少なくともインタプリタのコードに書かない)ことが分かります。
14
14
 
15
+ でもまあ、その解釈と実行すること自体を、
15
- でもまあ、解釈と実行を「翻訳」と表現できなくもないかもしれません。
16
+ 「翻訳」と表現できなくもないかもしれません。
16
17
  「嘘も方便」で、分かりやすいからよくある説明ではあります。
17
18
 
18
19
  ---

6

最後の補足にも見出しを記載

2016/10/14 08:04

投稿

LLman
LLman

スコア5592

answer CHANGED
@@ -64,6 +64,7 @@
64
64
 
65
65
  ---
66
66
 
67
+ ###補足
67
68
  最近では中間コードを作る中間型言語が増えているので、
68
69
  コンパイラ型とインタプリタ型の区別は曖昧化しています。
69
70
 

5

インタプリタと翻訳の部分に補足追加

2016/10/14 07:58

投稿

LLman
LLman

スコア5592

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

インタプリタの翻訳について補足

2016/10/14 07:55

投稿

LLman
LLman

スコア5592

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

整形

2016/10/14 07:52

投稿

LLman
LLman

スコア5592

answer CHANGED
File without changes

2

整形

2016/10/14 07:48

投稿

LLman
LLman

スコア5592

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
- > 質問1
14
+ ###質問1
15
15
  > この二つの言語は「どのタイミングで」コンパイルを開始するのですか?
16
16
  > 「書き換えたソースコードを保存したタイミング」でしょうか?
17
17
 
@@ -25,7 +25,7 @@
25
25
 
26
26
  ---
27
27
 
28
- > 質問2
28
+ ###質問2
29
29
  > スクリプト言語の方が速そうだと思うのですが、
30
30
  > 記事には「コンパイル言語の方が速い」ということなので、混乱しています
31
31
 
@@ -45,15 +45,16 @@
45
45
 
46
46
  ---
47
47
 
48
- > 質問3
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

中間型言語について補足

2016/10/14 07:48

投稿

LLman
LLman

スコア5592

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**コンパイル**」と言うので、最低限の区別は今でもあります。