WEKO3
アイテム
関数型プログラムの宣言的デバッグシステムの設計と実現
https://ipsj.ixsq.nii.ac.jp/records/30970
https://ipsj.ixsq.nii.ac.jp/records/3097087c5eea0-bb94-4950-939f-72c8da8d84f1
名前 / ファイル | ライセンス | アクション |
---|---|---|
![]() |
Copyright (c) 1989 by the Information Processing Society of Japan
|
|
オープンアクセス |
Item type | SIG Technical Reports(1) | |||||||
---|---|---|---|---|---|---|---|---|
公開日 | 1989-09-08 | |||||||
タイトル | ||||||||
タイトル | 関数型プログラムの宣言的デバッグシステムの設計と実現 | |||||||
タイトル | ||||||||
言語 | en | |||||||
タイトル | Design and Implementation of a Declarative Debugging System for Functional Programs | |||||||
言語 | ||||||||
言語 | jpn | |||||||
資源タイプ | ||||||||
資源タイプ識別子 | http://purl.org/coar/resource_type/c_18gh | |||||||
資源タイプ | technical report | |||||||
著者所属 | ||||||||
NTTソフトウェア研究所 | ||||||||
著者所属 | ||||||||
NTTソフトウェア研究所 | ||||||||
著者所属(英) | ||||||||
en | ||||||||
NTT Software Laboratories | ||||||||
著者所属(英) | ||||||||
en | ||||||||
NTT Software Laboratories | ||||||||
著者名 |
高橋, 直久
× 高橋, 直久
|
|||||||
著者名(英) |
Naohisa, Takahashi
× Naohisa, Takahashi
|
|||||||
論文抄録 | ||||||||
内容記述タイプ | Other | |||||||
内容記述 | 宣言的デバッグシステムDDS(Declarative Debugging System)では、プログラマはプログラムに期待する実行結果や途中結果を与え(宣言的に定義し)、それに基づいてシステムがプログラムのテキストと実行履歴を解析しバグ探索空間を絞り込む。本稿では、DDSの設計課題を考察し、実現上重要な3つの機構、すなわち、バグ発生源の判定機構、プログラムの部分実行機構、プログラムの診断機構について議論する。被デバッグプログラムに対して診断に不要な部分の実行を抑止する“計算の凍結”機能が重要であることを示し、その実現法とデバッグへの適用法を明らかにする。さらに、プログラム構造の静的な解析とバグ検出のヒューリスティクスを用いてプログラマの宣言と部分実行結果を解析する手法を提示する。最後に、VAX/VMS上に作成したDDSのプロトタイプを用いたデバッグ例を示し、関数型プログラムのデバッグにDDSが有効であることを示す。 | |||||||
論文抄録(英) | ||||||||
内容記述タイプ | Other | |||||||
内容記述 | The declarative debugging system for functional programs, DDS, presented in this paper is an interactive system which has an elaborated diagnoser and a new partial execution mechanism called a filter. The advantages of the diagnoser in DDS are as follows: The programmers are required only to find some available assertions on input-output relations of functions among the intermediate results of program diagnosis issued by the diagnoser. In addition, the diagnoser, where the heuristics on debugging of functional programs are incorporated, examines the computation tree in conjunction with the results of the static analysis of the program, resulting in both requiring the programmers to give less assertions and allowing us to use the filter so as not to waste a great deal of space and time. The filter controls the execution of the program being debugged and saves a portion of the computation tree in a small, bounded buffer efficiently. To avoid computation and recomputation unnecessary for diagnosis, the filter "freezes" a portion of the computation, and makes it accessible as a special value to the computation requiring it. This freezing mechanism has advantages for constructing computation trees which include such troublesome expressions as will produce a lot of intermediate results, invoke functions infinitely, suspend execution by incurring run-time errors like type-error-Operations. The proposed approaches allow us to construct a unified framework for program diagnosis, in that DDS can diagnose not only large programs terminating with incorrect values but also non-terminating programs. A prototype of DDS, which has been implemented using Common Lisp on VAX/VMS, demonstrates the usefulness of declarative debugging of functional programs. | |||||||
書誌レコードID | ||||||||
収録物識別子タイプ | NCID | |||||||
収録物識別子 | AN10485570 | |||||||
書誌情報 |
情報処理学会研究報告プログラミング(PRO) 巻 1989, 号 71(1989-PRO-030), p. 31-40, 発行日 1989-09-08 |
|||||||
Notice | ||||||||
SIG Technical Reports are nonrefereed and hence may later appear in any journals, conferences, symposia, etc. | ||||||||
出版者 | ||||||||
言語 | ja | |||||||
出版者 | 情報処理学会 |