SchemeからC++への単純な変換
スポンサーリンク
概要
- 論文の詳細を見る
本研究ではScheme言語(R4RS)の部分集合からC++言語へ変換する手法Scm2Cpp11の提案と実装を行う.Scm2Cpp11の生成するC++プログラムには編集が容易である点と,高速なプログラムであるという2つの特徴がある.Scm2Cpp11では型推論やalpha変換といった高度な操作を行わない.単純なプログラムコードの文字列置換のみでSchemeからC++への変換を行う.たとえば(car x)はcar(x)に変換される.単純な変換であるため,生成されたC++のプログラムは変換前のSchemeプログラムとの対応が容易に分かるようになっている.生成されたC++プログラムは編集が容易なため,OpenMPを使った並列化等も容易に行うことができる.またScm2Cpp11の生成するC++プログラムは他の良く知られた多くのScheme処理系より高速であるという特徴がある.高速となる理由は,単純な変換とするために,オブジェクトがデータ本体以外の型情報や環境情報などの付加情報を省かれて変換されるからである.たとえばSchemeの整数変数はC++のint型変数に変換される.int型変数に変換されるため,他の環境情報などを変換後のオブジェクトに格納しない.もう1つの理由は,Scm2Cpp11の変換はC++のtemplateやマクロの機能を使って,C++のコンパイル時の前処理として可能な限りの処理を行おうとする点である.このために,コンパイル時に前処理された後の実行プログラムが高速となる.
- 2014-06-10