• ベストアンサー

計算理論とオートマトン: なぜ計算が言語と関係ある?

「計算理論とオートマトン言語理論」という本を読んでいます。 (バカな質問なんだろうとは思いますが)根本的に分からないことがあります。 (1)なぜ計算が言語と関係あるのでしょうか?計算って、例えば「2の平方根を求める」みたいなものですよね?オートマトンの計算の話が、いつの間にか、オートマトンの「言語受理(?)」の話になっていっているのですが・・・ (2)ここでの「言語」は、日常の言葉とは関係ないのでしょうか?「文法」とかの言葉も出てくるので混乱しています。

質問者が選んだベストアンサー

  • ベストアンサー
  • R_Earl
  • ベストアンサー率55% (473/849)
回答No.2

ANo.1ですが、2箇所訂正と加筆です。 (誤1) **************************************** 例えば+, -, ×, ÷に「四則演算子」という名前を与えます。 そうすると、普段私たちが使っている2数の計算(例えば3 + 5等)は、 数 四則演算 数 という文法をしていると考えられます。 決して 四則演算 数 数 という形はしていませんよね (この形に従うと、計算式は+ 3 5のように記述することになります)。 **************************************** (正1) **************************************** 例えば+, -, ×, ÷に「四則演算子」という名前を与えます。 そうすると、普段私たちが使っている2数の計算(例えば3 + 5等)は、 数 四則演算子 数 という文法をしていると考えられます。 私たちはこの文法とあっている「3 + 5」や「8 ÷ 3」等の計算式を、 正しい計算式だと認識します。 「3 +× 4」のような計算式に違和感を感じるのは、 「3 +× 4」がこの文法に合致していないからです。 もし仮に、2数の四則演算の数式の文法が 四則演算子 数 数 だとしたら、 計算式は「+ 3 5」や「÷ 8 2」のように記述することになります。 **************************************** (誤2) **************************************** 先ほどの計算式の文法「数 四則演算 数」も同じです。 「数」や「四則演算」等に対応する語句を入れれば、ちゃんとした計算式の出来上がりです。 **************************************** (正2) **************************************** 先ほどの計算式の文法「数 四則演算子 数」も同じです。 「数」や「四則演算子」等に対応する語句を入れれば、ちゃんとした計算式の出来上がりです。 ****************************************

white-tiger
質問者

お礼

ありがとうございます。 文法にもいろいろあって、ここでは「計算の文法」を考える、ということですね。

その他の回答 (1)

  • R_Earl
  • ベストアンサー率55% (473/849)
回答No.1

プログラミング言語というものがあります。 これに何故「言語」という言葉があてられているのかを考えてみてください。 > (1)なぜ計算が言語と関係あるのでしょうか? この分野では、「計算式も言語である」と考えます。 計算式にも、ちゃんと文法があるんです。 例えば「3 +× 4」という計算式に違和感を感じませんか? 違和感を感じるのは、これが「計算式言語の文法」に沿ってないからです。 例えば+, -, ×, ÷に「四則演算子」という名前を与えます。 そうすると、普段私たちが使っている2数の計算(例えば3 + 5等)は、 数 四則演算 数 という文法をしていると考えられます。 決して 四則演算 数 数 という形はしていませんよね (この形に従うと、計算式は+ 3 5のように記述することになります)。 > (2)ここでの「言語」は、日常の言葉とは関係ないのでしょうか?「文法」とかの言葉も出てくるので混乱しています。 関係ありです。 というより、「日常の言葉(自然言語)の文法」も「計算式の文法」も ほとんど同じものです。 英文法で習ったSVCやらSVO等の文型が、 先ほどの「計算式の文法」に合致すると思います。 例えばSVOOは「主語 述語 目的語 目的語」を表します。 英文を作る時には、この「主語」や「述語等」の部分に、対応する語句を当てはめますよね。 先ほどの計算式の文法「数 四則演算 数」も同じです。 「数」や「四則演算」等に対応する語句を入れれば、ちゃんとした計算式の出来上がりです。 オートマトンで扱うものは、「しっかりと文法に従っているもの」となります。 日本語や英語は多少文法にそぐわない書き方をしたりしても、意味が通じる場合がありますが、 オートマトンはそういったことができません。 プログラムを書く際、ちょっとでも文法間違いをすると (この場合の「文法」は「プログラミング言語の文法」を意味します) コンピューターが受理しないことが多いのもそのためです。