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

回答編集履歴

3

重複部分の削除、まとめたり、サブタイトルつけたり

2017/07/18 02:24

投稿

miyabi-sun
miyabi-sun

スコア21473

answer CHANGED
@@ -2,19 +2,33 @@
2
2
  「プログラミング言語と数学の共通点は何でしょう?」って質問には、
3
3
  「そもそも何も共通点なんてねーよ」が正解。
4
4
 
5
- プログラムやコピュータ本業は「仕事の自動化」
5
+ ## 何故共通点が無いはずのプログラグ言語と数学が似てる
6
+
6
- でも膨大な計算を任せたい数学者に需要が多くあり早い段階で受け入れられたので、
7
+ コンピュータは膨大な計算を任せたい数学者に需要が多くあり早い段階で受け入れられたので、
7
8
  C言語を始めとする一部のプログラミング言語が数式に寄せて設計されたという話。
8
9
 
9
10
  ところがC言語の本業は命令を処理することであり、数学を完全再現することじゃない。
10
11
  そもそも上付き文字や下付き文字や分数がパソコン上で表現出来ない以上、数列や階乗なんて表現するのは絶対無理。
11
12
 
12
13
  従って、プログラミング言語は数学の式の模倣(エミュレート)でしかない。
13
- 当然再現率もプログラミング言語によってまちまちってわけ。
14
- まぁ、階乗の代わりに`pow(a, b)`という関数を用意しました、数列は無いけど配列はある、みたいな別の書き方や逃げ方で数学の多くの部分を再現することに成功しているけど、その辺も言語次第かな
14
+ 階乗の代わりに`pow(a, b)`という関数を用意しました、数列は無いけど配列はある、みたいな別の書き方や逃げ方で数学の多くの部分を再現することに成功しているけど、再現率プログラミング言語によってまちまちってわけ
15
15
 
16
- その模倣(数学の式の再現)に関しては、他の回答者さんが答えてくれているので割愛。
16
+ 数学の式の再現に関しては、他の回答者さんが答えてくれているので割愛。
17
17
 
18
+ ## コンピュータの本来の役割って何?
19
+
20
+ でもコンピュータに求められる役割はそれだけじゃない。
21
+ コンピュータの本業は「仕事の自動化」になるわけだ。
22
+
23
+ だからプログラミングのもう一つのゴールは「ネイティブな文章の評価」。
24
+ もしこれに成功すれば、論理的思考が出来る全ての人間がコンピュータという超有能な秘書を駆使してバリバリ仕事をこなせるようになる。
25
+ こっちは50年程経った今もまだまだ試行錯誤中。
26
+
27
+ プログラミング言語はマイナーな言語も含めると200種類以上に登る。
28
+ その中には数学なんて知った事ではない、英文なんて知った事ではないと考えて作られたプログラミング言語も多数存在する。
29
+ 有名な言語で言うとSQLとかね。
30
+ (SQLはプログラミング言語ではないけど、ルールに沿って作られたネイティブの英文をデータベースに送りつけて望むデータを引き出す事ができる)
31
+
18
32
  ---
19
33
 
20
34
  以下、質問文の引用部分に対するツッコミ
@@ -27,17 +41,14 @@
27
41
  →2進数の計算は超得意だけど10進数の計算はできない
28
42
  →10進数計算できないとか論外!プログラミングを利用して10進数の計算を実現した
29
43
  →機械語じゃ使いづらい!簡単な英文を受け入れるアセンブラ言語が生まれた
30
- →アセンブラもやっぱり使いづらい!英文や数式をそのまま命令に認識して欲しい
44
+ →アセンブラも使いづらい!英文や数式をそのまま命令に認識して欲しい(高級言語の開発が急がれる)
31
- →高級言語の開発が急がれる ← 1960〜1970年頃の話
32
45
 
