コンパイラ

科目基礎情報

学校 弓削商船高等専門学校 開講年度 令和05年度 (2023年度)
授業科目 コンパイラ
科目番号 0097 科目区分 専門 / 必修
授業形態 授業 単位の種別と単位数 学修単位: 2
開設学科 情報工学科 対象学年 5
開設期 後期 週時間数 2
教科書/教材 中田育夫:コンパイラ-作りながら学ぶ- http://moodle2023.center.yuge.ac.jp/
担当教員 長尾 和彦

到達目標

コンパイラとは、人間の記述したプログラムを計算機で実行可能な形式に変換するためのプログラムである。
コンパイラは、プログラム開発に必須のツールであったことから、アルゴリズムについて比較的研究がなされてきた分野である。
本講義では、コンパイラの基本的な概念、原理および作成方法について解説する。

ルーブリック

理想的な到達レベルの目安標準的な到達レベルの目安未到達レベルの目安
実際に利用されている処理系の動作原理を理解することができる。具体的な処理系の仕組みを図示できる。代表的な処理系の仕組みを理解できる。インタプリタ、コンパイラの意味を説明できない。
簡単な言語処理系の開発手法を理解でき、最新の開発手法についても説明できる。字句解析、構文解析のプログラムを自作できる。与えられた字句解析、構文解析のプログラムを説明できる。与えられたプログラムを説明できない。
最新の言語処理系の動向について、理解できる。複数のプログラム言語の特徴を説明できる。Java,Cなどの言語の特徴を説明できる。プログラム言語の特徴を説明できない。

学科の到達目標項目との関係

専門 A2 説明 閉じる
教養 C1 説明 閉じる
教養 C2 説明 閉じる
教養 C3 説明 閉じる
専門 E1 説明 閉じる
専門 E2 説明 閉じる
専門 E3 説明 閉じる

教育方法等

概要:
コンパイラとは、人間の記述したプログラムを計算機で実行可能な形式に変換するためのプログラムである。
コンパイラは、プログラム開発に必須のツールであったことから、アルゴリズムについて比較的研究がなされてきた分野である。
本講義では、コンパイラの基本的な概念、原理および作成方法について解説する。
授業の進め方・方法:
反転授業形式で講義を行う。
講義前にmoodleで講義資料を提示するので事前学習してから授業に出席すること。
注意点:
・講義30時間に対し、自己学習60時間に相当する課題(小テスト、レポート、プログラム製作)を課す。
・複数のプログラム言語や処理系を紹介する

実務経験のある教員による授業科目

授業の属性・履修上の区分

アクティブラーニング
ICT 利用
遠隔授業対応
実務経験のある教員による授業

授業計画

授業内容 週ごとの到達目標
後期
3rdQ
1週 ガイダンス(moodleの使い方)
2週 T記法による処理系の表現
コンパイラの仕組み
各種処理系をT記法を用いて説明することができる
3週 プログラム言語体系と処理系 現在利用されている言語の特徴について理解する。
4週 形式言語論
形式言語、言語、オートマトン
形式言語論を通じて自然言語や順序回路などの
具体的な対象を抽象的にモデル化して
問題解決が図れるようにすること
5週 非決定性有限オートマトン
決定性有限オートマトン
最適化
非決定性有限オートマトンから決定性有限オートマトンへの変換ができること
6週 演算子順位文法
文脈自由文法
文法に応じた構文解析のプログラムが利用できる
7週 LL文法 文法に応じた構文解析のプログラムが利用できる
8週 中間試験
4thQ
9週 インタプリタの実装 Javaを用いて簡単なインタプリタ、
コンパイラのプログラムを作成できる。
10週 仮想計算機 Javaを用いて簡単なインタプリタ、
コンパイラのプログラムを作成できる。
11週 インタプリタの実装 Javaを用いて簡単なインタプリタ、
コンパイラのプログラムを作成できる。
12週 インタプリタの実装 Javaを用いて簡単なインタプリタ、
コンパイラのプログラムを作成できる。
13週 文法の拡張 Javaを用いて簡単なインタプリタ、
コンパイラのプログラムを作成できる。
14週 文法の拡張 Javaを用いて簡単なインタプリタ、
コンパイラのプログラムを作成できる。
15週 期末試験・まとめ
16週 試験解説および講評

評価割合

定期試験小テストレポート口頭発表成果物 実技ポートフォリオその他合計
総合評価割合50102002000100
知識の基本的な理解505100100075
思考・推論・創造への適応力0010000010
主体的・継続的な学習意欲0500100015