/home/hattori/visual-prog/latex2e/main.ps
です)
ビジュアル・プログラミング言語では、終端記号→基本図形、文→グラフというように拡張する。
以下の内容については、資料"A Graph Grammar Approach to Graphical Parsing"(/home/hattori/visual-prog/graph-grammar.ps)を参照。
ただし、Syntax directed editorを使うので、High Level Parsingしかやらないことも多い。
テキスト言語では文字が一列に並んでいるので、規則の適用により新たに生まれる文字の位置は自明である。それに対してグラフ言語では、新たに生まれるノードと既存のノードの関係を示さなければならない。解決策の一つは、規則を文脈依存にすることである。図4.2[グラフ文法の例]では、文脈ノードを破線で示している。他の解決法としては、生成規則とは別に埋め込み規則を記述する方法などがある。
宿題
図4.2[グラフ文法の例]の上のグラフを、下の文法でparseせよ。ただし、論文のアルゴリズムを使わなくてもよい(使うとメチャクチャ大変)。提出物は、開始記号から始まって、適用する規則の番号と、適用結果のグラフを順に書き並べたもの。
ただし、文法のB?, C? ∈ {begin, fork, if}
はB?, C? ∈ {begin, assign, fork, join, send, receive, if}
に訂正。