33
- コンピュータの自動化に真っ先に目をつけたのが膨大な計算を任せたい数学者達だった(ここは憶測だけど)
34
- また四則演算を表現することはわりと実装が簡単だったその理由の一つだろうね
46
+ 四則演算を表現することはわりと実装が簡単だったし需要あった
35
- 数式に寄り添うプログラミング言語が次々と生まれ、支持され、開拓されていった。
47
+ 数式に寄り添うプログラミング言語が次々と生まれ、支持され、開拓されていったという話
36
- (だから事象だけ見ればプログラミング言語の構文が数学に似たものというのは間違いではない)
37
48
 
38
- 、コンピュータ最終的ゴールはネイティブな文章評価。
49
+ その一つ(C言語)の言語を指して「似たものは当然」と言われても、
39
- もしこれに成功すれば、論理的思考が出来る全ての人間がコンピュータという超有能な秘書を駆使してバリバリ仕事をこなせるようになる。
40
- ちは50年程経っ今もままだ試行錯誤中っ印象
50
+ 似るように作ったから似るのは当然でしょ
41
51
 
42
- プログラミング言語はマイナーな言語も含めると200種類以上に登る。
43
- その中には数学なんて知っ事ではない英文なんて知った事でないと考えて作られたプログラミグ言語も多数存在する。
52
+ も新しいものを作る時別の分野の再現や発想を得りするけどその時スパイア元の名前がそのまま使われ事が多い
53
+ ほら、セーターだってタートルネック(亀の襟)とか名付けたりするじゃん?
54
+ あれと同じで、コンピュータに変数や関数を数学の世界から拝借してその機能を作ったって話。

2

高級言語絡みの一文を追加

2017/07/18 02:23

投稿

miyabi-sun
miyabi-sun

スコア21473

answer CHANGED
@@ -28,11 +28,12 @@
28
28
  →10進数計算できないとか論外!プログラミングを利用して10進数の計算を実現した
29
29
  →機械語じゃ使いづらい!簡単な英文を受け入れるアセンブラ言語が生まれた
30
30
  →アセンブラもやっぱり使いづらい!英文や数式をそのまま命令に認識して欲しい
31
+ →高級言語の開発が急がれる ← 1960〜1970年頃の話
31
32
 
32
- コンピュータの自動化に真っ先に価値見出したの膨大な計算を任せたい数学者達だった
33
+ コンピュータの自動化に真っ先につけたの膨大な計算を任せたい数学者達だった(ここは憶測だけど)
33
34
  また四則演算を表現することはわりと実装が簡単だったのもその理由の一つだろうね。
