コンパイラ・データベース演習 （コンパイラ）

# コンパイラ・データベース演習
（コンパイラ）

2019年度・前期・水曜日 Ⅳ–Ⅴ時限
担当: 香川・絹田
TA: 久保・佐野
対象: 工学部 ENIE 3年生以上
コンパイラ・データベース演習（全体）のページ
（日程など）

コンパイラ・データベース演習の香川担当分のページです。
受講者はこのページを随時チェックすること。

## お知らせ

提出完了者
（2019/08/09 13:20 現在）:

17T201, 17T206, 17T208, 17T213, 17T217, 17T219, 17T227, 17T234,
17T238, 17T239, 17T242, 17T245, 17T248, 17T249, 17T250, 17T253,
17T258, 17T260, 17T261, 17T268, 17T270, 17T271, 17T272, 17T274,
17T278, 17T281, 17T282, 17T289,

- このリストは自動更新ではありません。不定期に更新します。
- なお、提出完了していても合格点に達していない場合があります。
その場合は改めて連絡します。
- 課題の提出・やり直しは 8/09（金）23:59 までにお願いします。

それまでに、必須課題を提出していない場合は原則不合格となります。
それ以降に、提出しても原則加点できません。
（事情のある場合は事前に連絡してください。）

- (07/ New!)
/ 現在の採点状況
いちおう、すべての問題を採点しました（筈です）。
- (07/21 New!)
7/ 現在の採点状況
採点済みの問題 … すべての必須問題と
採点まだの問題 … すべての挑戦問題と
- (7/17 New!)
解答の採点を完了しましたので、
各個人へのメッセージを見て、
NG, NC と判定された必須課題はやり直しておいてください。
（必須問題は 10 問, ファイル数では 14 あります。
未提出の課題については、メッセージは何も出ないので、
未提出の課題がないか、自分で確認しておくこと。）
- シラバス
- 本演習はコンパイラとの同時受講を、
強く勧めます。

## 採点基準について

毎週の課題の、基本的な採点基準は以下の通りとする。

なお、合格／不合格の判定については、単純な加算で 60点以上を合格とするが、
秀・優・良・可の判定については、割合を考慮して調整をすることがある。

必須課題すべてと、選択（発展）課題の平均提出率分を完璧に解けば満点とする。
個々の課題については、以下の通りとする。

授業時間内に正解を提出 … 満点
（原則として自分の力で解くこと。ただし、TA・教員に聞くのは良い。）
締切（通常１週間後）までに正解を提出した。 … 40%
（他の学生に相談してもよい。）
締切までにそれなりの解答を提出した場合、
（他の学生に相談してもよい。）
… 締切時の解答と最終的な解答を総合的に判断して 1% 〜 40%
締切までに提出しなかった場合、
… 最終的に正解を提出しても 0% 〜 20%

### 注意

授業時間中に教員や TA に「この解答で提出して良いか？」と質問しても答えることはできない。
たとえ「良い」と答えたとしても、最終的に正解と判定するとは限らない。
あくまでも自分で課題の条件を満たすかどうか判断しなければならない。
コンパイル方法や文法事項・エラーメッセージの意味など、特定の課題に直接関係ない、
一般的な事項について他の学生に相談することは構わない。
（授業時間後に）特定の課題の解き方について、
他の学生と相談した場合は、ソースコードの先頭にコメントの形で、
学籍番号と氏名をあげて acknowledge すること。
単にソースコードを見せる、ソースコードのコピーを渡す、という教え方は禁止する。
締切後に、解答例を公開する場合がある。その場合は
締切後に提出した解答は採点に反映されず、締切時の解答で採点する。
また、類似の代替問題を出す場合もある。

## 課題

（管理者用）
トップページ、
データの更新、
テーブル、
管理用インデックス

- 授業用ページのパスワード発行は
このページで
行なって下さい。
- 注意:
設定が変更されたのに、変更が反映されないときは、
いったんログアウトして、
再度アクセスを試みて下さい。
- 必ず各自で提出したファイルのバックアップを取っておいて下さい。
（自分のノートPCだけではなく、stfileなどの大学のサーバのどこかにもバックアップしておいて下さい!!）
- 各個人へのメッセージ

### 第 1 回 05/22 （Flex）

### 着席位置、
課題、
アップロード、

（管理者用）
提出状況チェック、
literal_simple.lex 用,
literal_w.lex 用,
literal.lex 用,
comment_w.lex 用,
comment.lex 用,
位置確認

コメント、

### 第 2 回 06/05 （アセンブリ言語・演算子順位法）

### 着席位置、
課題、
アップロード、

（管理者用）
提出状況チェック、
nonassoc.c 用,
Arithmetic.j 用 ,
rightassoc.c 用,
Foo.j 用,
FizzBuzz.j 用,
位置確認

### 第 3 回 06/19 （LR 構文解析法）

### 第 4 回 07/03 （コード生成）

### 着席位置、
課題（問 1 は事前公開済み）、
アップロード、

（管理者用）
提出状況チェック、
while 用,
位置確認

### （参考）

この演習とは直接関係ありませんが、
コンパイラの授業と関係あるので紹介します。

香川研究室・大橋くんのページ
（香川研究室・大橋くん作成）

## ダウンロード

### Flex, Bisonのダウンロード（05/22 用）

Bison と Flex のインストール
Flex について

- lexer0.l,
lexer1.l,
lexer2.l,
- Bison について
- calc.y,

Flex と Bison を同時に使う

myparser.y,
mylexer.l,

Flex ソースファイルの色分けツール
正規表現の説明ツール

Flex のマニュアルと
Bison のマニュアルの日本語訳

### JFlex, jacc のダウンロード

JFlex, jacc は、Java 言語用の Flex, Bison に相当するものです。

JFlex と jacc のインストール
（この中の JFlex.jar と jacc.jar が必要です。）
JFlex について
jacc について
JFlex と jacc を同時に使う

JFlex のマニュアルと
jacc のマニュアル

### Oolong のダウンロード（06/05 用）

Oolong は JVM 用のアセンブラです。
本演習では Oolong をコンパイラのターゲットとして使用します。

oolong.jar
← Oolong について （oolong.jar の使用法、
05/22 配布）

oolong.jar は課題プログラムを作成するフォルダにコピーします。

Hello.j,
ManyHello.j,

### 演算子順位法について（06/05 用）

OpPrec.c
（PDF）
(WappenLite)

Koji Kagawa (kagawa@eng.〜)

（〜の部分はSPAM mail予防のため省略）