コンパイラ・コンパイラ: 課題1

課題1
flex を用いて C のソース・プログラムを整形するツールを作成する.
プログラムのプロトタイプが,format3.l という flex のソース・プログラムとして用意されている.

1) このソース・プログラムを課題1の手引きに 従って flex を用いて C プログラムに変換し, これを用いて実行可能プログラムを作成してください. また課題1の手引き を参考にこのプログラムの動作を確認してください.
2) format3.l はまだ完成したプログラムではありません.ソースファイルを分析して, 何が完全でないかを考察してください. このソースファイルから作成したツールにかけるとうまく整形されないような C のソースファイルの例の一つはこれです. ツールがこのファイルで正しく動作しないのはなぜか考察しなさい.
3) 2) で考察された format3.l の問題点を改良してください.

上の 1), 2), 3) についてのレポートを html ファイルとして作成してください. この html ファイルには,2) で作成した C のソースファイルの例と, 3) で作成した format3.l の改良版のソースファイルがリンクされているように してください(この二点が欠けているレポートは失格とします). 2) については,例として作成された C プログラムがなぜ正しく整形されないかを 日本語で説明してください. 3) については,何をどのように改良したのかを日本語で説明してください. 改良にまだ問題点が残っている場合には,それが何かを説明し, どのような方針でさらに改良すればいいかということについて, 何かアイデアがある場合にはそれを説明してください. なお html ファイルの書きかたは, 次回の課題2のレポートの書式のを参考にしてください.

この html ファイルを各自のホームページにリンクし,

を書いた email をfuchino@doki.cs.kitami-it.ac.jp

に送ってください. このアドレスは課題の提出用のもので,私の通常のアドレスとは異なるので 注意してください.また, この email の submission がない場合には 課題の結果の提出はなされなかったものとみなされるので注意してください. レポートの提出期限は一週間後とします.
以下のおまけの課題のレポートについてはこれ以降も受け付けますが, おまけの課題だけの提出の場合には原則としては成績を出しません.

上の課題が簡単すぎてつまらなかった人のためのおまけの課題:
C のソースファイルが与えられるとそれを整形し,整形の結果を表示するような html ファイルを出力するツールを flex を用いて作成する. この際,C のソースファイルに含まれる <, >, & などの記号は,それぞれ &lt &gt &amp などと 書き変える必要があることに注意する.


Sakae' Fuchino

Email: fuchino@math.cs.kitami-it.ac.jp

Last modified: Fri May 29 21:45:15 JST 2020