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

回答編集履歴

2

コメント指摘内容の反映

2020/04/15 07:13

投稿

kozuchi
kozuchi

スコア1193

answer CHANGED
@@ -1,24 +1,31 @@
1
1
  既に多くの方が良い回答をなさっていますので、わたしなりに自分の考えをまとめるために回答させていただきます。
2
-
3
2
  >b=aにより、bによるメモリ領域に、aの値5が入る所がすっきりしません。
4
3
  の部分の理由がはっきり書かれていないので、そのあたり憶測になり的外れな答えかもしれません。
5
-
6
4
  結論を先に言えば
7
5
 
8
6
  0. プログラムの数式は、数学の様式を一部借りてはいるが数学の数式とは別のものである
9
- 0. 変数という概念を導入した以上、変数同士で値の受け渡しは必ず必要になり、だとすれば、a = b という式が一番楽で直感的に覚えやすい。(だから、そのように言語の仕様は設計された)
7
+ 0. 変数という概念を導入した以上、変数同士で値の受け渡しは必ず必要になり、C言語では、a = b という式が選ばれた
10
- ということです。
11
8
 
12
9
  数学の数式が、数学的事実の表記を目的としているのに対して、
13
10
  プログラムの数式は(プログラムの他の部分同様)処理の手順を示しています。
14
- そして、計算の手順を記載するうえで、
11
+ そして、C言語等においては計算の手順を記載するうえで、
15
12
 
16
13
  > b = a
17
14
 
18
- が、変数a の値を 変数b に入るという処理を示すということにするのが、
19
- 便利だった、数学の数式との意味の齟齬は無視されたのです。
15
+ という形式が都合がいいと判断から、数学の数式との意味の齟齬は無視されたのです。
20
-
21
16
  実際、私が最初にこの言語仕様に出会った時思ったことは、「便利だな」「なるほどそうやるのか」程度で、質問者の方が持たれたような疑問は(数学の成績が悪かったせいか)あまり考えませんでした。
22
17
 
18
+ ただ、当時から「b = a」という記述方法しかなかったわけではなく、
23
- 初期言語では変数の代入に LET SET などのキーワードを入れ代入動作
19
+ 代入意味を明確にするために、代入記号「:=」を使ったり、「LETSET」と言ったキーワードを使っ明確に代入を示す記法も存在しました。
20
+
21
+ C言語登場以降、大型計算機からより小型のPCなどへの計算機利用の移行という流れの中で、
22
+ C言語スタイルのシンプルな記述形式は流行し、
23
+ LET などのキーワードを省略可にしたりする言語も現れましたが、
24
+ PCの能力が往時の大型計算機に迫り、追い抜くようになってくると、
25
+ 可読性や厳密性のために、こういった代入の書式を見直す言語も増えてきました。
26
+
24
- 明確化してるものもありますが、表記上冗長なので廃ていきレガシーな仕様と部の言語しか残っていません。
27
+ ろ、プログラムおい「変数から変数への代入」とう処理の必要がずあって、
28
+ 書式はそれをどう表現するのがいいかを(それぞれの言語設計者がそれぞれの考えで)
29
+ 後付けで考えて決めたものです。
30
+ その際に数式や英文の形式を借りてはいますが、そのままの意味であるとは限らないので
31
+ 他所での解釈は一旦棚上げして考えるのが、プログラム言語を理解する早道だと思います。

1

誤字の訂正 祖語→齟齬

2020/04/15 07:13

投稿

kozuchi
kozuchi

スコア1193

answer CHANGED
@@ -16,7 +16,7 @@
16
16
  > b = a
17
17
 
18
18
  が、変数a の値を 変数b に入るという処理を示すということにするのが、
19
- 便利だったので、数学の数式との意味の祖語は無視されたのです。
19
+ 便利だったので、数学の数式との意味の齟齬は無視されたのです。
20
20
 
21
21
  実際、私が最初にこの言語仕様に出会った時思ったことは、「便利だな」「なるほどそうやるのか」程度で、質問者の方が持たれたような疑問は(数学の成績が悪かったせいか)あまり考えませんでした。
22
22