| Item type |
Trans(1) |
| 公開日 |
2023-08-28 |
| タイトル |
|
|
タイトル |
Toward Type Debugging Using Partial Evaluation |
| タイトル |
|
|
言語 |
en |
|
タイトル |
Toward Type Debugging Using Partial Evaluation |
| 言語 |
|
|
言語 |
eng |
| キーワード |
|
|
主題Scheme |
Other |
|
主題 |
[発表概要, Unrefereed Presentatin Abstract] |
| 資源タイプ |
|
|
資源タイプ識別子 |
http://purl.org/coar/resource_type/c_6501 |
|
資源タイプ |
journal article |
| 著者所属 |
|
|
|
National Institute of Informatics |
| 著者所属 |
|
|
|
University of Copenhagen |
| 著者所属(英) |
|
|
|
en |
|
|
National Institute of Informatics |
| 著者所属(英) |
|
|
|
en |
|
|
University of Copenhagen |
| 著者名 |
Kanae, Tsushima
Robert, Glück
|
| 著者名(英) |
Kanae, Tsushima
Robert, Glück
|
| 論文抄録 |
|
|
内容記述タイプ |
Other |
|
内容記述 |
In this study, we introduce a method for executing ill-typed programs. There are two advantages to executing an ill-typed program with our method. The first advantage is that after execution, the cause of the type error is easier to find because the distance is smaller between the cause of the type error and the part of the code that conflicts with the error. The second advantage is that even though the language is statically typed, ill-typed programs are executed as much as possible. The idea is to “freeze” the part of the program which is the most likely cause of type errors. Our approach to “transformational debugging” has three phases: In the first phase, we use the error messages from the compiler's type inferencer to “freeze” (dynamize) parts of the program. In the second phase, the type inferencer is used to reduce the number of “frozen” parts. In the third phase, a partial evaluator evaluates the partially “frozen” program. During partial evaluation, the frozen parts are treated as dynamic and, therefore, remain as code without being evaluated, while the other parts are treated as static and are evaluated. In this paper, generic algorithms for our debugging method, two heuristic strategies for the algorithms, and promising preliminary results are presented. We explore a novel avenue for partial evaluation: partial evaluation as a helpful tool for debugging. |
| 論文抄録(英) |
|
|
内容記述タイプ |
Other |
|
内容記述 |
In this study, we introduce a method for executing ill-typed programs. There are two advantages to executing an ill-typed program with our method. The first advantage is that after execution, the cause of the type error is easier to find because the distance is smaller between the cause of the type error and the part of the code that conflicts with the error. The second advantage is that even though the language is statically typed, ill-typed programs are executed as much as possible. The idea is to “freeze” the part of the program which is the most likely cause of type errors. Our approach to “transformational debugging” has three phases: In the first phase, we use the error messages from the compiler's type inferencer to “freeze” (dynamize) parts of the program. In the second phase, the type inferencer is used to reduce the number of “frozen” parts. In the third phase, a partial evaluator evaluates the partially “frozen” program. During partial evaluation, the frozen parts are treated as dynamic and, therefore, remain as code without being evaluated, while the other parts are treated as static and are evaluated. In this paper, generic algorithms for our debugging method, two heuristic strategies for the algorithms, and promising preliminary results are presented. We explore a novel avenue for partial evaluation: partial evaluation as a helpful tool for debugging. |
| 書誌レコードID |
|
|
収録物識別子タイプ |
NCID |
|
収録物識別子 |
AA11464814 |
| 書誌情報 |
情報処理学会論文誌プログラミング(PRO)
巻 16,
号 3,
p. 33-33,
発行日 2023-08-28
|
| ISSN |
|
|
収録物識別子タイプ |
ISSN |
|
収録物識別子 |
1882-7802 |
| 出版者 |
|
|
言語 |
ja |
|
出版者 |
情報処理学会 |