授業の目的 【日本語】 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 lecture aims to acquire the essential notions of programming languages and semantics formally by learning the basic and practical techniques for program analysis and behavior. |
|
|
授業の内容や構成 Course Content / Plan | | コンパイラは抽象度の高いプログラミング言語で書かれたソースプログラムをプロセッサに動作を直接指示する目的プログラムに変換する。ソースプログラムは通常文脈自由言語で規定され,人間が直接的に理解できる記述である。コンパイラは,ソースプログラムを構文解析して文脈自由文法の導出過程を構成し,導出過程で定められる意味に従って,目的コードを生成する。構文解析では,導出過程の構成が決定的に行われる予測型構文解析および上昇型構文解析について学ぶ。コード生成においては,振舞いの基本表現である中間表現と,中間表現と等価な意味を持つプログラムの中で効率的なプログラムを得る最適化手法について紹介する。
1. コンパイラ概論
2. 字句解析
3. 構文解析
4. 意味解析
5. 実行時環境
6. 中間コード生成
7. 目的コード生成
8. コード最適化 | A 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 context-free grammar to be recognized by a programmer directly. The compiler parses a source program through derivations of context-free grammar. Then, the object code is generated according to the derivations. We learn two parsing types: predicting top-down and ascending bottom-up parsing. While generating object codes, we provide intermediate representations for basic descriptions of program behavior and several optimization techniques 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% are qualified for the credits.
A student must be able to explain the knowledge and techniques in the lecture about 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) | | |
|