2012
DOI: 10.1145/2398856.2364579
|View full text |Cite
|
Sign up to set email alerts
|

Functional programs that explain their work

Abstract: We present techniques that enable higher-order functional computations to "explain" their work by answering questions about how parts of their output were calculated. As explanations, we consider the traditional notion of program slices, which we show can be inadequate, and propose a new notion: trace slices. We present techniques for specifying flexible and rich slicing criteria based on partial expressions, parts of which have been replaced by holes. We characterise program slices in an algorithm-independent… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
17
0

Year Published

2013
2013
2023
2023

Publication Types

Select...
4
2
1

Relationship

3
4

Authors

Journals

citations
Cited by 12 publications
(17 citation statements)
references
References 26 publications
0
17
0
Order By: Relevance
“…In addition, we encountered a problem with proving correctness of the disclosure slicing algorithm proposed in [3]; specifically, Lemma 2 in the conference version had a subtle problem, which we avoid through a reformulation of the disclosure slicing algorithm. This article is also closely related to work on using traces for program slicing [40] published in ICFP 2012. The two papers present different aspects of a single research project; the trace model and some aspects of the slicing algorithms are closely related.…”
Section: Discussionmentioning
confidence: 94%
See 1 more Smart Citation
“…In addition, we encountered a problem with proving correctness of the disclosure slicing algorithm proposed in [3]; specifically, Lemma 2 in the conference version had a subtle problem, which we avoid through a reformulation of the disclosure slicing algorithm. This article is also closely related to work on using traces for program slicing [40] published in ICFP 2012. The two papers present different aspects of a single research project; the trace model and some aspects of the slicing algorithms are closely related.…”
Section: Discussionmentioning
confidence: 94%
“…The tracing and extraction features are formalized later in the article, and our prototype supports these examples, as well as the disclosure and obfuscation slicing algorithms presented later in the paper. The Slicer and LambdaCalc tools of Perera et al [40,39] employ similar ideas, and have been run on larger examples, but focus on slicing as a debugging and program understanding technique and does not yet support provenance extraction or disclosure and obfuscation slicing. Developing a unified and mature implementation supporting all of these ideas is left for future work; Perera et al [40,39] should be consulted for further implementation details.…”
Section: Introductionmentioning
confidence: 99%
“…Languages Perera et al (2012) de ne another tracing model for lazy functional programs that is based on program slicing. They prove several desirable properties for their approach.…”
Section: Other Debuggers For Lazy Functionalmentioning
confidence: 99%
“…Our recent work [3,49] considers traces and trace slicing for a pure, call-byvalue calculus with product, sum and recursive types, and recursive functions, using a conventional large-step semantics; paths become unwieldy in this setting, and we adopt an alternative approach based on partial values. Other features such as exceptions, laziness, and first-class continuations (call/cc) pose similar, and possibly greater, challenges from the point of view of provenance.…”
Section: Related Workmentioning
confidence: 99%
“…We also describe the use of derivations for a form of incremental computation (loosely inspired by self-adjusting computation [5]), in order to demonstrate that derivations are expressive enough to meet this strong requirement. We have made additional contributions since the first version of this paper was written [3,49], and we conclude with a discussion of these results and future steps.…”
Section: Introductionmentioning
confidence: 99%