これが故障です:
重要な機能:
* ルールの複雑さに関する制限なし: 無制限の文法は、複数のコンポーネントと再帰を備えた複雑なルールを使用できます。
* 無制限のルール数: 文法が持つことができるルールの数に制限はありません。
* 無制限の非末端シンボル: 文法は、必要な数の非末端記号を使用できます。
チューリングマシンと同等:
無制限の文法は、計算の理論的モデルであるチューリングマシンと同等です。これは、チューリングマシンで認識できる言語は、無制限の文法によっても説明できることを意味します。
実際の制限:
無制限の文法は理論的に強力ですが、いくつかの理由により、実際にはめったに使用されません。
* 複雑さ: ルールの複雑さは非常に高くなる可能性があり、それらを理解し、分析し、実装することを困難にします。
* あいまいさ: 無制限の文法は、複数の異なるルールアプリケーションによって単一の文字列を導出できる曖昧さにつながる可能性があります。
* 構造の欠如: 彼らは言語に構造を課していないため、言語の特性について推論して理解することを困難にすることができます。
例:
* タイプ0文法: チョムスキーの階層では、タイプ0の文法は無制限の文法と同等です。
* 標準システムのポスト: これらは、チューリングにコンパートルできる言語を説明するために使用できる別の形式主義であり、無制限の文法と同等です。
代替案:
実際には、次のような他のタイプの文法がより一般的に使用されています。
* コンテキストフリーグラマー: これらはよりシンプルで作業しやすく、自然言語と人工言語の多くの側面を説明するのに十分です。
* コンテキストに敏感な文法: これらはコンテキストのない文法よりも強力ですが、ルールの複雑さにはまだ制限があります。
概要:
無制限の文法は、あらゆる言語を説明できる強力な理論的ツールです。ただし、それらの複雑さと構造の欠如により、ほとんどの実際のアプリケーションでは非現実的です。 それらは主に、正式な言語と計算能力の理論的研究で使用されています。
