コンパイラ

科目基礎情報

学校 石川工業高等専門学校 開講年度 令和03年度 (2021年度)
授業科目 コンパイラ
科目番号 20330 科目区分 専門 / 必修
授業形態 講義 単位の種別と単位数 履修単位: 1
開設学科 電子情報工学科 対象学年 4
開設期 後期 週時間数 2
教科書/教材 中田ほか、「コンパイラ」、コロナ社 / 関連のプリントを配布する
担当教員 川除 佳和

到達目標

1. コンパイラの構成について説明できる。
2. コンパイラの変換の流れを説明できる。
3. 言語理論について理解し,概説できる。
4. 正規表現を理解し,説明できる。
5. 有限オートマトンを理解し,説明できる。
6. 文脈自由文法について理解し,説明できる。
7. 下向き構文解析について理解し,説明できる。

ルーブリック

理想的な到達レベルの目安標準的な到達レベルの目安未到達レベルの目安
到達目標 項目 1, 2コンパイラの構成と変換の流れについて理解し、説明できる。コンパイラの構成と変換の流れについて理解できる。コンパイラの構成と変換の流れについて説明できない。
到達目標 項目 3, 4, 5言語理論の概念、および、正規表現と有限オートマトンを理解し、正規表現と有限オートマトンの相互変換が説明できる。言語理論の概念、および、正規表現と有限オートマトンを理解し、説明できる。言語理論の概念、および、正規表現と有限オートマトンを説明できない。
到達目標 項目 6, 7文脈自由文法と下向き構文解析について理解し、説明できる。文脈自由文法と下向き構文解析について理解できる。文脈自由文法と下向き構文解析について説明できない。

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

本科学習目標 1 説明 閉じる
本科学習目標 2 説明 閉じる
創造工学プログラム B1専門(電気電子工学&情報工学) 説明 閉じる

教育方法等

概要:
コンパイラ理論の基礎となるオートマトン・言語理論を学び、コンパイラの字句解析、構文解析などの基本的手法の習得を目標とする。さらに、適宜演習を交えながら「自分の書いたプログラムがどのようにして機械語に変換されるのか?」を実践的に学ぶ。これらの学習を通して、幅広い視点から問題解決する能力を養う。
授業の進め方・方法:
学習の到達度をみるため、演習においてレポート課題を課す。
【関連科目】プログラミング基礎II、アルゴリズムとデータ構造、情報数学
【MCC対応】Ⅴ-D-1 プログラミング、Ⅴ-D-4 コンピュータシステム、Ⅴ-D-5 システムプログラム
注意点:
講義では教科書以外にプリントを配布します。課題は必ず提出すること。
【評価方法・評価基準】
中間試験,期末試験を実施する。成績の評価基準として60点以上を合格とする。
総合評価:中間試験の評点(40%)、期末試験の評点(40%)、課題(20%)

テスト

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

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

授業計画

授業内容 週ごとの到達目標
後期
3rdQ
1週 コンパイラとは コンパイラの役割と仕組みについて理解し、説明できる。
2週 種々の言語処理系におけるコンパイラ インタプリタやプリプロセッサなどの各種言語処理系を理解したうえで、一般的なコンパイラの構成を理解し、変換の流れをT図式で説明できる。
3週 文法と言語 形式言語の概念について説明できる。
4週 字句解析とは コンパイラにおける字句解析の役割を理解し、説明できる。
5週 有限オートマトン(1) 有限オートマトンの概念について理解し、説明できる。
6週 有限オートマトン(2) 決定性、非決定性の有限オートマトンの違いを理解し、説明できる。
7週 正規表現 正規表現を理解したうえで、正規言語を正規表現で表すことができる。
8週 正規表現と有限オートマトン 正規表現と有限オートマトンの等価性を理解し、相互の変換ができる。
4thQ
9週 構文解析とは 構文解析の概念を理解し、その役割を説明できる。
10週 文脈自由文法 文脈自由文法について説明できる。
11週 下向き構文解析(1) 下向き構文解析の概念について説明できる。
12週 下向き構文解析(2) 下向き構文解析の流れと課題を理解し、説明できる。
13週 LL(1)文法 LL(1)文法を理解し、与えられた文法がLL1(1)であるかを判定できる。
14週 計算機演習(lexとyacc) lexとyaccにより簡単なコンパイラを作成できる。
15週 後期復習
16週

モデルコアカリキュラムの学習内容と到達目標

分類分野学習内容学習内容の到達目標到達レベル授業週
専門的能力分野別の専門工学情報系分野プログラミング代入や演算子の概念を理解し、式を記述できる。4
プロシージャ(または、関数、サブルーチンなど)の概念を理解し、これらを含むプログラムを記述できる。4
与えられた問題に対して、それを解決するためのソースプログラムを記述できる。4
ソフトウェア生成に必要なツールを使い、ソースプログラムをロードモジュールに変換して実行できる。4
主要な言語処理プロセッサの種類と特徴を説明できる。4
ソフトウェア開発に利用する標準的なツールの種類と機能を説明できる。4
プログラミング言語は計算モデルによって分類されることを説明できる。4
主要な計算モデルを説明できる。4
要求仕様に従って、標準的な手法により実行効率を考慮したプログラムを設計できる。2
システムプログラム形式言語の概念について説明できる。4
オートマトンの概念について説明できる。4
コンパイラの役割と仕組みについて説明できる。4後1
形式言語が制限の多さにしたがって分類されることを説明できる。4
正規表現と有限オートマトンの関係を説明できる。4

評価割合

試験課題合計
総合評価割合8020100
基礎的能力000
専門的能力8020100
分野横断的能力000