問題タブ [context-sensitive-grammar]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - C言語の非文脈自由言語の例?
C 言語の非文脈自由言語の例は? 次の非 CFL は C 言語でどのように存在しますか?
a) L1 = {wcw|w は {a,b}*}
b) L2 = {a^nb^mc^nd^m| n,m >=1}
compiler-construction - どの言語が状況依存ですか?
私は「コンパイラ理論」を学んでいます、それはほとんどの言語が「決定性文脈自由文法」を使用したと言います。「文脈依存文法」を使う言語はあるのだろうか?
更新:
私は誰かに尋ねました、彼はc++とrubyがいくつかの文脈依存の文法を持っていると言いました。
たとえば、C ++では、次のコードを使用します。
と呼ばれるメソッドがある場合、abc
はabc()
「このメソッドの呼び出し」を意味します。クラスがある場合class abc{ }
、それは「クラスabcのインスタンスを作成する」ことを意味します。
また、ルビーでは、メタプログラミングがあるため、状況依存の文法があります。
彼は正しいですか?
grammar - 文脈依存文法の単純だがおもちゃではない例を誰かが挙げることができますか?
文脈依存の文法を理解しようとしていて、言語が
- {ww | w は文字列です}
- {a n b n c n | a、b、cは記号です}
文脈自由ではありませんが、型指定されていないラムダ計算に似た言語が文脈依存であるかどうかを知りたいです。単純だがおもちゃではない例 (上記のおもちゃの例を考えます) の例を見てみたいと思います。たとえば、記号の文字列がは現在スコープ内にあります (たとえば、関数の本体を生成する場合)。文脈依存文法は、未定義/未宣言/未結合の変数を (セマンティックではなく) 構文エラーにするのに十分強力ですか?
c++ - C ++は文脈自由ですか、それとも文脈依存ですか?
C++は状況依存言語であるという主張をよく耳にします。次の例を見てください。
これは変数定義ですか、それとも関数宣言ですか?それは記号の意味に依存しますc
。c
が変数の場合、はタイプという名前の変数をa b(c);
定義します。で直接初期化されます。ただし、が型の場合は、を取り、を返すという名前の関数を宣言します。b
a
c
c
a b(c);
b
c
a
文脈自由言語の定義を調べると、基本的に、すべての文法規則には、ちょうど1つの非終端記号で構成される左側が必要であることがわかります。一方、状況依存文法では、左側に終端記号と非終端記号の任意の文字列を使用できます。
「C++プログラミング言語」の付録Aを参照すると、左側に1つの非終端記号以外の何かがある単一の文法規則を見つけることができませんでした。これは、C++が文脈自由であることを意味します。(もちろん、すべての文脈自由言語は、文脈自由言語が文脈依存言語のサブセットを形成するという意味で文脈依存でもありますが、それは重要ではありません。)
では、C ++は文脈自由ですか、それとも文脈依存ですか?
nlp - 感情分析で文脈依存文法を使用する方法は?
感情分析で文脈依存文法を使用することは可能ですか? はいの場合、どのように?基本的には、フレーズ レベルの分析を行いたいと考えています。
grammar - 次の言語 {a^nb^m | 与えられた文法を構築します。n、m = 0、1、2、...、n <= 2m}
中間試験を受けたばかりですが、この質問に答えることができませんでした。
誰かが言語の例をいくつか挙げて、その言語の文法を構築するか 、少なくとも私がそれをどのように行うかを教えてもらえますか?
また、 の文法の書き方L
:
L = {a n b m | n、m = 0、1、2、...、n <= 2m } ?
前もって感謝します。
context-free-grammar - この文法は何ですか?文脈自由または文脈依存
Formal Languages と Automata Theory を勉強していますが、本の中で答えられていない問題について質問があります。質問は:
この言語はコンテキストフリー、レギュラー、またはコンテキストセンシティブですか?
L= {a n w w R b n | w は ( a+b )*、w Rは w の逆、n>=0 }
この言語は状況依存だと思います。受け入れるには少なくとも 2 つのスタックが必要だからです。
誰もそれについてコメントできますか?
ありがとう。
language-design - 言語の文脈自由部分を文脈依存部分から分離する方法は?
comp.theory リストでこの素晴らしい投稿を読みました。
http://coding.derkeiler.com/Archive/General/comp.theory/2004-03/0189.html
ポスターは、ほとんどのプログラミング言語がコンテキストフリーのコアを定義し、構文解析ツリーで実行される追加のアルゴリズムを使用して、言語で違法な構造を除外することを強調しています。
これにより、言語の文脈に依存しない部分と文脈に依存する部分が分離されます。これは、一般的に優れた実践 (言語設計のための一種のモジュール化された「プログラミング」規律) と見なされます。
この手法を説明するために「Hello World」の例を提供できますか? つまり、単純な文脈依存言語を提供し、文脈自由コアを特定してから、文脈自由コアを使用して入力を解析する方法をスケッチし、続いて解析ツリーで不正な構造を除外します。
このテクニックについて説明している記事や本を紹介してもらえますか?