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

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

2013年度・前期・金曜日 Ⅳ–Ⅴ時限
担当: 香川
対象: 工学部 RISE 3年生以上
コンパイラ・データベース演習（全体）のページ
（日程など）

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

## お知らせ

- (7/25 New!)
挑戦問題も含めて 7/24 までに提出されていた解答の採点を完了しましたので、
各個人へのメッセージを見て、
NG, NC と判定された必須課題はやり直しておいてください。
- 課題の提出・やり直しは 8/9（金）までにお願いします。

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

- (7/22 New!)
必須・発展問題（挑戦問題以外）の採点を完了しましたので、
各個人へのメッセージを見て、
NG, NC と判定された必須課題はやり直しておいてください。
（必須問題は 10 問, ファイル数では 13 あります。
未提出の課題については、メッセージは何も出ないので、
未提出の課題がないか、自分で確認しておくこと。）
- 本演習はコンパイラとの同時受講を、
強く勧めます。

## 採点基準について

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

必須課題すべてと、選択課題の半分を解けば満点とする。
個々の課題については、以下の通りとする。

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

### 注意

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

## 課題

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

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

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

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

提出状況チェック、
位置確認

コメント、

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

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

提出状況チェック、
位置確認

コメント、

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

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

提出状況チェック、
位置確認

コメント、

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

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

提出状況チェック、
位置確認

## ダウンロード

🐻 をクリックすると、
WappenLiteというシステムが起動して編集・コンパイル・実行できます。

注意: WappenLite はまだまだ不安定なところが多いので、
常時（通常のテキストエディターで）バックアップをとりながら作業してください。

WappenLite が突然クラッシュした場合、このアプレットを起動すると、WappenLite で使用していたファイルが残っている可能性があるフォルダを、
新しいものから順に表示します。

使い方は、
ボタンでスタート、
ボタンで
保存／コンパイル、
[Console] タブの
ボタンで実行、です。

通常のテキストエディタを使用するバージョンと Blockly を使用するバージョンがあります。

Blockly
はプログラムをブロックの組み合わせで作成できる Web アプリケーションで、
Flex 用 Blockly
は香川研究室の卒業研究で作成したものです。
Flex 用 Blockly 単独でも、プログラムの編集に利用できます。
「Blockly 用の XML ファイル」をダウンロードして、
Flex 用 Blockly の XML タブに貼り付けてください。

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

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

- lexer0.l,
(WappenLite),
(WappenLite with Blockly),
Blockly 用の XML ファイル
lexer1.l,
(WappenLite),
(WappenLite with Blockly),
Blockly 用の XML ファイル
lexer2.l,
(WappenLite)
- Bison について
- calc.y,
(WappenLite)

Flex と Bison を同時に使う

myparser.y,
mylexer.l,
(WappenLite)

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

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

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

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

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

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

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

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

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

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

Hello.j,
(WappenLite)
ManyHello.j,
(WappenLite)

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

OpPrec.c
（PDF）
(WappenLite)

Koji Kagawa (kagawa@eng.〜)

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