ホームページ >バックエンド開発 >C++ >C は本当にコンテキストフリーなのか: その文法と解析の複雑さの間の矛盾を探る?

C は本当にコンテキストフリーなのか: その文法と解析の複雑さの間の矛盾を探る?

DDD
DDDオリジナル
2024-12-10 06:37:13759ブラウズ

Is C   Truly Context-Free: Exploring the Discrepancy Between its Grammar and Parsing Complexity?

C のチョムスキー階層分類の決定 : 解析プロパティの分析

C は文脈依存性を示すとよく主張されてきましたが、その解析特性を調べてみると正式な文法を理解すると、別の話が明らかになります。文脈自由言語の定義によれば、各文法規則の左側には 1 つの非終端記号が必要です。一方、文脈依存文法では、左側で終端記号と非終端記号を任意に組み合わせることができます。

チョムスキー階層分類に厳密に従う場合、C は文脈に分類されます。 「C プログラミング言語」の付録 A を徹底的に検査すると、左側に非終端記号のみを含む文法規則が示されているため、無料です。

しかし、詳しく調査すると、 C の解析プロセス自体がはるかに複雑な問題であることが判明します。提示されたプログラム例は、C 構文の構文の正確さが、指定された整数の素数の計算に依存することを示しています。これは、文脈自由文法の能力を超える計算レベルを意味します。

生成物の両側に制約のないシンボル シーケンスを許可する、無制限またはタイプ 0 文法の領域に踏み込むと、次のような結果が得られます。 C 解析のチューリング完全性を認める分類。

したがって、C の複雑さを完全に捉えるには解析を行うと、文脈自由文法と文脈依存文法の両方の範囲を超越する言語として分類することが必要になります。これは、無制限またはタイプ 0 の文法を必要とする分類を占めており、その解析プロセスの奥深さと多面性を強調しています。

以上がC は本当にコンテキストフリーなのか: その文法と解析の複雑さの間の矛盾を探る?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。