タグ付けされた質問 「formal-grammars」

形式文法、形式言語の生成的記述に関する質問。

2
正規表現はですか?
Type 3 Grammarがある場合、プッシュダウンオートマトンで(スタックで操作を行わずに)表現できるため、コンテキストフリー言語を使用して正規表現を表現できます。しかし、解析テーブルを構築せずに、タイプ3の文法が、LL(1)、SLR(1)などであるかどうかを知ることはできますか?LR(1)LR(1)LR(1)LL(1)LL(1)LL(1)SLR(1)SLR(1)SLR(1)

1
通常の言語とのコンテキストの交差
文脈自由言語Lと通常言語Mの共通部分は、常に文脈自由であると言われています。クロスプロダクト構築の証明は理解しましたが、なぜコンテキストフリーであるが通常ではないのかはまだわかりません。 このような共通部分によって生成される言語には、PDA と DFAの両方で受け入れられる文字列があります。DFAで受け入れられているので、通常の言語ではないでしょうか?さらに、交差点が規則的である場合、すべての正規言語にも文脈がないため、文脈がないことを意味します。 誰かがそのような交差点によって得られた言語が規則的でない理由を私に説明できますか?

2
決定可能な非コンテキスト依存言語
日常の問題を記述するために作成されたほとんどの言語は、コンテキストに依存していると言えます。一方、再帰的ではない、または再帰的に列挙できない言語を見つけることは可能であり、難しくありません。 これらの2つのタイプの間には、再帰的な非コンテキスト依存言語があります。ウィキペディアはここに 1つの例を与えます: コンテキストに依存しない再帰言語の例は、EXPSPACEが難しい問題である再帰言語、たとえばべき乗を伴う同等の正規表現のペアのセットです。 質問:決定可能であるが、コンテキストに依存しない他の問題は何ですか?このクラスの問題は、決定可能なEXPSPACEハードと同じですか?

2
IELR(1)-パーサーとは何ですか?
バイソンの使い方を自分で教えようとしています。manson bison(1)はbisonについて述べています: LALR(1)、IELR(1)、または標準のLR(1)パーサーテーブルを使用して、決定性LRまたは汎用LR(GLR)パーサーを生成します。 IELRパーサーとは何ですか?World Wide Webで見つけた関連記事はすべて有料です。

1
やったときは意味を獲得するには、「左から右へのスキャン、右端の派生?」
ウィキペディアの記事によると、 L は「左から右へのスキャン」を意味し、「R」は「右端の派生」を意味します。ただし、文法に関するKnuthの元の論文では、(610ページ)を「バインドされた左から右に翻訳可能」な言語として定義しています。L R (k )LR(k)LR(k)L R (k )LR(k)LR(k)L R (k )LR(k)LR(k)kkk この新しい用語は、解析の「左から右へのスキャン、左端の派生」を補完するために選択されたと推測しています。とはいえ、用語の意味がいつ変わったかはわかりません。L L (k )LL(k)LL(k) 新しい頭字語の由来を知っている人はいますか?L R (k )LR(k)LR(k)

2
文脈自由文法の前後セットは常に文脈自由ですか?
してみましょう文脈自由文法であること。端末との非終端記号の文字列あると言われている文形式のあなたが制作適用することによってそれを得ることができればの開始シンボルにゼロ回以上。ましょうのsentential形態の集合。GGGGGGGGGGGGSSSSF(G)SF⁡(G)\operatorname{SF}(G)GGG ましょうおよびletのサブこと -我々は、呼び出し断片の。さあα∈SF(G)α∈SF⁡(G)\alpha \in \operatorname{SF}(G)ββ\betaαα\alphaββ\betaSF(G)SF⁡(G)\operatorname{SF}(G) Before(β)={γ | ∃δ.γβδ∈SF(G)}Before⁡(β)={γ | ∃δ.γβδ∈SF⁡(G)}\operatorname{Before}(\beta) = \{ \gamma \ |\ \exists \delta . \gamma \beta \delta \in \operatorname{SF}(G) \} そして After(β)={δ | ∃γ.γβδ∈SF(G)}After⁡(β)={δ | ∃γ.γβδ∈SF⁡(G)}\operatorname{After}(\beta) = \{ \delta \ |\ \exists \gamma . \gamma \beta \delta \in \operatorname{SF}(G) \}。 ある及び文脈自由言語は?が明確な場合はどうなりますか?が明確な場合、およびも明確なコンテキストフリー言語で記述できますか?後(β )G G 前(β )後(β )Before(β)Before⁡(β)\operatorname{Before}(\beta)After(β)After⁡(β)\operatorname{After}(\beta)GGGGGGBefore(β)Before⁡(β)\operatorname{Before}(\beta)After(β)After⁡(β)\operatorname{After}(\beta) …

