計算機言語処理

科目基礎情報

学校 奈良工業高等専門学校 開講年度 2017
授業科目 計算機言語処理
科目番号 0037 科目区分 専門 / 必修
授業形態 講義 単位の種別と単位数 履修単位: 2
開設学科 情報工学科 対象学年 4
開設期 通年 週時間数 2
教科書/教材 「コンパイラとバーチャルマシン」オーム社 今城哲二・布広永示・岩澤京子・千葉雄司 共著/適宜,資料を配布する。
担当教員 布目 淳

到達目標

1. コンパイラの論理的構成を説明することができる。中置記法の算術式を後置記法に変換できる。
バッカス記法による文法記述を理解できる。正規表現から決定性有限オートマトンに変換できる。
2. 構文解析の役割を説明できる。シフト還元構文解析法で構文解析できる。
文法から直接左再帰性を除去できる。
LL(1)文法を判定できる。
3. LR 構文解析法で構文解析できる。
SLR(1)構文解析表およびLR(1)構文解析表を作成できる。
意味解析の役割を説明できる。
名前表の検索アルゴリズムを説明できる。
4. コード生成法を説明できる。
制御フロー解析およびデータフロー解析の方法を説明できる。
最適化変換の方法を説明できる。
例外処理のためのコード生成法,実行環境の役割,メモリ管理手法をそれぞれ説明できる。

ルーブリック

理想的な到達レベルの目安標準的な到達レベルの目安未到達レベルの目安
評価項目1
評価項目2
評価項目3

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

準学士課程(本科1〜5年)学習教育目標 (2) 説明 閉じる
JABEE基準 (d-1) 説明 閉じる
JABEE基準 (d-2a) 説明 閉じる
システム創成工学教育プログラム学習・教育目標 B-2 説明 閉じる
システム創成工学教育プログラム学習・教育目標 D-1 説明 閉じる

教育方法等

概要:
ソースコードをプログラミング言語の記法に沿って解析し,その意味する内容と同一な実行プログラムに変換するまでの手順,および,変換されたプログラムを効率的に動作させるための処理である最適化やガベージコレクションについて,処理の手順に沿って学習する。
授業の進め方・方法:
座学による講義を行う。随時,例題および演習問題を提示し,理解度の向上を図る。
定期試験返却時には解説を行い,理解が不十分な点を解消する。
注意点:
関連科目
「プログラミングI・II」を基礎とする。オートマトンの詳細は専攻科の「計算理論」で学ぶ。
学習指針
ノートを取る際には十分に思考して内容を理解するように努めること。授業中に扱う例題や演習問題は積極的に解答してみること。疑問点は講義中に解決するよう心掛けること。
自己学習
授業時間以外の予習・復習に努めること。教科書で紹介されているソースコードに目を通したり,実際にコンパイルしてみることは,理解を深めるために有効である。

授業計画

授業内容 週ごとの到達目標
前期
1stQ
1週 コンパイラの概要 コンパイラの役割を説明できる。
2週 算術式の記法 中値記法と後置記法の違いを理解し,相互に変換できる。
3週 コンパイラの構成 コンパイラの論理的な構成を説明できる。
4週 バッカス記法 バッカス記法と構文図式で記述された文法を理解できる。
5週 字句解析の役割 字句解析の役割を説明できる。
6週 非決定性有限オートマトン 非決定性有限オートマトンの動作を説明できる。
7週 決定性有限オートマトン 決定性有限オートマトンの制約条件を説明できる。
8週 字句解析の例 正規表現から決定性有限オートマトンを生成できる。
2ndQ
9週 構文解析の役割 構文解析の役割を説明できる。
10週 上向き構文解析法 上向き構文解析法の概要を説明できる。
11週 下向き構文解析法(1) 下向き構文解析法の概要を説明できる。
12週 下向き構文解析法(2) 下向き構文解析法の問題点を説明できる。
13週 LL 構文解析(1) LL 構文解析の原理を説明できる。
14週 LL 構文解析(2) LL(1)文法の判定アルゴリズムを説明できる。
15週 前期末試験 授業内容を理解し,試験問題に対して正しく解答できる。
16週 試験返却・解説 試験問題を見直し,理解が不十分な点を解消する。
後期
3rdQ
1週 LR 構文解析(1) LR 構文解析における項と状態の定義を説明できる。
2週 LR 構文解析(2) LR 構文解析法で構文解析ができる。
3週 SLR(1)構文解析 SLR(1)構文解析表を作成できる。
4週 LR(1)構文解析 LR(1)構文解析表を作成できる。
5週 意味解析 意味解析の役割を説明できる。
6週 名前表 名前表の検索アルゴリズムを説明できる。
7週 コード生成(1) 式と代入文のコード生成法を説明できる。
8週 コード生成(2) if 文とwhile 文のコード生成法を説明できる。
4thQ
9週 制御フロー解析 プログラムの制御フローを解析できる。
10週 データフロー解析 データフロー方程式の意味を説明できる。
11週 最適化変換 最適化変換の方法を説明できる。
12週 例外処理 例外処理の実行手順とコンパイル方法を説明できる。
13週 実行環境 実行環境の役割を説明できる。
14週 メモリ管理 メモリ管理の手法を説明できる。
15週 学年末試験 授業内容を理解し,試験問題に対して正しく解答できる。
16週 試験返却・解説 試験問題を見直し,理解が不十分な点を解消する。

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

分類分野学習内容学習内容の到達目標到達レベル授業週
専門的能力分野別の専門工学情報系分野プログラミング主要な言語処理プロセッサの種類と特徴を説明できる。3
プログラミング言語は計算モデルによって分類されることを説明できる。3
主要な計算モデルを説明できる。3
システムプログラム形式言語の概念について説明できる。3
オートマトンの概念について説明できる。3
コンパイラの役割と仕組みについて説明できる。3
情報数学・情報理論コンピュータ向けの主要な数値計算アルゴリズムの概要や特徴を説明できる。3

評価割合

試験課題レポート合計
総合評価割合8020100
基礎的能力8020100
専門的能力000