正規表現を見る1つの方法は、次の事実の建設的な証明としてです。小さな言語のセットから始めて、小さな固定された一連のクロージャープロパティを介してそれらを組み合わせることにより、正規言語を構築することが可能です。具体的には、空の言語、空の文字列を含む言語、およびすべての1文字の文字列の言語から始める場合、ユニオン、連結、およびKleeneスターを使用して、すべての可能な通常の言語を組み立てることができます。
すべてのコンテキストフリー言語のみを生成するために使用できる基本言語とクロージャープロパティのセットはありますか?(明確にするために、私はすべてのCFLに正規表現を記述できるかどうかを尋ねていませんが、不可能であることを知っています。代わりに、CFLの正規表現のようなフレームワークを設計する方法があるかどうか疑問に思っています。同じ基本原則。)
1
そのため、参照用の質問の1つに必要なものが含まれている場合があります。
—
ラファエル