文脈自由言語をキャプチャする正規表現の拡張機能はありますか?


25

文脈自由文法(CFG)を含む多くの論文で、そこに提示されているそのような文法の例は、しばしば生成する言語の簡単な特徴づけを認めています。例えば:

SaaSb
S

生成、{a2ibi|i0}

SaSb
SaaSb
S

生成、及び{aibjij0}

SaSa
SbSb
S

生成{wwRw(a|b)}、又は同等(ここで、はキャプチャされた部分を指し)。{((a|b))1((a|b))2p1=p2R}p1(...)1

上記の例はすべて、インデックス()、これらのインデックスの単純な制約()、および正規表現へのパターンマッチングを追加することで生成できます。これにより、すべてのコンテキストフリー言語が正規表現の何らかの拡張によって生成できるかどうか疑問に思います。aii>j

コンテキストフリー言語のすべてまたはいくつかの重要なサブセットを生成できる正規表現の拡張機能はありますか?


3
インデックスと制約の追加が強力すぎることに注意してくださいではないaを定義できます。anbncn
ショール

回答:


34

はいあります。コンテキストフリーの式を定義して、次の文法によって生成される用語にします。

g::=ϵEmpty string|cCharacter c in alphabet Σ|ggConcatenation|Failing pattern|ggDisjunction|μα.gRecursive grammar expression|αVariable expression

これは、一般的な固定小数点演算子と変数参照メカニズムに置き換えられたKleene starを除く、通常の言語のすべてのコンストラクターです。(Kleeneスターはとして定義できるため、必要ありません。)μα.ggμα.ϵgα

文脈自由表現の解釈には、自由変数の解釈を考慮する必要があります。したがって、環境 を変数から言語へのマップ(つまり、サブセット )に定義し、をを除くすべての入力でように動作する関数とする、およびその言語返しのための。ρΣ[ρ|α:L]ραLα

次に、次のようにコンテキストフリー式の解釈を定義します。

[[ϵ]]ρ={ϵ}[[c]]ρ={c}[[g1g2]]ρ={w1w2|w1[[g1]]ρw2[[g2]]ρ}[[]]ρ=[[g1g2]]ρ=[[g1]]ρ[[g2]]ρ[[α]]ρ=ρ(α)[[μα.g]]ρ=nNLnwhereL0=Ln+1=Ln[[g]][ρ|α:Ln]

Knaster-Tarskiの定理を使用すると、解釈が式の最小固定であることが簡単にわかります。μα.g

文脈自由な文法と同じ言語を派生する文脈自由な表現を与えることができることを示すことは簡単です(完全に些細ではありませんが)。非自明性は、コンテキストフリー式にネストされた固定ポイントがあり、コンテキストフリー文法がタプル上の単一の固定ポイントを提供するという事実から生じます。これには、Bekicの補題を使用する必要があります。これは、ネストされた固定ポイントを製品上の単一の固定ポイントに変換できることを正確に示しています(逆も同様です)。しかし、それだけが微妙です。

編集:いいえ、私はこのための標準的な参照を知りません:私は自分の興味のためにそれを作りました。しかし、それは十分に明白な構造であり、以前に発明されたと確信しています。カジュアルなグーグルは、Joost Winter、Marcello Bonsangue、およびJan Ruttenの最近の論文 Context-Free Languages、Coalgebraicallyを明らかにします。


これはすごいです。これに標準的な名前や参照はありますか?
アレックス10ブリンク

5
Arto Salomaaは、1973年に彼の著書「Formal Languages」でこれを取り上げています。彼はそれらを「通常の表現」と呼んでいます。
ティムシェーファー14

3

MathOverflowには、生成関数がホロノミックな言語に関する密接に関連した質問(およびいくつかの回答)がありました。

興味深いことに、上記ののセマンティクスのNeelの定義は、暗黙的なSpecies定理を介した再帰的なSpecies方程式に対するSpeciesソリューションの存在の(構成的な)証明に正確に対応ています。残念ながら、彼の証明のアウトラインには微妙な間違いも含まれている必要があります。物事が「無限」に進む場合があるからです。言い換えれば、文法で定義されている変換のヤコビアンには、必要な非特異であるという条件があります。これはおそらく、ヤコビアンのこの状態を保証する1つの方法として、ボンサング・ルッテンが固定小数点の保護を必要とする理由です。μ


AFAICT、Winterなどは、の微分を取ることにより、のBrzozowski微分を確実に取ることができるようにするために、ガードを必要とします。μα.g[μα.g/α]g
ニールクリシュナスワミ

1

私たちは最近、まさにそれを行うフレームワークの概要を公開しました。comp.compilersの下で、いくつかのリンクとともに通知を送信しました。

新しい開発は、Chomsky-Schuetzenberger定理に基づいて行われ、この結果の完成と見なされる可能性があります。チョムスキー自身は、開発について知らされており、「追いつく」という願望を示しています。

この開発に加えて、コンテキストフリー式の2つの別個の定式化の同等性も確立します。1つは「最小固定小数点」ミュー計算形式(元はGruska、Yntema、McWhirterによる)の拡張/完了です。 2014年に並べ替えの最終的な定式化を受け、2008年に公開されました。


4
回答自体にすべての関連情報を含めてください。「comp.compilersの下を見る」というのは、今では役に立たない答えであり、数か月後にはまったく役に立たなくなるでしょう。
エミールイェジャベクはモニカをサポートします

それは全く間違っています。Comp.compilers(ちなみに、このサイトや他のブログとは異なり)は永久にアーカイブされます。必要な詳細がすべて表示されます。また、最近投稿された記事にも多くのリンクがあります。また、ブログサイトとは異なり、外部に公開されており、より多くのユーザーに役立ちます。USENETで何かを見つけるのに困難はないはずです-ここで、このようなクエリに対処し、議論する必要があります。あなたが困難を持っている場合、ここにリンクがあります。groups.google.com/forum/#!topic/comp.compilers/YCa5jHUR1iQ
NinjaDarth

2
問題は、アーカイブされていないということではなく、アーカイブが膨大であることです。アーカイブを調べると、あなたの投稿が一番近くにありますが、誰かがこの答えを数か月または数年先に見ると、どこから掘り始めればいいのかわかりません。読者にもっと特定の場所を指し示すことができるとき、読者に長くて信頼できない検索をさせることはIt慢で失礼です。今、私はあなたのためにそれをやった。30秒ほどかかりました。あなたはそれを自分でやったかもしれません。
エミールイェジャベクは
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.