まず、第二章の内容を整理理解し、要約を書きます。
1. 文法の直感的な概念
自然言語では、例えば、人々は、文のすべてを一覧表示することはできませんが、文の構造のいくつかのルールを与える可能性があります。中国語の文章はEBNFの章を使用して、被験者の述語、述語を構成する動詞で作られ、オブジェクトを直接することができ、この構成ルールを表します。例としては、次のとおりです:
<文> => <件名> <述語>
=> <代名詞> <述語>
=>私は述語<>
=> I <動詞> <直接目的>
=>私は、直接オブジェクトを<>
=>私は大学の学生です
請求=>ルールを使用することの意味、その左端のシンボルの代表は、記号列の右端が生成されます。
2 。記号や文字列
(1)アルファベット
アルファベットは、シンボルアルファベットエレメントと呼ばれるエレメントの空でない有限集合であり、そして従って、シンボルアルファベットセットとして知られ、異なる言語等の異なるアルファベット、例えば文字、図形を有します
(2)記号列
任意の有限列のアルファベットからのシンボルは、すなわちEで示さ無料記号列、0の長さを、できるように、文字列と呼ばれる。| E | = 0。
3. 文法や言語の形式的な定義
ルールは、> Bまたは左部分と呼ばれる:: = B(B)順序対、Bは右側部分と呼ばれるA-ような形状書き換え規則、製造又は式と呼ばれています
文法Gは、4つのタプルとして定義される(VN、VT、P、S )、 非ターミネーターのVn ,; VTターミネーターとしてあり; Pルール(A-> B)が設定され、∈(V N- UV T)*と少なくとも一つの非終端記号を含み、
Bの∈(V N- UV T)* ; V N-、V T と非乏しい組のPたくさん、Sは、非終端記号であり、開始シンボル識別子であるか、または呼びます。
4. 文法タイプ
文法は、タイプ1と呼ばれる4つのタイプ、すなわち、0またはタイプに分割され、または文脈依存文法、または2型は、文脈自由文法と3型文法または定期的な文法を特徴とします。生産上のさまざまな制限を課す文法のこれらの種類の違い。
Gは文法とする、Sは、文法の開始記号で、ABO Gは、文法上の文です。そこS- *→AAO及び((A→βは規則A→Bに対してABO文である場合A- +→B添字bは、特定の語句非終端ABO文に対して測定された場合(また、簡単なフレーズとして知られている)直接のフレーズ。右の文を直接文のハンドルと呼ばれるフレーズ。コンセプトは、右の文を処理するためにのみ適しています
文脈自由文法や構文木
単純な代入文は式を生成している説明します
<代入文> - > I:= E
文法フラグメントは、条件文を記述しました
<条件文> - > <条件>そして<声明>の場合|の場合、<条件>そして<声明>他の<声明>。
αはα、βは、α非終端左端(右端)が置換されているの文で、この導出は、右端の左端(右端)の導出と呼ばれ、任意のステップ導出=>β、で導出はまた、標準的な導出を知られています。
別の構文木に対応する2つのコースの文があるために、その文法は他の言葉で、あいまいです:文の文法があり、彼は2つの異なる左端(右端)の導出、文法を持っていますこれは、ジエチル定義されています。
6. 文の分析
A =>β場合、αβγ文ルールA->β直接フレーズ(とも呼ばれる単純なフレーズ)に対する]ベータと呼ばれます。直接文のハンドルと呼ば右フレーズ、右ハンドルの概念だけで、適切な文に文。明確な文法のために、ユニークなハンドルの文は、文のほとんどを残し、そのすべての直接のフレーズの権利は、彼のフレーズが直接扱う両方の左端です。
第二に、文法PL / 0言語を記述してみてください。(または、より良い言語規則思います) <プログラム>→<ブロック>。
<ブロック>→[<定数説明セクション>] [<変数説明セクション>] [<プロセスの説明セクション>] <声明>
<定数説明セクション>→CONST <定数の定義> {<定数の定義>}。
<定数定義>→<識別子> = <符号なし整数>
<変数説明セクション>→VAR <識別子> {<識別子>}。
<処理記述部>→<プロセスヘッダ> <ブロック> {<プロセス記述部>}
<プロセスヘッダ>→手順<識別子>。
<文>→<割り当て> | <条件文> | <ときループ型> | <プロシージャ呼び出し文> | <文の読み> | <write文> | <複合文> | <空>
<代入文>→<識別子>:= <式>
<条件文>→もし、<条件>そして<声明>
<変形搬送オペレータ>→+ | -
<乗除算演算子>→* | /
<関係演算子>→= |#| <| <= |> |> =
<商品>→<要因> {<乗算と除算演算子> <要因>}
<要因>→<識別子> | <符号なし整数> |(<式>)
<プロシージャ呼び出し文>→コール<識別子>
<ときループタイプ>→しばらく<条件>行う<声明>