情報システムプロジェクトI

このページは2023年度の「情報システムプロジェクトI」の公式ホームページです. ここに講義録,課題,レポートの提出方法他の情報を掲載します.


資料


セマンティックアクション検査について

7月12日締め切りのセマンティックアクション部に対し, bsort.k whileif.k primeInc.k arrayInc.k sumProduct.k および こちらのエラー入りK23言語プログラムによる自動検査を実施します.

終了しないプログラムの提出禁止

様々な K23言語プログラムに対し,Kc.java の動作が正常に終了するだけでなく, 生成されたアセンブラコードに対するvsmの動作も正常に終了することを確認してから 提出してください.

アセンブラコードのファイル名について

どの K23言語プログラムをコンパイルしても,必ず OpCode.asm というファイルが生成 されるようにして下さい.bsort.asm や whileif.asm などのファイルが生成されても 自動検査では無視されます.

vsm でのテストについて

自動検査では,アセンブラコードではなく,アセンブラコードをvsmで実行した出力が 正しいかどうかを確認します.様々なK23言語のプログラムをコンパイルし, OpCode.asm をvsm で 実行した結果が正しいかどうかを充分確認してから提出して下さい. 教員側で用意した Kc23 が生成するアセンブラコードと異なってもvsmでの実行結果が同じであればOKです. 教員側で用意した Kc23 はわざと変なコードを生成するようにしています. なお、Kc23Opt だとさらに妙な(最適化済みの)コードを生成します.もちろん、実行結果は同じになります.

提出するファイルについて

Kc.java だけでなく,念のため, Symbol.java,Type.java,Operator.java, FileScanner.java,Var.java, VarTable.java,Token.java, LexicalAnalizer.java等,各自のPCでKc.java を動作させるために使用してい るファイルも提出してください.


構文解析器検査について

6月21日締め切りの構文解析器に対し, bsort.k および こちらのエラー入りK23言語プログラムによる 自動検査を実施します.

終了しないプログラムの提出禁止

字句解析の時と同様,正常に終了しないプログラムは絶対に提出しないで下さい.

様々なテストを各自で実施してから提出

字句解析の時と同様, 付録Aに掲載しているサンプルプログラムに加え, マクロ構文に反するエラーを含む様々なK23言語プログラムを自分で作成し, 充分にテストをしてから提出してください.

エラーメッセージについて

構文解析器がエラーを検出したかどうかは, 指導書の p.29 プログラム例4 Kc.java 内に記載してあるエラーメッセージが表示されたかどうかで判定します. このエラーメッセージは絶対に変更しないで下さい. また,エラーを含まないK21言語プログラムを解析し受理した際には, 一切のメッセージは表示させないようにして下さい. 「解析終了」や「正しいプログラムです」などといったメッセージ, あるいは解析中のログなどが表示されると,自動採点の妨げになります.


左再帰性の除去・左繰り出しについて

こちらにマクロ構文の左再帰性の除去・左括り出しの正解例を公表しました。各自で自分の求めた答と合っているか確認しておいてください。


字句解析器検査について

終了しないプログラムの提出禁止

字句解析を実行しても正常に終了しないプログラムは絶対に提出しないこと. 既に提出している人はすぐに削除すること.提出されたプログラムは自動的に 実行・採点されますが,そのようなプログラムがあると自動採点が継続できな くなります.正常に終了しないプログラムは絶対に提出しないで下さい.

様々なテストを各自で実施してから提出

自動採点は,指導書の付録Aに掲載しているサンプルプログラムに加え,マイ クロ構文に反するエラーを含むプログラムや,正しいのにエラーと判定されが ちなプログラムなどに対しても実施します.各自で様々な条件を想定して,充 分にテストをしておくこと.

また,字句解析器検査についての注意も参照してください.


課題プログラムの提出について

課題プログラムの提出については,以下のページを参照してください.


[警告] 本科目では,シラバスにある通りのスケジュールでコンパイラの完成を目指す. 特に,次にあげる週のレポート(課題プログラム)提出期限は厳守すること.提 出期限はそれぞれの週の翌週とする.締切後に提出された場合,大きく減点する.

これらの週で提出するプログラムも含め,課題としている全てのプログラムが 採点対象となり,試験と同じ意味を持つ.従って,他人のプログラムを写して 提出した場合,写した者も写させた者も,試験でカンニングしたことになり, 本科目は不合格となる.必ず自分の力で完成させること.


プログラム例

以下にプログラム例を公開します.


欠席について

[注意] 大学の演習科目は,全回の出席が原則です. 疾病等やむを得ない事情で欠席する場合でも,休んだ回の内容を公式ページで確認し, 分からない部分は友人に前もって質問するなどして,必ず自力で理解しておくこと. 休んだ回のレポートも,出来るだけ速やかに提出すること.

休んだ回の次の実習日まで何もせず, 実習日当日に「先週休んだので,今週の内容が良く分かりません」「何をやったらいいのか分かりません」等の質問をしても, 教員は一切答えません.自力で解決してください.


参考資料


出席について

出席 : 講義開始時に,指定の席に着席している学生が「出席」(または「早退」) となります. オンライン受講では,授業開始時(13:15)までに GoogleClassrooom から出席カードが提出されており, かつ,プログラム課題がある場合は演習当日中(23:59まで)に作業中のプログラムが提出されていれば「出席」となります。

遅刻 : 講義開始後20分までに来た学生は 「遅刻」となります. オンライン受講では, 授業開始後20分まで(13:35まで)に出席カードが提出されれば「遅刻」となります. (1/2欠席)

欠席 : 講義開始後20分を過ぎても来ていない学生は「欠席」となります. オンライン受講では,授業開始後20分(13:35)を過ぎても出席カードが提出されない場合は 「欠席」となります.

早退 : プログラム課題がある場合,演習当日中(23:59まで)に作業中のプログラムが 提出されなければ「早退」となります. (1/2欠席

単位認定要件 : 3回欠席(遅刻/早退を含む)以上で 単位認定を行いません. ただし,欠席届や交通機関の延着,ネットワークのトラブルについては,その都度考慮します.


座席について

演習時には座席表に従って着席してください.