到達目標
1.言語処理系(コンパイラ)の構成要素における役割,目的,機能を正確に理解し説明できる.
2.字句解析の原理とアルゴリズムを理解し,目的にあう字句解析器を生成および応用ができる.
3.構文解析の原理とアルゴリズムを理解し,目的にあう構文解析器を生成および応用ができる.
ルーブリック
| 理想的な到達レベルの目安 | 標準的な到達レベルの目安 | 未到達レベルの目安 |
1.言語処理系(主にコンパイラ)の構成要素における役割,目的,機能を正確に理解し説明できる. | コンパイラの構成要素における役割,目的,機能を正確に理解し詳しく説明できる. | コンパイラの構成要素における役割,目的,機能を理解し簡単に説明できる. | コンパイラの構成要素における役割,目的,機能を理解していない。 |
2.字句解析の原理とアルゴリズムを理解し,目的にあう字句解析器を生成および応用ができる. | 字句解析の原理とアルゴリズムを理解し,目的にあう字句解析器を生成および応用ができる. | 字句解析の原理とアルゴリズムを理解し,目的にあう字句解析器を生成できる. | 字句解析の原理とアルゴリズムを理解し,目的にあう字句解析器を生成できない. |
3.構文解析の原理とアルゴリズムを理解し,目的にあう構文解析器を生成および応用ができる | 構文解析の原理とアルゴリズムを理解し,目的にあう構文解析器を生成および応用ができる. | 構文解析の原理とアルゴリズムを理解し,目的にあう構文解析器を生成できる. | 構文解析の原理とアルゴリズムを理解し,目的にあう構文解析器を生成できない. |
学科の到達目標項目との関係
JABEE基準1 学習・教育到達目標 (d)(1) 専門工学(工学(融合複合・新領域)における専門工学の内容は申請高等教育機関が規定するものとする)の知識と能力
JABEE基準1 学習・教育到達目標 (d)(4) (工学)技術者が経験する実務上の問題点と課題を解決し,適切に対応する基礎的な能力
JABEE基準1 学習・教育到達目標 (e) 種々の科学,技術および情報を利用して社会の要求を解決するためのデザイン能力
JABEE基準1 学習・教育到達目標 (f) 論理的な記述力,口頭発表力,討議等のコミュニケーション能力
学習目標 Ⅱ 実践性
学校目標 D(工学基礎) 数学,自然科学,情報技術および工学の基礎知識と応用力を身につける
学科目標 D(工学基礎) 数学,自然科学,情報技術および計算機システムⅠ・Ⅱ,オペレーティングシステムⅠ・Ⅱ,情報理論などを通して,工学の基礎知識と応用力を身につける.
本科の点検項目 D-ⅳ 数学,自然科学,情報技術および工学の基礎知識を専門分野の工学的問題解決に応用できる
学校目標 E(継続的学習) 技術者としての自覚を持ち,自主的,継続的に学習できる能力を身につける
本科の点検項目 E-ⅱ 工学知識,技術の修得を通して,継続的に学習することができる
学校目標 F(専門の実践技術) ものづくりに関係する工学分野のうち,得意とする専門領域を持ち,その技術を実践できる能力を身につける
学科目標 F(専門の実践技術) ものづくりに関係する工学分野のうち,情報工学実験,情報通信Ⅰ・Ⅱ,システム工学などを通して,得意とする専門領域を持ち,その技術を実践できる能力を身につける.
本科の点検項目 F-ⅰ ものづくりや環境に関係する工学分野のうち,専門とする分野の知識を持ち,基本的な問題を解くことができる
本科の点検項目 F-ⅱ 実験,演習,研究を通して,課題を認識し,問題解決のための実施計画を立案・実行し,その結果を解析できる
教育方法等
概要:
コンピュータシステムを構成するソフトウェアを一般にシステムソフトウェアと呼ぶ.本講義ではコンパイラに注目し,形式言語解析の基礎理論とアルゴリズムについて学び,演習課題も含めた内容に取り組むことになる.特に,コンパイラを構成するための理論・技術の中心となる字句解析と構文解析については,早くから自動生成の方法が確立されている.本講義では,このような自動生成ツール(Lex,Yacc)を利用したコンパイラの構成方法とそれらの背景にある理論について詳しく学習する.
授業の進め方・方法:
授業は座学を中心に進めるが,コンピュータを使用した演習も実施する.
授業内容は,到達目標に記載した3つ内容を中心に学習する.字句解析および構文解析の学習については,字句解析器生成ツール(Lex)と構文解析器生成ツール(Yacc)を使用した演習課題に取り組み,実践的な内容からコンパイラの構成方法と内部処理について理解する.
1.言語処理系(コンパイラ)の構成要素における役割,目的,機能の学習
2.字句解析の原理とアルゴリズムの学習,字句解析器生成ツール(Lex)の演習
3.構文解析の原理とアルゴリズムの学習,構文解析器生成ツール(Yacc)の演習
到達目標の確認として,演習課題2回,中間試験1回,定期試験1回を実施し,これらを成績評価に含める.また,定期試験の結果によっては再試験を実施する.ただし,演習課題の提出状況や授業態度等に問題がある学生には,再試験を実施しない場合もある.
注意点:
受講に際して,教科書,ノート,筆記用具を持参すること.適宜,資料を配布することがある.また,演習課題の提出が必須となることから,プログラム作成に関連する知識,特に「データ構造とアルゴリズム」に関する内容を復習しておくこと.演習課題の提出物は期限までに提出すること.報告・連絡・相談もなく提出期限内に課題が提出されない場合は,課題評価点を減点する.提出物の内容が不十分な場合には再提出を求める.なお,講義予定に変更がある場合には,講義中に連絡するので注意すること.
本講義は学修単位制を導入していることから,自学自習として講義および演習に取り組む前には,関連分野の予習復習をおこなうこと.また,演習課題に取り組む時間が多く必要となることから,コンピュータ実習室(情報処理実習室,情報システム実習室)を積極的に利用すること.
授業計画
|
|
週 |
授業内容 |
週ごとの到達目標 |
前期 |
1stQ |
1週 |
言語処理系の歴史,言語処理系の構成要素,コンパイラの論理的構造 |
言語処理系の構成要素について理解し役割と意味を説明できる.また,コンパイラの論理的構造を理解し説明できる.
|
2週 |
形式言語の文法定義,BNF記法,構文図式,解析木 |
形式言語の文法を定義し文法定義に用いる表記方法(BNF,構文図式等)を理解できる.また,言語の構文から解析木を導出できる.
|
3週 |
形式言語の文法定義,BNF記法,構文図式,解析木 |
形式言語の文法を定義し文法定義に用いる表記方法(BNF,構文図式等)を理解できる.また,言語の構文から解析木を導出できる.
|
4週 |
字句解析,正規表現,状態遷移図,非決定性有限オートマトン(NFA),決定性有限オートマトン(DFA),NFAからDFEへの変換処理 |
字句解析の役割と仕組みを理解し説明できる.また,字句解析を行う正規表現から有限オートマトンを構成し,その状態数の最小化ができる.
|
5週 |
字句解析,正規表現,状態遷移図,非決定性有限オートマトン(NFA),決定性有限オートマトン(DFA),NFAからDFEへの変換処理 |
字句解析の役割と仕組みを理解し説明できる.また,字句解析を行う正規表現から有限オートマトンを構成し,その状態数の最小化ができる.
|
6週 |
字句解析,正規表現,状態遷移図,非決定性有限オートマトン(NFA),決定性有限オートマトン(DFA),NFAからDFEへの変換処理 |
字句解析の役割と仕組みを理解し説明できる.また,字句解析を行う正規表現から有限オートマトンを構成し,その状態数の最小化ができる.
|
7週 |
字句解析,正規表現,状態遷移図,非決定性有限オートマトン(NFA),決定性有限オートマトン(DFA),NFAからDFEへの変換処理 |
字句解析の役割と仕組みを理解し説明できる.また,字句解析を行う正規表現から有限オートマトンを構成し,その状態数の最小化ができる.
|
8週 |
字句解析演習(Lex) |
字句解析生成器ツール(Lex)を利用して目的にあう字句解析器を生成できる.
|
2ndQ |
9週 |
字句解析演習(Lex) |
字句解析生成器ツール(Lex)を利用して目的にあう字句解析器を生成できる.
|
10週 |
構文解析,上向き構文解析,下向き構文解析 |
構文解析の役割と仕組みを理解し説明できる.また,異なる構文解析手法について,それぞれの差異を理解し説明できる.
|
11週 |
構文解析,上向き構文解析,下向き構文解析 |
構文解析の役割と仕組みを理解し説明できる.また,異なる構文解析手法について,それぞれの差異を理解し説明できる.
|
12週 |
構文解析,上向き構文解析,下向き構文解析 |
構文解析の役割と仕組みを理解し説明できる.また,異なる構文解析手法について,それぞれの差異を理解し説明できる.
|
13週 |
構文解析,上向き構文解析,下向き構文解析 |
構文解析の役割と仕組みを理解し説明できる.また,異なる構文解析手法について,それぞれの差異を理解し説明できる.
|
14週 |
構文解析演習(Yacc) |
構文解析生成器ツール(Yacc)を利用して目的にあう構文解析器を生成できる.
|
15週 |
構文解析演習(Yacc) |
構文解析生成器ツール(Yacc)を利用して目的にあう構文解析器を生成できる.
|
16週 |
定期試験 |
到達目標の項目1.2.3.を満足している.
|
評価割合
| 演習課題 | 中間試験 | 定期試験 | 合計 |
総合評価割合 | 30 | 20 | 50 | 100 |
基礎的能力 | 15 | 20 | 20 | 55 |
専門的能力 | 15 | 0 | 30 | 45 |
分野横断的能力 | 0 | 0 | 0 | 0 |