タグ付けされた質問 「regular-expressions」

正規表現に関する質問、正規言語を記述するための形式主義。

1
REGEXPはプログラミング言語でどのように実装されていますか?
変数の有無にかかわらず、パターンマッチング用のプログラミング言語でのREGEXPの解釈またはコンパイルに関する優れた一般的な論文はありますか?私はDFAの構築について簡単な説明を求めているのではなく、プログラミング言語の実装で実際にそれがどのように行われるか、そして単純または難しいと考えられるものについての実際の論文を求めています。言語間の違いに影響があると思います。REGEXPの実装方法に関する正式な論文も役に立ちます:-)

1
GNFAアルゴリズムを使用してNFAを正規表現に変換しますか?
だから私は長い間これを解読しようとしてきました、そして私はこの質問についてループに入っているようにほとんど感じます。 次のNFAがあるとします。 GNFAアルゴリズムを使用して、正規表現を取得します。 私はあなたが最初のステップ(空の状態を追加する)のために以下を持っていることを理解しています: 次のステップは、状態[q1]を削除することです。 最後に[q2]を削除すると、次のようになります。 しかし、他の人が持っている答えがある: 私が得たとして意味をなさない、?GNFA(一般化非決定性有限オートマトン)は次のように記述されます。(∪ Bb∗a)∗bb∗(a∪bb∗a)∗bb∗(a \cup bb^*a)^*bb^*a∗B (B ∪ Aa∗b)∗a∗b(b∪aa∗b)∗a^*b(b \cup aa^*b)^* GNFAはNFAに似ていますが、特定のルールに従う必要があります。 受け入れ状態は1つだけです 初期状態には遷移がありません 受け入れ状態には、そこから出てくる遷移はありません。 遷移は、アルファベットの記号だけでなく、任意の正規表現を表すことができます。記号は、正規表現の一種であることに注意してください。 さらに、次のようにNFAをGNFAに変換する場合があります。 ε遷移を伴う新しい開始状態を古い開始状態に追加する 古い受け入れ状態からのε遷移を持つ新しい受け入れ状態を追加します。 矢印に複数のラベルがある場合、または2つの状態の間に複数の矢印がある場合は、それらをそれらのラベルの和集合(または)に置き換えます

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.