学部・大学院区分
Undergraduate / Graduate
情報学部
時間割コード
Registration Code
1001139
科目区分
Course Category
専門科目(コンピュータ科)関連専門科目(自然,人社)
科目名 【日本語】
Course Title
コンパイラ
科目名 【英語】
Course Title
Compiler
コースナンバリングコード
Course Numbering Code
SIS-13-3013-J
担当教員 【日本語】
Instructor
結縁 祥治 ○
担当教員 【英語】
Instructor
YUEN Shoji ○
単位数
Credits
2
開講期・開講時間帯
Term / Day / Period
秋1期 火曜日 1時限
秋1期 金曜日 1時限
Fall1 Tue 1
Fall1 Fri 1
対象学年
Year
3年
3
授業形態
Course style
講義
Lecture
開講系(学部)・開講専攻(大学院)
Subject
CS共通
必修・選択
Required / Selected
CS必修


授業の目的 【日本語】
Goals of the Course(JPN)
プログラミング言語と言語処理系であるコンパイラに関する諸概念と実現法の基礎を習得する。
授業の目的 【英語】
Goals of the Course
Fundamentals for programming languages and overview for compilers
到達目標 【日本語】
Objectives of the Course(JPN)
計算機におけるプログラミング言語のコンパイラに関する諸概念と実現法の基礎を習得することを通じて,プログラムの正確な振舞いとプログラム解析の基礎技術を学び,プログラムの構文と意味の形式的な概念を得ることを目標とする。
到達目標 【英語】
Objectives of the Course
This lecuter aims to acquire the essential notions of programming languages and semantics in a formal way by learning the basic and practical techniques for program analysis and behavior.
授業の内容や構成
Course Content / Plan
コンパイラは抽象度の高いプログラミング言語で書かれたソースプログラムをプロセッサに動作を直接指示する目的プログラムに変換する。ソースプログラムは通常文脈自由言語で規定され,人間が直接的に理解できる記述である。コンパイラは,ソースプログラムを構文解析して文脈自由文法の導出過程を構成し,導出過程で定められる意味に従って,目的コードを生成する。構文解析では,導出過程の構成が決定的に行われる予測型構文解析および上昇型構文解析について学ぶ。コード生成においては,振舞いの基本表現である中間表現と,中間表現と等価な意味を持つプログラムの中で効率的なプログラムを得る最適化手法について紹介する。

1. コンパイラ概論
2. 字句解析
3. 構文解析
4. 意味解析
5. 実行時環境
6. 中間コード生成
7. 目的コード生成
8. コード最適化
Compiler is a family of software to convert a high-level programming language to a machine-level sequence of codes. A source program is a description defined by a context-free grammar to be recognized by a programmer directly. Compiler parses a source program through derivations of a context-free grammar. The object code is generated according to the derivations. We learn two types of parsing: predicting topdown parsing and ascending bottom-up parsing. While generating object codes, we learn intermediate representations for basic descriptions of program behaviour and serveral optimization technique to generate efficient object codes preserving the meaning of source programs.

1. Introduction
2. Lexical Analysis
3. Parsing Techniques
4. Semantic Analysis
5. Runtime Environment
6. Intermediate Code Generation
7. Object Code Generation
8. Code Optimization
履修条件・関連する科目
Course Prerequisites and Related Courses
オートマトン・形式言語、計算機アーキテクチャ基礎
Automata and Formal Languages, Basic Computer Architecture
成績評価の方法と基準
Course Evaluation Method and Criteria
講義中に与える演習課題の評価50%,期末試験50%,合計100点満点で60点以上を合格とする。
上記にあげた各項目について説明した知識や手法について説明でき、コンパイラの構成とプログラミング言語の概念について説明できることを合格の基準とする。
50% for exercises and 50% for the term-end exam. More than 60% is qualified for the credits.
A student needs to be able to explain the knowledge and techniques in the lecture about the compiler construction and programming languages for the qualification.
教科書・参考書
Textbook/Reference book
教科書を指定し,補助資料を必要に応じて配布する。
The textbook is shown and supplemental materials are distributed in the lecture
課外学習等(授業時間外学習の指示)
Study Load(Self-directed Learning Outside Course Hours)
講義において説明した内容を理解するために課題を与える。
Excercises are given to have better understandings of the lecture.
授業開講形態等
Lecture format, etc.
状況に応じてリアルタイム配信でリモート講義を実施する。
遠隔授業(オンデマンド型)で行う場合の追加措置
Additional measures for remote class (on-demand class)