お知らせ:

概要

  • 担当: 佐藤 三久
  • 内容:(便覧掲載概要)
    言語処理系(コンパイラとインタープリタ)の入門で、その理論と技法の基礎を 解説する。簡単なCコンパイラを例に内部の仕組みを具体的に紹介する。

    この講義は、言語処理系、すなわちプログラミング言語のコンパイラとインター プリタのしくみを習得するのが目的である。目標としては、簡単な言語処理系 を作成できるようになることである。

    講義を行い、実際の経験を課題で積んでもらいながら進める。 大体、次のような手順で進める。

    1. 字句解析と構文解析の基礎として、式の評価をするプログラム (つまり、電卓のようなもの)を作って見る。
    2. 例として、C言語風の手続き型言語を考える。
    3. インタープリターの基礎として、この言語に対しインタプリターを設計する。
    4. 構文解析、コード生成の練習のために、この言語に対し のコンパイラを作る。
    5. 時間があれば、コードの最適化について、触れる。

    講義日程・資料

    日時 1 時限 2 時限 講義資料
    9月6日 言語処理系とは 基本:式の処理 [講義資料1]
    9月13日 字句解析の基礎 top-down parserの作り方 [講義資料2]
    [講義資料3]
    9月20日 構文解析の基礎 演習 [講義資料4]
    9月27日 構文解析の実際:yaccの使い方
    tiny Cのデータ構造
    tiny C のインタプリタ(1) [講義資料tinyC-1]
    [講義資料tiny C-2]
    [講義資料tiny C-3]
    [講義資料5]
    [講義資料6]
    10月4日 tiny Cのインタプリター(2) 演習 [講義資料7]
    10月11日 学園祭のためお休み
    10月18日 中間試験(9時〜11時)
    10月25日 スタックマシンについて スタックマシンへのコンパイラ [講義資料8]
    [講義資料9]
    11月1日 レジスタマシンへのコンパイラ 演習 [講義資料10]
    11月8日 コード最適化入門、まとめ 演習 [講義資料11]
    11月15日 休講

    演習課題

    詳細は、 こちら