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


Kaito Tokumori
December 17, 2013

研究目的

 当研究室ではプログラムをコードセグメント、データセグメントという単位を用いて書くという手法を提案している。その手法を用いてプログラミングを行う言語として"CbC"の開発を行っており、これはCの下位の言語である。CbCにおいてコードセグメント間の移動はgoto文を用いた軽量継続によって行われ、これはTail Call Eliminationという最適化の強制によって実現される。

本研究過去に開発されたmicro-c,GCC版のコンパイラに続くLLVM/Clang上でのCbCコンパイラの開発を行う。

今回したこと

__CbC_envの自動生成

__returnの実装 (1)

__returnの実装 (2)

__returnの実装 (3)

__returnの実装 (4)

__returnの実装 (5)

次回課題

LLVMのお話

clangのお話

たとえば clang auaua.cとかauaua.cppとかやった場合



clangがC/C++/Obj-CをLLVM IRにして、それからLLVM Core libraryを利用してmachine codeにする。

CbCのお話(1)

CbCのお話(2)

環境付き継続について(1)

環境付き継続について(2)

goto mainPresentation();