3
文脈自由文法にパラメータを追加するとどうなりますか?
私は、インデンテーションに敏感な言語の文法を考えていましたが、パラメータと組み合わせた場合、CF文法がトリックを行うようです。例として、ANTLRのような形式の単純化されたPython文法の次のフラグメントを考えます。 // on top-level the statements have empty indent program : statement('')+ ; // let's consider only one compound statement and one simple statement for now statement(indent) : ifStatement(indent) | passStatement(indent) ; passStatement(indent) : indent 'pass' NEWLINE ; // statements under if must have current indent plus 4 spaces ifStatement(indent) …

2
「生産」という言葉は、どのようにしてコンピューターサイエンスの文脈で「ルール」という言葉と同義語になったのでしょうか。
私は正式な言語と生産ベースシステム(ルールベースシステム)を研究していますが、これら2つの「生産」と「ルール」という言葉がコンピューターサイエンスの多くの文脈で同じことを意味する理由について少し混乱しています。 英語では、同じことを意味していないようです。私は英語のネイティブスピーカーではありませんが、ルールは人について話すときにやるべき/すべきでないこと、または何度も繰り返されると同じ結果が得られることを指し、いくつかのルールで機能すると言います(毎回同じであるいくつかのプロトコル/手順によって定義される動作方法)。 生産とは、完全に異なるものを指します...現在製造/生産されている物理的な商品またはソフトウェアのフェーズ。物理的または芸術的作品、文章、絵、誰かの身体的または精神的な能力で作られたものを作る行為。特定のものが生産されると言います。 しかし、コンピューターサイエンスでは、英語ではまったく異なるものを表すこれらの単語は、CSでは同じものを意味します。この用語はどのようにしてCSでも似たものになりました。 コンピュータサイエンスのための何らかの語源辞書がありますか。コンピュータサイエンスの用語がどのようになったのかを教えてくれる辞書? ところで、興味深い事実:どちらの生産もルールもこのStack Exchangeサイトのタグではありません。

2
{ww | …}コンテキストフリー?
言語定義LLLとしてL = { 、B } *を - { wはW | W ∈ { 、B } * }L={a,b}∗−{ww∣w∈{a,b}∗}L = \{a, b\}^* - \{ww\mid w \in \{a, b\}^*\}。つまり、LにLLは、2回繰り返される単語として表現できない単語が含まれています。あるLのLL文脈自由かどうかは? LLLをa ∗ b ∗ a ∗ b ∗と交差させようとしましたa∗b∗a∗b∗a^*b^*a^*b^*が、まだ何も証明できません。パリクの定理も調べましたが、助けにはなりません。

5
非曖昧性は決定論とどのように違いますか?
「決定論的文脈自由文法」などの表現で「決定論的」が意味するものを理解しようとしています。(このフィールドには、より決定的な「もの」があります)。最も手の込んだ説明よりも例を挙げていただければ幸いです!可能なら。 混乱の主な原因は、文法のこの特性が(非)曖昧性とどのように異なるかを理解できないことです。 それが何を意味するかを見つけるのに最も近かったのは、D。Knuthの論文からの引用です。 、左から右への言語の翻訳に関するです: Ginsburg and Greibach(1965)は、決定論的言語の概念を定義しています。セクションVでは、これらがまさにLR(k)文法が存在する言語であることを示しています あなたがに着くとすぐに円形になります Section Vそこには、LR(k)パーサーが解析できるのは決定論的言語であると言われているからです... 以下は、「あいまいな」の意味を理解するのに役立つ例です。ご覧ください。 onewartwoearewe one war two ear eweまたはとして解析できますo new art woe are we -文法がそれを許可する場合(たとえば、私がリストしたばかりのすべての単語を持っている)。 このサンプル言語を(非)決定論的にするには、何をする必要がありますか?(たとえば、単語を削除できますo文法からをして、文法が曖昧にならないようにすることができます)。 上記の言語は決定的ですか? PS。この例は、Godel、Esher、Bach:Eternal Golden Braidの本からのものです。 例の言語の文法を次のように定義するとしましょう。 S -> A 'we' | A 'ewe' A -> B | BA B -> 'o' | 'new' | 'art' | 'woe' …

