授業概要
|
|
| |
プログラミング言語の処理系に関する知識の中は、言語処理系を研究対象とする人に限らず、コンピュータと関わる人一般にとって有用なものが多々含まれ、その意味で重要である。本授業は、プログラミング言語の処理系の構築に関する基礎的な講義を行う。字句解析、構文解析、コード生成などの各処理段階で用いられる基礎的技術や概念、およびそれらに関するツール、単純な言語処理系の構築例などに関する解説を行う。
|
|
|
|
学習到達目標
|
|
| |
正規表現やそれを用いた字句解析、再帰下降解析やLR解析の原理、それらを用いた構文解析およびコード解析などに関する理解を得ること。実際に言語処理系構築に用いられるlex, yaccなどのツールを用いて、仮想CPU上での模擬的なコンパイラを構築できる能力を得ること。以上を目標とする。
|
|
|
※学習到達目標と成績評価との関係は『全学教育ガイド』Ⅰ-9「評価基準」を参照。
|
|
|
|
キーワード
|
|
|
|
授業計画
|
|
| |
第1回: 言語処理系とその種類(コンパイラ、インタプリタ) (事前学習: あらかじめ配布する資料の予習、事後学習: 学習内容のまとめ) 第2回: 形式言語とプログラムの構文 (事前学習: あらかじめ配布する資料の予習、事後学習: 学習内容のまとめ) 第3回: 字句解析/正規表現 (事前学習: あらかじめ配布する資料の予習、事後学習: 学習内容のまとめ) 第4回: 字句解析/有限オートマトン (事前学習: あらかじめ配布する資料の予習、事後学習: 練習問題を解く) 第5回: 字句解析部生成ツールlex (事前学習: あらかじめ配布する資料の予習、事後学習: lexによる字句解析部生成) 第6回: 構文解析/文脈自由文法と構文木 (事前学習: あらかじめ配布する資料の予習、事後学習: 学習内容のまとめ) 第7回: 構文解析/LL文法と再帰下降解析 (事前学習: あらかじめ配布する資料の予習、事後学習: 学習内容のまとめ) 第8回: 構文解析/再帰下降解析による解析部作成 (事前学習: あらかじめ配布する資料の予習、事後学習: 再帰下降解析部をC言語で作成) 第9回: 構文解析/LR解析 (事前学習: あらかじめ配布する資料の予習、事後学習: 学習内容のまとめ) 第10回: 構文解析/LR解析による解析部生成ツールyacc (事前学習: あらかじめ配布する資料の予習、事後学習: yaccによる構文解析部作成) 第11回: 意味解析 (事前学習: あらかじめ配布する資料の予習、事後学習: 学習内容のまとめ) 第12回: 中間言語とデータ構造 (事前学習: あらかじめ配布する資料の予習、事後学習: 学習内容のまとめ) 第13回: 仮想機械とコード生成(1)コード生成の手法 (事前学習: あらかじめ配布する資料の予習、事後学習: 学習内容のまとめ) 第14回: 仮想機械とコード生成(2)最適化 (事前学習: あらかじめ配布する資料の予習、事後学習: 学習内容のまとめ) 第15回: 仮想機械とコード生成(3)実例 (事前学習: あらかじめ配布する資料の予習、事後学習: 仮想CPUでの擬似コンパイラ作成)
|
|
|
|
教科書
|
|
| |
No
|
書籍名
|
著者
|
出版社
|
出版年
|
ISBN
|
|
1.
|
『授業時に資料を配布する』
|
|
|
|
|
|
|
|
参考書
|
|
|
|
成績評価 の方法
|
|
|
|
成績評価割合 (%)
|
|
| |
定期試験(期末試験)
|
授業内試験等
|
宿題・授業外レポート
|
授業態度・授業への参加度
|
受講者の発表(プレゼン)
|
出席
|
教員独自項目※
|
|
0
|
|
100
|
|
|
|
|
|
|
|
※成績評価 割合の教員独自項目
|
|
|
|
実務経験のある教員等による授業科目
|
|
|
|
備考
|
|
|