34
- 数式に寄り添うプログラミング言語が支持され、また優先的に開拓されていった。
35
+ 数式に寄り添うプログラミング言語が次々と生まれ、支持され、開拓されていった。
35
- (だから事象だけ見ればプログラミング言語の構文が数学に似たものとな
36
+ (だから事象だけ見ればプログラミング言語の構文が数学に似たものというのは間違いでは
36
37
 
37
38
  でも、コンピュータの最終的なゴールはネイティブな文章の評価。
38
39
  もしこれに成功すれば、論理的思考が出来る全ての人間がコンピュータという超有能な秘書を駆使してバリバリ仕事をこなせるようになる。

1

校正

2017/07/18 01:32

投稿

miyabi-sun
miyabi-sun

スコア21473

answer CHANGED
@@ -2,37 +2,41 @@
2
2
  「プログラミング言語と数学の共通点は何でしょう?」って質問には、
3
3
  「そもそも何も共通点なんてねーよ」が正解。
4
4
 
5
+ プログラムやコンピュータの本業は「仕事の自動化」
6
+ でも膨大な計算を任せたい数学者に需要が多くあり早い段階で受け入れられたので、
5
- 単にC言語を始めとする一部のプログラミング言語が数式に寄せて設計されただけ
7
+ C言語を始めとする一部のプログラミング言語が数式に寄せて設計されたという話
6
8
 
7
- 数学者の「数学でいうアレはどうやって表現すればいい?」要望からプログラミング言語は進化していったわけで、
8
- 結果大部分のプログラミング言語で数学の世界出来のもまた事実
9
+ ところがC言語の本業は命令を処理することあり、数学を完全再ことじゃない
10
+ そもそも上付き文字や下付き文字や分数がパソコン上で表現出来ない以上、数列や階乗なんて表現するのは絶対無理。
9
11
 
12
+ 従って、プログラミング言語は数学の式の模倣(エミュレート)でしかない。
13
+ 当然再現率もプログラミング言語によってまちまちってわけ。
14
+ まぁ、階乗の代わりに`pow(a, b)`という関数を用意しました、数列は無いけど配列はある、みたいな別の書き方や逃げ方で数学の多くの部分を再現することに成功しているけど、その辺も言語次第かな。
15
+
16
+ その模倣(数学の式の再現)に関しては、他の回答者さんが答えてくれているので割愛。
17
+
10
18
  ---
11
19
 
12
20
  以下、質問文の引用部分に対するツッコミ
13
21
 
14
22
  > 全ての情報を数値で表し、それを演算するのがコンピュータなのですから、プログラミング言語の構文が数学に似たものとなるのは当然です。
15
23
 
16
- 因果関係が逆
24
+ 因果関係が逆じゃない?
17
- そもそも数学の式っぽく命令を記述するC言語が流行ったからでしょ。
18
- 確かにC言語が後の言語に与えた影響はでかいけど、当然という要素はない。
19
- 何故ならばコンピュータの用途は「仕事の自動化」だから。
20
25
 
21
26
  コンピュータってのは元々機械語(0101)しか認識出来ない
27
+ →2進数の計算は超得意だけど10進数の計算はできない
28
+ →10進数計算できないとか論外!プログラミングを利用して10進数の計算を実現した
22
- →使いづらい!簡単な英文を受け入れるアセンブラ言語が生まれた
29
+ 機械語じゃ使いづらい!簡単な英文を受け入れるアセンブラ言語が生まれた
23
- →やっぱり使いづらい!英文や数式をそのまま認識して欲しい
30
+ アセンブラもやっぱり使いづらい!英文や数式をそのまま命令に認識して欲しい
24
31
 
25
- 要件はざっくり分けると以下の2つ
26
-
27
- - 自然な英文をダイレクトに命令に変換する
28
- - 数学の式をダイレクトを命令に変換する
29
-
30
32
  コンピュータの自動化に真っ先に価値を見出したのは膨大な計算を任せたい数学者達だった。
31
- そして四則演算を表現することはわりと簡単に実装が出来ことあり、数式をベースにするが作りやすかった
33
+ また四則演算を表現することはわりと実装が簡単だっ理由の一つだろうね
34
+ 数式に寄り添うプログラミング言語が支持され、また優先的に開拓されていった。
35
+ (だから事象だけ見ればプログラミング言語の構文が数学に似たものとなる)
32
36
 
33
- でもコンピュータの用途は仕事の自動化であり、計算だけがその対象ではない。
34
- 最終的なゴールはネイティブな文の評価になるわけだ
37
+ でも、コンピュータの最終的なゴールはネイティブな文の評価。
35
- っちはまだまだ試行錯誤の段階ではあるけどRuby等を見限りある程度形にはきたように思う
38
+ もしれに成功すれば論理的思考が出来全ての人間がコンピュータという超有能秘書を駆使しバリバリ仕事をこなせるようになる
39
+ こっちは50年程経った今もまだまだ試行錯誤中って印象。
36
40
 
37
41
  プログラミング言語はマイナーな言語も含めると200種類以上に登る。
38
- その中には数なんて知った事ではない、英文なんて知った事ではないと考えて作られたプログラミング言語も多数存在する。
42
+ その中には数なんて知った事ではない、英文なんて知った事ではないと考えて作られたプログラミング言語も多数存在する。