回答編集履歴

2

typo

2017/05/08 13:40

投稿

yuba
yuba

スコア5568

test CHANGED
@@ -12,7 +12,7 @@
12
12
 
13
13
  プログラムをコンパイラが読み進んでいく際、同じ記述が出てきた場所によって全然違う意味になることがあります。
14
14
 
15
- 例えば(C言語やその仲間の言語のことはわかりますか?) ';'は文の終わりを意味することもありますし、for文のカッコの中では3つあるセクションの区切りを意味します。これは、コンパイラが読み進むときに「for文のカッコの中」というカッコを意識していて、「今はfor文の中だからこれはセクション区切り」と判定しているということです。
15
+ 例えば(C言語やその仲間の言語のことはわかりますか?) ';'は文の終わりを意味することもありますし、for文のカッコの中では3つあるセクションの区切りを意味します。これは、コンパイラが読み進むときに「for文のカッコの中」というコンテキストを意識していて、「今はfor文の中だからこれはセクション区切り」と判定しているということです。
16
16
 
17
17
 
18
18
 

1

具体例

2017/05/08 13:40

投稿

yuba
yuba

スコア5568

test CHANGED
@@ -1,3 +1,33 @@
1
1
  大変重要な疑問です。
2
2
 
3
3
  ですが「コンテキスト」は様々な局面で使われる意味の広い言葉です(全体的に通じる根底の意味はもちろん共通していますが)。どういう文脈の中で出てきて解釈に悩んだのか、もう少し詳しく書いていただけると、あるいは納得のいく説明ができるかもしれません(といいつつ「文脈」という言葉を使ってしまいました)。
4
+
5
+
6
+
7
+ --
8
+
9
+ (追記)
10
+
11
+ 具体例その1:
12
+
13
+ プログラムをコンパイラが読み進んでいく際、同じ記述が出てきた場所によって全然違う意味になることがあります。
14
+
15
+ 例えば(C言語やその仲間の言語のことはわかりますか?) ';'は文の終わりを意味することもありますし、for文のカッコの中では3つあるセクションの区切りを意味します。これは、コンパイラが読み進むときに「for文のカッコの中」というカッコを意識していて、「今はfor文の中だからこれはセクション区切り」と判定しているということです。
16
+
17
+
18
+
19
+ 具体例その2:
20
+
21
+ シェルでコマンドを打つとき、今カレントディレクトリがどこだかによってコマンドの実行結果は変わってきます。言うなればカレントディレクトリは(その他にログインユーザー名だとか環境変数だとか、実行結果に影響を与えるすべての背景情報は)コンテキストです。
22
+
23
+
24
+
25
+ 具体例その3:
26
+
27
+ 文の実行が背景情報の影響を受けるのはシェルで打つコマンドだけでなく、プログラムコードの中の文も同じです。
28
+
29
+ 例えばWindowsのデスクトップアプリを書いている場合など、UIの操作のほとんどはメインスレッド以外で実行するとあまりよろしくない結果になります。ということは、このメソッドがいまどのスレッドで実行されているか、というのは重要なコンテキスト情報だということになります。
30
+
31
+
32
+
33
+ 以上のような実例、どれかかすっていたでしょうか。