2016年度 プログラミング言語処理系   Compiler Construction

文字サイズ 

アップデートお知らせメールへ登録 お気に入り講義リストに追加
開講元
数理・計算科学系
担当教員名
南出 靖彦  増原 英彦  脇田 建 
授業形態
講義     
メディア利用科目
曜日・時限(講義室)
月7-8(W834)  木7-8(W834)  
クラス
-
科目コード
MCS.T334
単位数
2
開講年度
2016年度
開講クォーター
4Q
シラバス更新日
2016年1月11日
講義資料更新日
-
使用言語
日本語
アクセスランキング
media

講義の概要とねらい

この授業では、プログラミング言語についての基礎的な概念を述べたあと、普段書いているプログラムがコンピュータ内部でどのように実行されるか、またコンパイラがどのように構成されているかを説明する。

到達目標

本講義を履修することによって次の能力を修得する。
1. プログラムがコンピュータ内部でどのように実行されるかを説明できる。
2. コンパイラの各構成要素の役割とその仕組み, アルゴリズムを説明できる。
3. 簡単なプログラミング言語のインタープリタやコンパイラを実装できる。

キーワード

インタープリタ, コンパイラ, 構文解析, コード生成,仮想機械,ガベージコレクション

学生が身につける力(ディグリー・ポリシー)

専門力 教養力 コミュニケーション力 展開力(探究力又は設定力) 展開力(実践力又は解決力)

授業の進め方

講義形式で理論や技術を学び, プログラミング課題を通じ実践力をつける.

授業計画・課題

  授業計画 課題
第1回 概要: プログラムの実行方式(コンパイラ, インタープリタ) プログラムの実行方式を理解する
第2回 字句解析:トークン, 正規表現, NFA, DFA 字句解析で用いられる理論を理解する
第3回 字句解析: プログラミング演習 字句解析器の実装を理解する.
第4回 構文解析(1):文脈自由文法とBNF, 予測型構文解析 予測型構文解析を理解する
第5回 構文解析(2):LR構文解析の基礎 LR構文解析の基礎を理解する
第6回 構文解析(3):LR構文解析の拡張 LR構文解析の拡張を理解する
第7回 構文解析:プログラミング演習(1) 構文解析器を実装する
第8回 構文解析に関する理解度確認テスト及び授業後半の概要 構文解析の理解度を確認する
第9回 仮想機械 仮想機械を用いた実行方式を理解する
第10回 ガベージコレクション ガベージコレクションのアルゴリズムを理解する
第11回 仮想機械とガベージコレクション:プログラミング演習 仮想機械とガベージコレクションの実装に触れる
第12回 コード生成(1):概要, アセンブリ言語 コード生成の概要を理解する
第13回 コード生成(2):最適化 最適化の手法の概要を理解する
第14回 コード生成(3): 生存変数解析, レジスタ割当 コード生成における発展的な話題に触れる
第15回 コード生成: プログラミング演習 コード生成器を実装する

教科書

指定しない

参考書、講義資料等

講義資料を適宜配付する.

次の本を参考書として使用する.
神林靖,滝本宗宏訳,最新コンパイラ構成技法,Andrew W. Appel著,神林靖,滝本宗宏訳,翔栄社.
「コンパイラ[第2版] 原理・技法・ツール」,A.V.エイホ,M.S. ラム,R.セシィ,J.D.ウルマン著,原田賢一訳,サイエンス社.

成績評価の基準及び方法

課題の得点とプログラミングに関するレポートにより評価する.

関連する科目

  • MCS.T224 : プログラミング第一
  • MCS.T303 : プログラミング第二
  • MCS.T214 : オートマトンと数理言語論

履修の条件(知識・技能・履修済科目等)

オートマトンや文脈自由文法に関する基礎的な知識を仮定する.

このページのトップへ