2017-08-10 18 views

答えて

1

自然言語はかなり柔軟です。

また、自然言語は、文脈自由文法で完全に記述することはできません。たとえば、英語では、「それぞれ」の句(他のいくつかの構文とともに)が文法を混乱させます。確かにneither C# nor Java are context-free eitherthis articleは初期のC#の文脈自由文法を持っていると主張しているが)プログラミング言語は文脈自由文法を持つ可能性が非常に高い。

最も大きな違いは、自然言語の文法はすべてあいまいさを許す一方、あいまいさを避けるためにプログラミング言語は慎重に設計されていることです。次のステートメントを考えてみましょう:

公園内の望遠鏡でケビンソングを見てください。

望遠鏡を使用していた人は誰ですか - ジョンまたはケビンですか?そして彼らのうちのどれが公園にいたのですか?ケビン、ジョン、望遠鏡?いくつかの解釈:

  • 望遠鏡は公園内にありました。ジョンはそれを使用していました。ケビンは彼がそれを使っている間にジョンを見た。
  • ジョンは公園にいた。ケビンは望遠鏡を使ってジョンを公園で見守った。
  • 望遠鏡が公園にありました。ケビンはそれを使ってジョンを見ました。

プログラミング言語は、慎重にあなたがそのような文章を書き留めることができることを避けるために設計されています。

関連する問題