タグ付けされた質問 「context-free」

(同等に)文脈自由文法によって記述された、または(非決定的)プッシュダウンオートマトンによって受け入れられた言語のセットに関する質問。

2
文法とオートマトンの言語の決定可能性
これは大学でCSのコースで研究に関連した質問であることに注意してください、それは宿題ではなく、見つけることができ、ここで 2011年秋exam2下。 過去の試験で見ている2つの質問を以下に示します。それらは関連しているようです、最初: させて F I N I T EC F G= { &lt;G&gt; ∣ G はContext Free Grammarです 。L(G )| &lt; ∞ }FINITECFG={&lt;G&gt;∣G is a Context Free Grammar with |L(G)|&lt;∞}\qquad \mathrm{FINITE}_{\mathrm{CFG}} = \{ < \! G \! > \mid G \text{ is a Context Free Grammar with } |\mathcal{L}(G)|<\infty …

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


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
{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 -&gt; A 'we' | A 'ewe' A -&gt; B | BA B -&gt; '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 -&gt; EF | F F -&gt; λv.G | G G -&gt; (E) | v これはLL(1)ではありません。これは、生成E -&gt; EFが再帰的に行われるためです。しかし、私が得るその生産から左再帰を排除します: E -&gt; FE¹ E¹-&gt; FE¹ | ɛ F -&gt; …

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

2
すべてのコンテキストフリー言語と通常言語は効率的に決定可能ですか?
この図に出くわしたのは、コンテキストフリー言語と通常言語が効率的な問題の(適切な)サブセット(おそらく)であることを示しています。効率的な問題は決定可能なすべての問題のサブセットであることを完全に理解しています。なぜなら、それらを解決することはできますが、非常に長い時間がかかる可能性があるからです。PP\mathrm{P} コンテキストフリー言語と標準言語がすべて効率的に決定できるのはなぜですか?それらを解決するのに時間がかからないということですか?

2
文脈自由でない補語を伴う文脈自由言語の例
文脈自由言語は補完の下で閉じられていません。講義では、同じ引数が与えられているここでWikipediaのための: A={anbncm; m,n∈N0}andB={ambncn; m,n∈N0},A={anbncm; m,n∈ℕ0}andB={ambncn; m,n∈ℕ0},A = \{\mathtt a^n \mathtt b^n \mathtt c^m;~m, n ∈ ℕ_0\}\quad\text{and}\quad B = \{\mathtt a^m \mathtt b^n \mathtt c^n;~m, n ∈ ℕ_0\}, 両方のAAA及びBBB文脈自由であるが、それらの交点A∩BA∩BA ∩ Bありません。文脈自由言語は労働組合の下で閉鎖されているので、補完の下で閉鎖することもできません。 しかし、これだけのショーの3つの言語の1というAAA、BBB、及びA¯¯¯¯∪B¯¯¯¯A¯∪B¯\overline A \cup \overline B非文脈自由補完と文脈自由言語であるが、そのためにこれらの一つは、これは真実ではありません。それは何ですか? また、おそらくバイナリアルファベットを超えた、コンテキストフリーでない補完機能を備えたコンテキストフリー言語の最小限かつエレガントな例はありますか?

2
文脈自由文法によって生成された言語を見つける
これはドラゴンブックからの質問です(私は翻訳ミスをお詫びします。英語版は手元にありません): この文法によって生成される言語は何ですか? S→ a Sb S∣ b SS∣ ϵS→aSbS∣bSaS∣ϵS \rightarrow a S b S \mid b S a S \mid \epsilon ここで何をするべきかわかりません。言語に関する本の定義はこれを述べています(そしてそれはほとんど章の中でそれです): 言語は、任意の解析ツリーで生成できるすべての単語のセットです。 したがって、この文法から「任意」の解析ツリーを作成する場合は、最初の2つのルールだけを使用して、再帰的に構築を続けることができます。少し検索したところ、すべてのルールを1回使用する必要があるという印象を受けましたが、よくわかりません。誰かがこの種の問題を解決するためのいくつかのヒントを提供することができればそれは非常に役に立ちます。

3
循環シフト下で文脈自由言語がクローズされていることの簡単な証明
サイクリックシフト (別名回転又は抱合言語の)ように定義される{ Y 、X | のX 、Y ∈ L }。ウィキペディア(およびここ)によると、文脈自由言語はこの操作のもとで閉鎖されており、大芝とMaslovの論文を参照しています。この事実の簡単な証拠はありますか?LLL{ yx ∣ x y∈ L }{yx∣xy∈L}\{ yx \mid xy \in L \} 通常の言語の場合、この形式では、「通常の言語がサイクル演算子の下で閉じられていることを証明する」という形でクロージャーが説明されます。

1
絞り込みタイプの推測
職場では、動的言語に関する型情報を推論する必要があります。次のように、ステートメントのシーケンスをネストされたlet式に書き換えます。 return x; Z =&gt; x var x; Z =&gt; let x = undefined in Z x = y; Z =&gt; let x = y in Z if x then T else F; Z =&gt; if x then { T; Z } else { F; Z } 一般的なタイプ情報から始めて、より具体的なタイプを推測しようとしているので、自然な選択は絞り込みタイプです。たとえば、条件演算子は、trueブランチとfalseブランチの型の和集合を返します。単純なケースでは、非常にうまく機能します。 ただし、次のタイプを推測しようとしたときに、思わぬ障害に遭遇しました。 function …
11 programming-languages  logic  type-theory  type-inference  machine-learning  data-mining  clustering  order-theory  reference-request  information-theory  entropy  algorithms  algorithm-analysis  space-complexity  lower-bounds  formal-languages  computability  formal-grammars  context-free  parsing  complexity-theory  time-complexity  terminology  turing-machines  nondeterminism  programming-languages  semantics  operational-semantics  complexity-theory  time-complexity  complexity-theory  reference-request  turing-machines  machine-models  simulation  graphs  probability-theory  data-structures  terminology  distributed-systems  hash-tables  history  terminology  programming-languages  meta-programming  terminology  formal-grammars  compilers  algorithms  search-algorithms  formal-languages  regular-languages  complexity-theory  satisfiability  sat-solvers  factoring  algorithms  randomized-algorithms  streaming-algorithm  in-place  algorithms  numerical-analysis  regular-languages  automata  finite-automata  regular-expressions  algorithms  data-structures  efficiency  coding-theory  algorithms  graph-theory  reference-request  education  books  formal-languages  context-free  proof-techniques  algorithms  graph-theory  greedy-algorithms  matroids  complexity-theory  graph-theory  np-complete  intuition  complexity-theory  np-complete  traveling-salesman  algorithms  graphs  probabilistic-algorithms  weighted-graphs  data-structures  time-complexity  priority-queues  computability  turing-machines  automata  pushdown-automata  algorithms  graphs  binary-trees  algorithms  algorithm-analysis  spanning-trees  terminology  asymptotics  landau-notation  algorithms  graph-theory  network-flow  terminology  computability  undecidability  rice-theorem  algorithms  data-structures  computational-geometry 

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