文脈自由文法という用語で文脈自由とは本当に何を意味するのでしょうか?


29

私はコンパイラをしばらく研究しており、文法の「コンテキスト」の意味と、文法が「コンテキストフリー」であることの意味を検索していますが、結果はありません。

だから誰でもこれを助けることができますか?


7
「本当に」とはどういう意味ですか?どの説明を読んで、何を理解していませんか?IIRC、この問題に関する中途半端な教科書には、それぞれの意味が説明されています。
ラファエル

2
関連する例は次のとおりです。「読む」という言葉を考えてください。これは、2つのまったく異なる意味を持つ単一の単語です。1つは「読む」という現在時制であり、もう1つは「読む」という過去時制です。テキストで「読む」という単語を見た場合、コンテキストを見ずに、2つの意味のどちらを表すかを明確にすることはできません。したがって、英語はコンテキストに依存します。コンテキストで考慮せずに各トークン(単語)を解析できないためです。文脈依存文法は、すべてのトークンの意味が、それを表す単一のトークンから明確に推測できるものです。
アレクサンダー-モニカの復活

回答:


30

コンテキストは、チョムスキー階層のさまざまな文法で許可されているプロダクションルールに関して説明できます。

文脈自由文法を検討する場合、その生成規則は次の形式になります。

Aα

そのため、この種の規則の左側の部分は、1つの非終端記号のみで構成されていることがわかります。したがって、非終端記号の置換は、その「コンテキスト」、つまりそれが囲まれている他の記号を考慮せずに行われます。

一方、状況依存文法の生成規則を検討する場合、それらの形式は次のとおりです。

βAγβαγ

ここで、は、、、はと終端シーケンスです。Aαβγ

この場合、置換される非終端記号の「コンテキスト」(つまり、および)は、置換の効果に影響し、ルール自体の一部です。βγ

あなたは、より詳細を見つけることができます。この答えは数学のとでは、この答えソフトウェア工学上を。


答えてくれてありがとう。しかし、私にとって奇妙なことは、数学SEで同様の質問がされたことです。
怪しげなAtef

1
とは、プロダクションの結果の一部である必要はないことに注意してください。また、@ David Richerbyの答えでわかるように、他のシーケンスに置き換えることもできます。βγ
フローズン

1
@Frozn AFAIKここで与えられたものは、Chmosky階層による標準定義です。確かに、あらゆるタイプの生成を可能にするコンテキストセンシティブより強力な文法がありますが、標準のコンテキスト依存文法はできません。
バクリウ

2
@Frozn:バカリウは正しい。ここでは、チョムスキー階層に従って定義された文法について話している。特に、文脈自由文法はタイプ2の文法であり、文脈依存文法はタイプ1です。ただし、タイプ0の文法には、制限によって制限されないプロダクションルールがあるため、無制限の書き換えシステムと呼ばれます。ここでは、いくつかの例とともに、チョムスキー階層の簡単な説明を見つけることができます。
PieCot

@BakuriuとPieCotそれに感謝します。私はチョムスキーの階層構造を知っていました。誰かが単調な文法を文脈依存として導入し、Chomsky階層のタイプ0およびタイプ1と共に、一般的なルールを。βAγδ|βAγ||δ|
フローズン

17

「コンテキスト」は周囲のテキストです。文脈自由文法は、規則がではなくように見えるという意味で文脈自由です。ルールの左側は常に単一の非終端記号です。つまり、非終端記号を展開する規則は、その記号の周囲に表示されるテキスト(コンテキスト)に依存せず、記号自体にのみ依存します。たとえば、プログラミング言語の文法では、という用語は、割り当て(たとえば、)を記述している場合でも、関数に引数を渡している場合(たとえば、)でも、同じ種類の式に展開されます関数から(例:)。AthingsstuffAmore-stuffthingsExprx:=y+zf(y+z)return y+z


4

一般的に言えば、通常の言語であってもコンテキスト依存性がある場合があります。つまり、その言語に属する文字列内の他のシンボルの近くにシンボルがどのように現れるかをある程度判断できます。

文脈自由文法に特有なのは、右側に同じ非終端記号を持つ異なる規則を適用することにより、非終端記号を置換する方法が複数ある場合、適用する規則の選択は何に依存しないことです。導出プロセス中にこのシンボルの周りで起こっています。

それらは、文脈自由派生言語、略して文脈自由言語と考えることができます。

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