情報システム・セキュリティコース(CSSS) 向けの「コンパイラ」 (火 Ⅱ コマ・ 3304 教室 2020 年度は遠隔で実施・ 担当: 香川) の情報を掲載します。
(新しいものほど上です)
(10/06) 昨年(2019)度の試験問題,
解答例 p.1
解答例 p.2
今年度の「コンパイラ」の試験範囲に相当するのは、Ⅳ 〜 Ⅵ です。
(Ⅰ 〜 Ⅲは前期「オートマトン」の試験範囲)
(02/02 追記)ただし、Ⅰ のヴァリエーションは、
「コンパイラ」でも出題する可能性が有ります。
今年度も持ち込み不可です。
(10/06) 教科書の p.45 表 4.2 に訂正があります。 「コンパイラの仕組み」訂正
(10/06) パスワードがかかっているページは、Gmail アカウント(大学のメールのアカウント) で閲覧できます。
(10/06) この授業は、現在のところ Moodle を使用していません。 (連絡には DreamCampus を使用します。)
以下は「オートマトン」で配布したブリントの再掲です。
パスワードがかかっているページは、Gmail アカウント(大学のメールのアカウント) で閲覧してください。
注意: 設定が変更されたのに、変更が反映されないときは、 いったんログアウトして、 再度アクセスを試みて下さい。
必ず各自で提出したファイルのバックアップを取っておいて下さい。 (自分のノート PC だけではなく、stfile などの大学のサーバのどこかにもバックアップしておいて下さい!!)
課題、
Flex と Bison のインストール、 Bison について
Bison について, Flex と Bison を同時に使う
プリント第 4 〜 7 章 記号表と中間語・誤り処理・実行時環境とレジスタ割付け・コード生成、
プリント第 A 章 Oolong について
Oolong は JVM 用のアセンブラです。 本演習では Oolong をコンパイラのターゲットとして使用します。
oolong.jar は課題プログラムを作成するフォルダにコピーします。
プリント第 3 章 下向き構文解析
12/08 の授業で一部の人に Zoom の URL が届いていないミスがあったので、 穴埋めしたもの を公開します。
次の文法(開始記号は Expr):
Expr → CON
| FID '(' List ')'
List → Expr Rest
Rest → ',' Expr
| ε
-- 以下は終端記号: 字句解析部で処理
CON → '0' | '1' | ... | '9' -- 簡単のため一桁の数のみ
FID → '+' | '-' | '*' | '!'
に対する再帰下降構文解析プログラムの例
Zoom による遠隔授業を実施します。詳細は、 DreamCampus で前日までに連絡します。
出欠
(授業時間中 (10:30~12:00) に右上の「遠隔参加」のところに入力しておいてください。)
課題、
アップロード、
(← ここ以降の予定の開閉)
(新しいものほど上です)
香川研究室・大橋くんのページ (再帰下降構文解析・学習支援システム)
myparser.y, mylexer.l, (注: 文字コードが変わるとうまくコンパイル・実行できない可能性があるので、「名前を付けてリンク先を保存」「名前を付けてページを保存」などで、 保存するようにしてください。)
LR 構文解析 -- 例 2(SWF)
LR 構文解析 -- 例 1(SWF)
演算子順位法の実行例(SWF)
jacc のマニュアル (学外)
Bison のマニュアルの日本語訳 (大量になるので印刷はしません。)
while (i > 0) { n = n * i; i = i - 1; } の解析木 (SWF)、
別バージョン(1枚もの) (SWF)
「オートマトン」と同じ教科書を使います。
コンパイラの仕組み
渡邊 坦 著
朝倉書店
ISBN4-254-12708-1