関数型言語SML#のためのネイティブコードレベルデバッグ環境の実現方式

Bibliographic Information

Other Title
  • Implementation Method of Native Code Level Debugging Environment for SML#

Search this article

Abstract

本論文では,ネイティブコードにコンパイルされたSML#プログラムをデバッグする環境を提案する.SML#は,C言語との直接連携や並列に動くマルチスレッドのサポートを持つ関数型言語である.これらSML#特有の機能を駆使して書かれた関数型のプログラムの動作は,関数型言語としての記号的なプログラムの評価規則だけでなく,C言語などと同様に,オペレーティングシステムの振舞いや,ネイティブコードレベルでのレジスタやメモリの扱いにも依存しうる.このようなプログラムのデバッグを行うためには,単にSML#のソースコードレベルで実行を追跡するだけでなく,SML#コンパイラが生成したマシンコードの振舞いを直接追跡できることが望ましい.以上のようなデバッグ環境を関数型言語においても実現することに向けた第一歩として,著者らはGDB(the GNU Project Debugger)を用いてSML#プログラムをデバッグ可能にするための方式の検討およびコンパイラの改良を行った.本論文では,その詳細を報告する.

This paper proposes a debugging environment for SML# programs compiled into native machine code. SML# is a functional programming language equipped with the seamless interoperability with the C language and native multithread support. By using these features, the programmer can enjoy both the declarative programming with the full-scaled functional programming language and system programming exploiting the operating system functionalities including multithreads. To debug an SML# program with such features, it is helpful to check the behavior of its compiled machine code with respect to the usage of the low-level memory, registers, and operating system features, as well as to trace the control flow of the source code. Towards realizing a software development environment that assists such the machine code level debugging for functional languages, we extend the SML# compiler to make GDB (the GNU Project Debbuger) available for SML# programs as well as C. This paper reports the details of the development.

Journal

Details 詳細情報について

Report a problem

Back to top