| Dynamic slicing based on redex trails |
| Full text |
Pdf
(294 KB)
|
Source
|
ACM/SIGPLAN Workshop Partial Evaluation and Semantics-Based Program Manipulation
archive
Proceedings of the 2004 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
table of contents
Verona, Italy
Pages: 123 - 134
Year of Publication: 2004
ISBN:1-58113-835-0
|
|
Authors
|
|
| Sponsors |
|
| Publisher |
|
| Bibliometrics |
Downloads (6 Weeks): 0, Downloads (12 Months): 13, Citation Count: 6
|
|
|
ABSTRACT
Tracing computations is a widely used methodology for program debugging. Lazy languages, in particular, pose new demands on tracing techniques since following the actual trace of a computation is generally useless. Typically, they rely on the construction of a redex trail, a graph that describes the reductions of a computation and its relationships. While tracing provides a significant help for locating bugs, the task still remains complex. A well-known debugging technique for imperative programs is based on dynamic slicing, a method to find the program statements that influence the computation of a value for a specific program input.In this work, we introduce a novel technique for dynamic slicing in lazy functional logic languages. Rather than starting from scratch, our technique relies on (a slight extension of) redex trails. We provide a method to compute a correct and minimal dynamic slice from the redex trail of a computation. A clear advantage of our proposal is that one can enhance existing tracers with slicing capabilities with a modest implementation effort, since the same data structure (the redex trail) can be used for both tracing and slicing.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
E. Albert, M. Hanus, F. Huch, J. Oliver, and G. Vidal. Operational Semantics for Functional Logic Languages. Electronic Notes in Theoretical Computer Science, vol. 76 (Proc. of WFLP'02), 2002.
|
 |
2
|
|
| |
3
|
|
 |
4
|
B. Brassel , M. Hanus , F. Huch , G. Vidal, A semantics for tracing declarative multi-paradigm programs, Proceedings of the 6th ACM SIGPLAN international conference on Principles and practice of declarative programming, p.179-190, August 24-26, 2004, Verona, Italy
[doi> 10.1145/1013963.1013984]
|
 |
5
|
|
| |
6
|
A. Gill. Debugging Haskell by Observing Intermediate Data Structures. In Proc. of the 4th Haskell Workshop. Technical report, University of Nottingham, 2000.
|
 |
7
|
|
 |
8
|
|
| |
9
|
|
| |
10
|
M. Hanus (ed.). Curry: An Integrated Functional Logic Language. Available at: http://www.informatik.uni-kiel.de/~curry/+.
|
| |
11
|
|
| |
12
|
|
| |
13
|
|
| |
14
|
|
| |
15
|
S. Peyton~Jones, editor. Haskell 98 Language and Libraries: The Revised Report. CUP, 2003.
|
| |
16
|
|
| |
17
|
|
| |
18
|
|
| |
19
|
F. Tip. A Survey of Program Slicing Techniques. Journal of Programming Languages, 3:121--189, 1995.
|
| |
20
|
G. Vidal. Forward Slicing of Multi-Paradigm Declarative Programs Based on Partial Evaluation. In Logic-based Program Synthesis and Transformation, LOPSTR'02, pp. 219--237. Springer LNCS 2664, 2003.
|
| |
21
|
M. Wallace, O. Chitil, T. Brehm, and C. Runciman. Multiple-View Tracing for Haskell: a New Hat. In Proc. of the 2001 ACM SIGPLAN Haskell Workshop. Universiteit Utrecht UU-CS-2001-23, 2001.
|
| |
22
|
M.D. Weiser. Program Slicing. IEEE Transactions on Software Engineering, 10(4):352--357, 1984.
|
|