本講義の主題であるプログラミング言語処理系の実装は、この20年で動的コンパイルを行う方式が実用となり、技術的に大きな進歩がありました。特にJava言語をはじめとした言語では、実行時システムとJust-In-Timeコンパイラなどの改良により、静的なコンパイルを行う言語と遜色のない、場合によってはより高い性能を実現できるようになりました。これらの技術は最近のプログラミング言語処理系を研究するだけでなく、利用するにあたっても欠かせない知識となってきています。本講義では、このようなプログラミング言語処理系の実行時系、コンパイラ、最新技術に関して体系的な解説を行う予定です。
先進的なプログラミング言語処理系技術の現状がどのようなものであるか、またそれを可能にする個々の技術において重要な点が何であるかを理解する。
プログラミング言語処理系
動的コンパイル
Java言語
Just-in-Timeコンパイラ
✔ 専門力 | 教養力 | コミュニケーション力 | 展開力(探究力又は設定力) | 展開力(実践力又は解決力) |
各回の担当講師による講義を行います。集中講義のため、日程が変則的であることに注意して下さい。
授業計画 | 課題 | |
---|---|---|
第1回 | Runtime --- JVM Overview & Interpreter 担当: 緒方一則 11/30(木) 5・6限 | (その回の内容についてのレポート課題) |
第2回 | Runtime --- Object Management & Synchronization 担当: 河内谷清久仁 12/5(火) 5・6限 | (その回の内容についてのレポート課題) |
第3回 | Runtime --- Native memory management 担当: 緒方一則 12/5(火) 7・8限 | (その回の内容についてのレポート課題) |
第4回 | Compiler --- Overview 担当: 仲池卓也 12/7(木) 5・6限 | (その回の内容についてのレポート課題) |
第5回 | Compiler --- Dataflow Analysis 担当: 稲垣達氏 12/12(火) 5・6限 | (その回の内容についてのレポート課題) |
第6回 | Compiler --- Devirtualization & Inlining 担当: 石崎一明 12/12(火) 7・8限 | (その回の内容についてのレポート課題) |
第7回 | Compiler --- Trace Compilation & LLVM 担当: 井上拓 12/14(木) 5・6限 | (その回の内容についてのレポート課題) |
第8回 | Hot topic --- Open Source Java VM 担当: 堀江倫大 12/19(火) 5・6限 | (その回の内容についてのレポート課題) |
第9回 | Hot topic --- Full stack optimization 担当: 堀井洋 12/19(火) 7・8限 | (その回の内容についてのレポート課題) |
第10回 | Hot topic --- X10 担当: 竹内幹雄 12/21(木) 5・6限 | (その回の内容についてのレポート課題) |
第11回 | Hot topic --- H/W acceleration (GPGPU, HTM, FPGA) 担当: 石崎一明 1/9(火) 5・6限 | (その回の内容についてのレポート課題) |
第12回 | まとめと展望 担当: 小野寺民也 1/9(火) 7・8限 | (その回の内容についてのレポート課題) |
特に指定しません。
オンラインで講義資料を配布します。入手方法を講義時に通知します。
期末レポートによる。各回の講義においてそれぞれ提示される課題のうちいくつかを選択して回答する形になります。必要な回答数は講義時に通知します。
プログラミングの経験およびプログラミング言語処理系(コンパイラなど)についての基礎知識があることが望ましい。
増原英彦 (masuhara[at]is.titech.ac に「日本」のドメイン名を追加して下さい, 内線 3228)