修論タイトル:ソース-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][研究室内部向け情報]