担当教員・TA

  • 平石 拓 (教員)
  • 馬谷 誠二 (教員,7号館225室,内線 5968)
  • 五十嵐 雄 (TA,7号館227室)

連絡用メールアドレス

le4comp@fos.kuis.kyoto-u.ac.jp (担当教員とTA全員に届きます)

お知らせ (別ページ)

必ず定期的に確認すること.

内容

  • MiniMLというML言語のサブセット言語を対象としたコンパイラをOCaml言語を用いて作成する.
  • コンパイラのターゲット言語はARMアセンブリ言語とする(動作確認にはRaspberry Pi 3を用いる).
  • 一人で一つのコンパイラを作成する.

実験の進め方

  • 表紙 から始まる実験資料を読み進めながら,資料中の課題を順にこなしていけば良い.
  • 全課題は課題リストで確認できる.
    • 任意は必須ではない(達成すれば加点する).

その他の資料

  1. 配布コード一式
  2. Raspberry Pi 3 Model Bセットアップ資料
  3. 2015年度講義「コンパイラ」講義スライド
  4. VMインタプリタ機能拡張(五十嵐研の学生さん謹製)
    • 詳しい使い方はリンク先のreadme.md参照.
  5. ARMシミュレータ機能拡張(TAさん謹製)
    • 詳しい使い方はzipファイル中のREADME.txt参照.
    • ラズパイと100%同じ動作を保証するものではありません.
    • 最終報告会では必ずラズパイを使用すること.

日程

実験日 イベント
10月04日(木) テーマ分け,初回説明(3限目)
10月05日(金)  
10月11日(木)  
10月12日(金)  
10月18日(木)  
10月19日(金)  
10月25日(木) 中間レポート1提出締切
10月26日(金)  
11月01日(木)  
11月02日(金)  
11月08日(木) 中間レポート2提出締切
11月09日(金)  
11月15日(木)  
11月16日(金) 午後に最終報告会
11月23日(金) (最終レポート提出締切)
11月24日以降 (Raspberry Pi 3を225室へ返却)

レポートについて

各レポートの課題および提出締切

レポート種別 提出締切 提出する課題
中間レポート1 10月25日(木) 23:59 課題1–5
中間レポート2 11月08日(木) 23:59 課題6–7
最終レポート 11月23日(金) 23:59 課題8–14

提出方法

  • 全てのレポートは原則としてで作成したものをPDF化し,ソースコード一式とあわせ,上記の連絡用メールアドレス宛にメールで提出してください.

  • メールのSubject欄は以下の形式に従うこと(全て半角).

    le4comp2018_レポート種別_学生番号
    
    • レポート種別は,1 (中間1),2 (中間2),3 (最終) のいずれか.
    • 例: le4comp2018_1_1234567890

レポートの内容

形式や分量は自由であるが,あまりに内容の薄いレポートは再提出を求めることがある.最低限:

  • 課題の解答
  • 各プログラムの設計方針
  • 各部の説明
    • 説明にあたっては,一緒に提出するソースファイル中のどの部分について説明しているのかを明確にすること.
  • 感想

を含めること.さらに,工夫した点,難しかった点などを書くことが望ましい.

その他の注意

  • レポートの表紙には:

    • 氏名
    • レポート種類(中間1,中間2,最終のいずれか)
    • 提出日

    を明記すること.

  • ソースコード一式を提出する前には,./minimlc -vを実行して,作成したところまでの結果が表示できることを必ず確認すること.

  • 再提出に関する注意

    • 追加・修正した箇所がどこかの簡単な説明を必ずメール本文に書くこと.

採点の内訳

  • コンパイラの完成度
    • エレガントな設計・プログラムかどうか
    • 最終報告会の内容
    • 生成されるアセンブリコードの質
  • 他人に読んでもらうレポートとしての出来
    • 好ましいレポート:
      • プログラムを読まなくても,設計・実装の概要がつかめる
      • プログラムを詳しく読む際の助けとなるようなレポート
    • 悪いレポート:
      • プログラムを直接読むのと同程度の情報しか与えないレポート

最終報告会 (別ページ)

速度コンテスト (別ページ)

よくある質問(FAQ)とその回答 (別ページ)

関連ページ