修論タイトル:ソース-to-C型トランスレータ向けデバッガの実装手法 (2016年度 修士論文)

氏名:柳震

概要:

  ソース-to-ソース型トランスレータは高級言語を別の高級言語へ変換する言語 処理系であり,C言語へ変換する場合が多い.トランスレータの開発者はトラ ンスレータのソース言語用デバッガを用意することが望まれる.ターゲット言 語のデバッガでデバッグすることもできるが,ソース言語レベルでデバッグで きることが望ましい.
  そこで,ソース言語レベルのデバッガコマンドと引数を,対応するC言語の デバッガコマンドと引数へ変換することで,C言語デバッガを用いたソース言 語レベルデバッガを実現する方法を提案する.本研究ではC言語のデバッガと してLLDBを用いて,Scheme言語をC言語へ変換するHobbitコンパイラで生成さ れるC言語コードを例として,研究手法を説明する.
  本研究の手法はまずHobbitコンパイラの改造を通じて,生成されるC言語プ ログラムに二つのリストを埋め込む.一つはScheme言語の変数名または関数名 を記録して,もう一つは対応するC言語による変数の実装コードまたは関数名 を記録する.そして,LLDBに埋め込まれたPython上のスクリプトでそのリスト をアクセスして,Scheme言語レベルのデバッガコマンドと引数をC言語レベル のデバッガコマンドと引数へ変換して,LLDBで解釈して,実行する.既存のデ バッガと比べて,本研究の手法はソース言語レベルのデバッグを実現できる.
  本研究ではHobbitコンパイラを対象としたが,Hobbitコンパイラ以外のソー ス-to-C型トランスレータにも適用できるはずであり,将来は共通APIを用意す ることで,様々なトランスレータへ少ない手間で対応することを考えている.


[修論pdf][研究室内部向け情報]