Proceedings of the 10th International ACM SIGPLAN Conference on Principles and Practice of Declarative Programming 2008
DOI: 10.1145/1389449.1389475
|View full text |Cite
|
Sign up to set email alerts
|

Comprehending finite maps for algorithmic debugging of higher-order functional programs

Abstract: Abstract. Bernie Pope introduced the idea of representing functional values as finite maps instead of partial applications into algorithmic debugging of higher-order functional languages. He implemented it in his Haskell debugger Buddha. Here we give an implementation-independent formal definition of algorithmic debugging for both representation in a single framework, even though the computation trees for the two representations have rather different structures. On this basis we prove the soundness of algorith… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
10
0

Year Published

2015
2015
2016
2016

Publication Types

Select...
3
2

Relationship

5
0

Authors

Journals

citations
Cited by 6 publications
(10 citation statements)
references
References 10 publications
0
10
0
Order By: Relevance
“…Buddha can represent functional values as nite maps and Pope stated that a computation tree with functional values as nite maps has to have a structure that is di erent from the EDT. Subsequently Chitil and Davie (2008) de ned the new computation tree structure formally by relating it to the ART, named it the function dependence tree (FDT), and proved its soundness for algorithmic debugging.…”
Section: Other Algorithmic Debuggers For Lazy Functional Languagesmentioning
confidence: 99%
“…Buddha can represent functional values as nite maps and Pope stated that a computation tree with functional values as nite maps has to have a structure that is di erent from the EDT. Subsequently Chitil and Davie (2008) de ned the new computation tree structure formally by relating it to the ART, named it the function dependence tree (FDT), and proved its soundness for algorithmic debugging.…”
Section: Other Algorithmic Debuggers For Lazy Functional Languagesmentioning
confidence: 99%
“…The expected result of the program is the ordered list [3,4,5], but when executed the program prints [3,5,4] instead. The program uses many standard library functions such as ++ and foldr that are trusted, that is, assumed to be correct.…”
Section: Background Observation and Ideamentioning
confidence: 99%
“…Values such as integers and lists are given in familiar syntax, but functional values have an extensional representation as finite maps, from observed arguments to observed results. 3 Note that only the observed expression is annotated. Other parts of the program that actually produce the value, in particular the definitions of helper functions such as span and ++, are left unchanged.…”
Section: Observing Intermediate Data With Hoodmentioning
confidence: 99%
See 1 more Smart Citation
“…Hence we omit monadic IO elsewhere in the paper 3. Parts of values, for example list elements, that are not demanded in the computation are just shown as underscore .…”
mentioning
confidence: 99%