2
演算子の左関連付けを維持しながら、文法の左再帰を削除する
この演習に問題があります: λ計算の次のあいまいな文法をGとします。 E → v | λv.E | EE | (E) ここで、Eは単一の非終端記号、λv.EはEの変数vに関する抽象化を表し、EEはアプリケーションを表します。 L(G ')= L(G)となるようなLL(1)文法G'を定義し、次の通常の規則を課すことでGのあいまいさを解決します。 抽象化は正しい連想です。 アプリケーションは関連付けられたままです。 アプリケーションは、抽象化よりも優先されます。 G 'のLL(1)解析テーブルと、文字列の解析時に取得された解析ツリーを表示しますλv1. λv2. v1v2v1。 あいまいさの設定の優先順位と関連付けを排除し、次の文法を取得しました。 E -> EF | F F -> λv.G | G G -> (E) | v これはLL(1)ではありません。これは、生成E -> EFが再帰的に行われるためです。しかし、私が得るその生産から左再帰を排除します: E -> FE¹ E¹-> FE¹ | ɛ F -> …

1
オートマトンの正規表現と文法の違い
オートマトンは初めてで、昨日だけ正規表現の簡単な紹介を受けました。正規表現を定義するさまざまなルールを読みました。しかし、正規表現と言語の文法を区別することはできません(正規表現の文法は教えられていません)。 文法は言語で有効な文字列を生成するのに役立つことを理解していますが、それが正規表現を定義するためのルールの状態です。それで、違いはどこにありますか?教授に聞いたところ、彼は正規表現は言語の最も基本的な文字列であり、文法はあらゆる言語の規則のセットであり、正規表現よりも高次であると言った。誰かがさらに詳細な情報を提供できますか?

3
CFGのチョムスキー標準形のような標準形の重要性
文脈自由文法は文脈自由言語を表すために使用できることを理解しています。曖昧さがあるかもしれません。ChomskyやGreibachの正規形のような正規形もあります。その必要性を理解できませんでした。 なぜそれらは言語の理論において重要なのですか?私が言及したすべての教科書は、これらの通常の形式について語っていますが、その重要性については何も語っていません。

4
誰かが、文脈依存の文法の単純ではあるがおもちゃではない例を与えることができますか?
文脈依存文法を理解しようとしています。 言語が好きな理由がわかります {ww∣w∈A∗}{ww∣w∈A∗}\{ww \mid w \in A^*\} {anbncn∣n∈N}{anbncn∣n∈N}\{a^n b^n c^n \mid n\in\mathbb{N}\} 文脈自由ではないが、型付けされていないラムダ計算に似た言語が文脈依存であるかどうかを知りたい。 シンプルだが、おもちゃではない例(上記のおもちゃの例を検討します)、いくつかの生産規則のために、たとえば記号の文字列の有無を伝えることができる文脈依存文法の例を見てみたい現在スコープ内にあります(たとえば、関数の本体を生成する場合)。 文脈依存文法は、未定義/未宣言/非バインド変数を構文上の(意味ではなく)エラーにするほど強力ですか?

2
すべての状況依存言語は決定可能ですか?
私は通過つもりだったのWikipediaの定義は文脈依存言語と私はこれを見つけました: 言語の各カテゴリは、そのすぐ上のカテゴリの適切なサブセットです。各カテゴリのオートマトンと文法には、そのすぐ上のカテゴリに同等のオートマトンまたは文法があります。 この記事の注文では、線形限定オートマトンが決定者のすぐ下にあることがわかりました。これが当てはまる場合、LBAでのすべての計算はある時点で停止します(すべてのLBAが決定者になるため)。しかし、停止することなくLBAで同時に実行できる計算があるかもしれません。たとえば、LBAで計算を書くことができます。 テープの最初の記号を読んで右に移動します。 次のシンボルを読み、左に戻ります。 この(役に立たない)計算(明らかにLB計算)は、左右に振動し続け、停止することはないため、決定者にはなれません。どこが間違っていると思いますか?

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