その理由は次のとおりです。
* コンテキストフリー言語(CFL): これらは、プッシュダウンオートマトン(PDA)によって認識できる言語です。 PDAには、有限の制御に加えてスタックがあり、情報を覚えておくことができます。これにより、CFLは通常の言語よりも強力になります。
* 決定論的なコンテキストフリー言語(DCFL): これらは、決定論的プッシュダウンオートマトン(DPDA)によって認識できるCFLのサブセットです。 DPDAは、入力記号とスタックの上部に基づいて、特定の状態で1つのアクションのみを実行できます。
* 通常の言語: これらは、有限状態オートマトン(FSA)によって認識できる言語です。 FSAにはスタックがなく、有限量の情報しか覚えていません。
例:
言語l ={a^n b^n | n≥0}は、定期的ではないDCFLの古典的な例です。
* なぜそれがDCFLであるか: DPDAは、「A」が「A」を読み取る 'A'のスタックに「a」を押し、読み取りする各 'b'に対して「a」をポップすることでlを認識できます。 DPDAは、すべての入力を読み取った後にスタックが空であるかどうかを受け入れます。
* なぜそれが規則的ではないのか: 正規言語は、有限数の状態を持つFSAによってのみ認識されます。 Lを認識するには、FSAが読んだ 'aの数を覚えておく必要があります。 nは任意に大きくなる可能性があるため、これは有限数の状態を持つFSAにとって不可能です。
キーテイクアウト:
DCFLはCFLSのサブセットであり、一般的なCFLよりも制限されていますが、通常の言語よりも強力です。 DPDAで認識できる言語がありますが、FSASではありません。
