コンピュータの基本的な動作原理を理解するために,プログラミング言語処理系のうち,特にコンパイラの理論とテクニックを学習する.
【到達目標】コンパイラの理論とテクニックの習得を到達目標とする.
【テーマ】字句解析,構文解析,文脈自由文法,再帰下降構文解析,LL構文解析,LR構文解析,意味解析,コード生成,最適化
字句解析,構文解析,文脈自由文法,再帰下降構文解析,LL構文解析,LR構文解析,意味解析,コード生成,最適化
✔ 専門力 | 教養力 | コミュニケーション力 | 展開力(探究力又は設定力) | 展開力(実践力又は解決力) |
座学,プログラミング演習
授業計画 | 課題 | |
---|---|---|
第1回 | イントロダクション | イントロダクション |
第2回 | 字句解析,正規表現 (1) | 字句解析,正規表現 (1) |
第3回 | 字句解析,正規表現 (2) | 字句解析,正規表現 (2) |
第4回 | 構文解析,文脈自由文法 (1):BNF,抽象構文木(AST) | 構文解析,文脈自由文法 (1):BNF,抽象構文木(AST) |
第5回 | 構文解析,文脈自由文法 (2):再帰下降構文解析,LL構文解析 | 構文解析,文脈自由文法 (2):再帰下降構文解析,LL構文解析 |
第6回 | 中間テスト | 中間テスト |
第7回 | 構文解析,文脈自由文法 (3):LR構文解析 | 構文解析,文脈自由文法 (3):LR構文解析 |
第8回 | 構文解析,文脈自由文法 (4):PEG (parsing expression grammar) | 構文解析,文脈自由文法 (4):PEG (parsing expression grammar) |
第9回 | 意味解析 (1):記号表,スコープ | 意味解析 (1):記号表,スコープ |
第10回 | 意味解析 (2):型検査 | 意味解析 (2):型検査 |
第11回 | コード生成 (1):制御構文 | コード生成 (1):制御構文 |
第12回 | コード生成 (2):定数,変数,式 | コード生成 (2):定数,変数,式 |
第13回 | コード生成 (3):関数呼び出し,スタックフレーム | コード生成 (3):関数呼び出し,スタックフレーム |
第14回 | 最適化 (1) | 最適化 (1) |
第15回 | 最適化 (2) | 最適化 (2) |
特になし.資料を配付.
なし
中間試験:30%
プログラミング課題レポート:35%
期末試験:35%
アセンブリ言語を履修していることが望ましい