• 追加された行はこの色です。
  • 削除された行はこの色です。
*Abstract Syntax [#ec6baed2]
#contents
*Abstract Syntax [#da27e519]
- Abstract=いかなる実体とも結びついていないもの
- コンパイラは、文が文法にそっているかをチェックするだけじゃダメ。
-それ以上のなにか(Semantic Actions)が必要
- 再帰降下パーサの場合、semantic actionはパーサーのなかにまき散らされている
- ML-Yaccの場合、生成ルールにくっつけて書かれる

**SEMANTIC ACTIONS [#bb9f7a5b]
- 各要素(nonterminal/terminal)は意味的な値(semantic value)の型を持っている
- semantic actionは、その値を生成する

*** RECURSIVE DESCENT [#db382e4c]
- semantic action=パーサ関数の返す値と、その関数が起こす副作用
- 各要素について、実装言語の型が関連づけられている
- Program 4.1が例ですよ。T'がちょっとトリッキー。左オペランドが書けているので、引数として渡している

*** ML-Yacc-GENERATED PARSERS [#e6c57c3f]
- ML-Yacc用の文法のsetのそれぞれに、semantic actionがMLの式の形でannotateされる
- パーサがルールを還元するたびに、そのsemantic actionが実行される

**ABSTRACT PARSE TREES [#abfecb18]


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS