シラバス情報

科目授業名称(和文) Name of the subject/class (in Japanese)
言語処理系特論
科目授業名称(英文) Name of the subject/class (in English)
Special Lecture of Language Processing System 30
授業コード Class code
996D102
科目番号 Course number
63CSARO501

教員名
滝本 宗宏
Instructor
Munehiro Takimoto

開講年度学期
2026年度前期
Year
2026年度
Semester
①First semester
曜日時限
水曜2限
Class hours
The second class on Wednesday

開講学科・専攻 Department
創域理工学研究科 情報計算科学専攻

Department of Information Sciences, Graduate School of Science and Technology
単位数 Course credit
2.00単位
授業の方法 Teaching method
講義

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

概要 Description
プログラムを中間表現に変換する方法とその中間表現の性質を理解し,中間表現の静的解析および,解析結果を用いたプログラム変形法を学ぶ.プログラム変形の応用として,並列化法にも触れる.

The objective of this course is to understand intermediate representations in terms of transformation to it and its properties, and to learn static analyses and program transformations based on their results. Applications of the program transformations also include some parallelizing methods.
目的 Objectives
プログラムを中間表現に変換する方法とその中間表現の性質を理解し,中間表現の静的解析および,解析結果を用いたプログラム変形法を学ぶ.プログラム変形の応用として,並列化法にも触れる.
本専攻のディプロマポリシーにある「情報科学専攻の専門分野に応じた高度な専門知識、および、研究能力」を身に付けるための科目である.

Through the course, you can master intermediate representations (IR) in terms of transformation to it and its properties, and static analyses on IR and program transformations based on their results, along the diploma policy of this department.
到達目標 Outcomes
1. 制御フローグラフの性質と構成法を理解する.
2. データフロー方程式が与えられると,そのデータフロー解析を実現し,自動的に解を得ることができる.
3. 解析解を用いて,いくつかのプログラム変形を実現できる.

1. Understand properties and construction of a control flow graph,
2. Once a dataflow equation is given, can implement a solver of the dataflow equation and obtain results from it automatically.
3. Can transform programs based on results of the solver.
卒業認定・学位授与の方針との関係(学部科目のみ)
履修上の注意 Course notes prerequisites
-
アクティブ・ラーニング科目 Teaching type(Active Learning)
-
-

準備学習・復習 Preparation and review
各回の講義内容を十分復習し,講義中に示すポイントを説明できるようにしておくこと.

You have to check the contents described in this class, and become able to explain the points shown in this class.
成績評価方法 Performance grading policy
レポートによって評価する.

evaluated by reports.
学修成果の評価 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)
N
書誌情報 Bibliographic information
-
MyKiTSのURL(教科書販売サイト) URL for MyKiTS(textbook sales site)
教科書および一部の参考書は、MyKiTS (教科書販売サイト) から検索・購入可能です。
​https://gomykits.kinokuniya.co.jp/tokyorika/​​​

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 著,神林靖,滝本宗宏 訳,翔泳社

Andrew W. Appel, Modern Compiler Implementation in ML

授業計画 Class plan
1 制御フロー解析(1)    プログラムを基本ブロックに分割する方法を理解する.
  
2   制御フロー解析(2)    基本ブロックに分割されたプログラムから効率のよいコード
                 を生成する方法を理解する.

3   データフロー解析(1)   データフロー解析の理論と実現法について理解する。

4   データフロー解析(2)   データフロー解析の高速な解法について理解する.
     する。

5   データフロー解析に基づく最適化(1)
                 データフロー解析の解を基に行う基本的なコード最適化を
                 習得する.

6   データフロー解析に基づく最適化(2)
                 データフロー解析の解を基に行う高度なコード最適化を学ぶ.

7   レジスタ割付け   レジスタ彩色アルゴリズムとその実現法について理解する。



8   ループ最適化(1)   ループ発見法について解説し、その際に必要な支配関係の概
     念と解析法について理解する.

9   ループ最適化(2)   ループ最適化を幾つか紹介し、その実現法について理解する.

10  支配木           支配関係を表現する支配木を作成するアルゴリズムを理解する.

11  静的単一代入形式(1)   静的単一代入形式について定義を与え、その変換法について
     理解する.

12  静的単一代入形式(2)   静的単一代入形式に基づく高度なコード最適について理解する.

13  命令スケジューリング(1) 大域命令スケジューリングの基本を習得する.   
14  命令スケジューリング(2) ループスケジューリングについて、ソフトウェアパイプライ
      ニングを中心に理解する.

15  メモリ階層   キャッシュの仕組みと、その有効な利用法について理解する.

1. Control flow graph (1)
Understand how to split a sequence of instructions to basic blocks.
2. Control flow graph (2)
Understand how to generate efficient target code through suitably combining basic blocks.
3. Dataflow analysis (1)
Understand theory and implementation of dataflow analyses.
4. Dataflow analysis (2)
Learn intra-procedural optimizations based on the results of dataflow analyses.
5. Code optimizations based on dataflow analyses (1)
Master basic code optimizations based on results of dataflow analyses.
6. Code optimizations based on dataflow analyses (2)
Learn sophisticated code optimizations based on results of dataflow analyses.
7. Register allocation
Understand how to implement a register coloring algorithm.
8. Loop optimizations (1)
Understand a manner for detecting a loop, and a concept and implementation of dominators needed for it.
9. Loop optimizations (2)
Understand some loop optimizations and its implementation.
10. Dominator tree
Understand how to construct a dominator tree representing dominance relation.
11. SSA form (1)
Understand the definition of SSA form and transformation to SSA form.
12. SSA form (2)
Understand sophisticated optimizations based on SSA form.
13. Instruction level scheduling (1)
Lean a basis of global instruction scheduling.
14. Instruction level scheduling (2)
Understand loop scheduling including software pipelining.
15. Memory hierarchy
Understand behaviors of a cache memory and its effective utilization.

担当教員の実務経験とそれを活かした教育内容 Work experience of the instructor
-
教育用ソフトウェア Educational software
-
-

備考 Remarks
-

授業でのBYOD PCの利用有無 Whether or not students may use BYOD PCs in class
授業での仮想PCの利用有無 Whether or not students may use a virtual PC in class