2015年度工学院大学大学院・情報学専攻

言語処理系特論(Language Processor)[2407]


2単位
五百木 伸洋 非常勤講師  
最終更新日 : 2015/10/17

<授業のねらい及び具体的な到達目標>
コンパイラとは,CやC++などのプログラミング言語で記述されたソースプログラムを計算機が理解可能な機械語に翻訳するソフトウェアである。コンパイラの特徴の1つに,プログラムの実行時間を短縮するために不要な命令を削除したり,計算機のアーキテクチャに合わ命令の実行順序を変更する最適化処理がある。
最適化処理は,命令セット,メモリ,キャッシュメモリ,レジスタファイルといった計算機の基本的な構造に加え,メニイコア,SMP,MUNAなどの計算機構成を考慮しプログラムを高速化する。
しかし,コンパイラはソースプラグラムに記述された静的な情報しか利用できないため,最適化処理には限界がある。したがって,計算機の性能を最大限引き出すためには,コンパイラのみに頼るのではなく,計算機仕様とコンパイラの最適化処理を理解した上で,ソースプログラムを計算機仕様に合わせて記述しなければならない。
本講義では,構文解析や意味解析といったコンパイラの基礎について解説するとともに、メニイコア,SMP,GPGPU等の最新の計算機仕様を,計算機発展の歴史を踏まえて紹介する。スーパスカラやSIMD機構など、プロセッサが持つ演算機構を効率的に利用するためのコンパイラ最適化処理を理解すると,プログラムの実効性能を引出す上でボトルネックとなる部分が見えてくることから,計算機仕様とコンパイラ最適化処理の関係を理解することは,効率的なプログラムを作成する上で非常に重要である。

<授業計画及び準備学習>
1 計算機発展の歴史とアーキテクチャの変遷
2 GPGPUやAPU等の最新計算機アーキテクチャ
3 プログラミング言語の歴史
4 コンパイラの構成と処理
5 最適化処理の概要
6 命令レベル最適化
7 ループ構造変換最適化
8 キャッシュメモリ向け最適化
9 自動並列化技術
10 ハードウェア性能を引出すためのプログラム作成方法
11 オブジェクト指向言語の処理方式
12 仮想計算機JavaVM(Virtual Machine)の概要
13 Java実行時のメモリ割当方式とGC(Garbage Collection)
14 Javaの最適化技術(HotSpotVM及びJITコンパイラ)

<成績評価方法及び水準>
授業の出席点とレポートによって評価する。

<教科書>
特定の教科書を使用せず,必要に応じて授業の際に資料又は文献を配布する。

<参考書>
1.中田育夫:コンパイラの構成と最適化,朝倉書店,1999年
2.今城哲二,布広永示,岩沢京子,千葉雄司;コンパイラとバーチャルマシン,オーム社,2004年
3.金田康正,片桐孝洋,黒田久泰,山本有作,五百木伸洋,並列処理 −高速化と性能向上のために   −,コロナ社,2010年

<オフィスアワー>
授業に対する質問・意見はメールで随時受け付けます。 メールアドレスは,第1回目の講義の時に連絡します。

<学生へのメッセージ>
最先端の計算機アーキテクチャとコンパイラの最適化・自動並列化技術に興味がある学生の受講を歓迎します。


このページの著作権は学校法人工学院大学が有しています。
Copyright(c)2015 Kogakuin University. All Rights Reserved.