Yayacc-自動エラーリカバリ機構付きパーサジェネレータ
スポンサーリンク
概要
- 論文の詳細を見る
本発表では,自動エラーリカバリ機構を持つパーサジェネレータ yayacc の設計と実装を述べる.yacc や bison をはじめとして,現在広く使われているパーサジェネレータでは,文法中に特殊なエラーリカバリ動作を指示するトークンを手動で挿入させることで,エラーリカバリパーサを生成している.この古典的な手法は本来の文法定義を変えてしまうことに起因する深刻な問題があり,正しいエラーリカバリを行うパーサを生成させるには,多くの勘と経験が必要とされる.一方,yayacc ではエラーリカバリのために,文法を修正するというこがいっさい不要であり,生成されるパーサは従来の error トークン手動挿入によるパーサでは理論的に不可能な優れたエラーリカバリを自動的に行う.さらに yayacc では意味動作の Undo も自動で行うことが可能である.これは先行研究における自動エラーリカバリパーサでは扱われていないが,字句解析が完全に分離できない文法,たとえば C 言語に対しても自動的なエラーリカバリを行う場合に必要となる重要な機能である.yayacc は筆者らが開発している SCK コンパイラキットのツールの 1 つとして作成されたものである.現在 ANSI C言語,および小規模な関数型言語のパーサは yayacc により自動生成されたものを使っており,きわめて優れたエラーリカバリが行われている.
- 2008-10-27