言語理論とコンパイラ

第十回: yacc 系ツールの演習

2009 年 6 月 11 日

http://www.sw.it.aoyama.ac.jp/2010/Compiler/lecture10.html

Martin J. Dürst

AGU

© 2005-10 Martin J. Dürst 青山学院大学

導出の順番: 最左導出と最右導出

簡単な例:

E → E '+' F
F → integer

最左導出の場合に、いつもできるだけ左の終端記号を置き換える

文法の種類の呼び方

LALR 構文解析の原理

スタックを使って読んだトーケンや途中の非終端記号を蓄積

オートマトンを使って出来るだけ簡単な操作で次のステップを決める

(LA)LR 構文解析の二つのオペレーション

属性文法

(attribute(d) grammar(s))

bison のマニュアル

bison の開発のコツ

calc 用テストファイル: test.in, test.check

宿題

提出: 再来週の木曜日 (6 月 24日) 19 時 00 分、O 棟 529 号室の前

日付と日数の計算が出来る簡単なプログラム言語をflex と bison で実現し、.lex.y のファイルを印刷して提出。A4 両面印刷、表紙なし、ホチキス止め、名前と学生番号をコメントに記述。

来週質問可能なので、よく準備して質問できるようにすること!

発展問題: 時間、月数、年数など