view final_main/chapter1.tex @ 0:ce014a8b669e draft default tip

wrote final thesis
author kaito
date Mon, 21 Apr 2014 21:42:23 +0900
parents
children
line wrap: on
line source

\chapter{背景と目的}
\label{chap:introduction}
\pagenumbering{arabic}

% 序論の目安としては1枚半ぐらい.
% 英語発表者は,最終予稿の「はじめに」の英訳などを載せてもいいかも.
 
%\section{背景と目的}
当研究室では, プログラムをコードセグメント, データセグメントという単位を用いて書くという手法を提案している. この手法を用いてプログラミングを行う言語として Continuation based C (以下CbC) というプログラミング言語を開発しており, これは C の下位の言語にあたる. CbC においてコードセグメント間の処理の移動は goto 文を用いた軽量継続によって行われ, これは Tail Call Elimination というコンパイラの持つ最適化の強制によって実現される. CbC では継続前の code segment に戻ることはなく, 状態遷移ベースのプログラミングを行うのに適しており, これは OpenCL, CUDA, そして Cerium といった並列開発環境を用いたプログラムの記述に向いている. \\
 これまでに開発された CbC のコンパイラは太田昌孝氏の Micro-C をベースにしたものと GNU の GCC をベースにしたものの二種があり, GCC 上に実装した CbC コンパイラはその最適化の恩恵により, Micro-C ベースのものと比較して実行速度が 2.5 倍程速い \cite{gcc46}. \\
 GCC 上に CbC コンパイラを実装した理由の一つに, 当時の UNIX 環境における コンパイラの標準が GCC であったからというものがあった. しかし, Free BSD の最新版である 10.0, Mac OS X の最新版である Mavericks では GCC の代わりに LLVM/clang が用いられるようになり\cite{FreeBSD}, 環境が変わりつつあることがわかる. 
このような背景から, LLVM/clang を用いて CbC をコンパイルできるのが良いという考えが生じた. 本研究では LLVM/clang 上に CbC コンパイラを実装することを目的とする. 


%\section{論文の構成}

%\section{Introduction}