CbCコンパイラのLLVM3.4上での実装


Kaito Tokumori
July 9, 2013


研究背景と目的(1)

 現在までに多くのプログラミング言語が開発され、そのたびにプログラミング言語の流行は変化してきた。Cは比較的歴史の古い言語であるが、普及率が高く古い資産の多くがCを用いて記述されていたことから現在でも多くのシステム開発に用いられている。しかし、Cにはいくつか問題がある。その一つには関数呼び出しの際のオーバーヘッドが大きいことがある。さらに関数呼び出しを過度に繰り返すとスタックオーバーフローが生じる危険性もある。


研究背景と目的(2)

 当研究室ではこれらの問題に取り組むためCountinuation based C (CbC)という言語の開発を行なっている。CbCはCから関数呼び出しやループ制御を取り除き、代わりに継続(Continuation)を用いて制御を行う言語であり、継続とはプログラムの次の実行処理を表現する制御構造である。この特徴からCbCはCの下位言語、即ち互換性のある言語と考えることが出来る。
 CbCコンパイラは初めにmicro-cをベースとしたものが開発され、続いて2008年の研究によりGCCベースのものが開発された。本研究ではこれらに続くLLVMベースのコンパイラの開発を行う。


今週の課題



returnの挿入



TailCallElimについて



TailCallElimPassについて



TailCallElimPassについて