シラバス情報

科目授業名称(和文) Name of the subject/class (in Japanese)
コンパイラ
科目授業名称(英文) Name of the subject/class (in English)
Compiler
授業コード Class code
9961167
科目番号 Course number
63INPRL301

教員名
滝本 宗宏
Instructor

開講年度学期
2023年度前期
Year/Semester
曜日時限
水曜1限
Class hours

開講学科・専攻 Department
創域理工学部 数理科学科、情報計算科学科

Department of Mathematics, Faculty of Science and Technology
Department of Information Sciences, Faculty of Science and Technology
単位数 Course credit
2.0単位
授業の方法 Teaching method
講義

Lecture
外国語のみの科目(使用言語) Course in only foreign languages (languages)
-
授業の主な実施形態 Main class format
対面授業/On-site class


概要 Description
コンパイラの構成要素の基礎を学ぶ。特に,構文解析では種々の下降型と上昇型の解析法を理解し,実現できる.
目的 Objectives
コンパイラの仕組みと理論を身に付ける.
本学科のディプロマ・ポリシーにある「自然・人間・社会に係る幅広い教養を修得し、専門分野の枠を超えて横断的にものごとを俯瞰できる能力」を獲得するための科目である.
到達目標 Outcomes
1. 任意の文字列を正規表現で表せるようになる.
2. 正規表現からオートマトンを作成できる.
3. 任意の構文を文脈自由文法で表せるようになる.
4. 文脈自由文法からいくつかの構文解析器を実現できるようになる.
5. コード生成の基本が分るようになる.
卒業認定・学位授与の方針との関係(学部科目のみ)
基礎学力(各分野の基礎)/基礎学力(諸分野の知識)/基礎学力(横断的俯瞰能力)
履修上の注意 Course notes prerequisites
なし
アクティブ・ラーニング科目 Teaching type(Active Learning)
-
-

準備学習・復習 Preparation and review
各回の講義内容を十分復習し,講義中に示すポイントを説明できるようにしておくこと.
4時間程度を目安に,予習,復習を行うこと.
成績評価方法 Performance grading policy
授業中の発言(20%),レポート(20%程度)および期末試験(60%程度)によって評価する.



学修成果の評価 Evaluation of academic achievement
・S:到達目標を十分に達成し、極めて優秀な成果を収めている
・A:到達目標を十分に達成している
・B:到達目標を達成している
・C:到達目標を最低限達成している
・D:到達目標を達成していない
・-:学修成果の評価を判断する要件を欠格している

・S:Achieved outcomes, excellent result
・A:Achieved outcomes, good result
・B:Achieved outcomes
・C:Minimally achieved outcomes
・D:Did not achieve outcomes
・-:Failed to meet even the minimal requirements for evaluation

教科書 Textbooks/Readings
教科書の使用有無(有=Y , 無=N) Textbook used(Y for yes, N for no)
Y
書誌情報 Bibliographic information
実践コンパイラ構成法,滝本宗宏著,コロナ社
MyKiTSのURL(教科書販売サイト) URL for MyKiTS(textbook sales site)
教科書および一部の参考書は、MyKiTS (教科書販売サイト) から検索・購入可能です。
It is possible to search for and purchase textbooks and certain reference materials at MyKiTS (online textbook store).
https://gomykits.kinokuniya.co.jp/tokyorika/​​​

参考書・その他資料 Reference and other materials
最新コンパイラ構成技法,Andrew W. Appel著,神林靖,滝本宗宏訳,翔泳社

授業計画 Class plan
1   言語処理系   コンパイラやインタプリタ等の言語処理系の概要を理解する.

2   フェーズの概要   コンパイラの基本構成要素であるフェーズ全体の概要を理解する.

3   字句・構文解析器の概要 字句解析系と構文解析系の概要を理解する.   

4   字句解析の基礎(1)   正規表現を理解し,正規表現によってトークンを定義
                 できるようになる.   

5   字句解析の基礎(2) 非決定性有限オートマトンを理解し,正規表現から
                 非決定性有限オートマトンに変換できるようになる.

6   字句解析の基礎(3) 決定性有限オートマトンを理解し,非決定性有限オートマトン
                 を決定有限オートマトンに変換できるようになる.

7   lex   典型的な字句解析系生成系であるlexの使い方を習得する.

8   構文解析の基礎(1)   構文解析の基礎である文脈自由文法を述べる

9   予測型構文解析   文脈自由文法から予測型構文解析器を作成できるようになる.

10  LR構文解析の基礎     上昇型(LR)構文解析法のうち,先読みを必要としない
                 方法(LR(0))を理解する.
     
11  実践的なLR構文解析(1)   実践的なLR構文解析法であるSLR構文解析法理解する.

12  実践的なLR構文解析(2)   解析できる文法のクラスが広いLR(1)構文解析法について
                 理解し,LR(1)のメモリ効率を改善したLALR(1)構文解析法
                 を理解する.

13  yacc   構文解析器生成系であるyaccの使い方を習得する.  

14 コード生成 目的コードを生成する方法を理解する.

15 到達度評価と解説 これまでの理解度を試験によって評価する.

授業担当者の実務経験 Work experience of the instructor of the class
-
教育用ソフトウェア Educational software
-
コンパイラの実現例をプログラミング言語OCamlを使って示す.OCaml処理系を準備しておくとよい.

備考 Remarks
なし