Functional programs that explain their work

Functional programs that explain their work
复制标题

解释其工作的函数式程序

DOI:
10.1145/2364527.2364579
复制
发表时间:
2012
期刊:
--
影响因子:
--
通讯作者:
Perera R
Perera R
中科院分区:
--
文献类型:
--
作者:
Perera R

文献摘要

参考文献

被引文献

相似文献

我们提出的技术,使高阶函数计算,以“解释”他们的工作,回答问题,他们的输出部分是如何计算的。作为解释,我们认为传统的概念程序片,我们可以是不够的,并提出了一个新的概念:跟踪片。我们提出的技术,用于指定灵活和丰富的切片标准的基础上部分表达式,其中部分已被替换为holes.We的程序切片在算法独立的方式,并显示存在一个最小的切片为一个给定的标准。然后,我们提出了一个算法,calledunevaluation,用于计算最少的程序片的计算具体化为痕迹。观察程序片的局限性,我们开发了一个概念的跟踪片作为另一种形式的解释,并提出了一个算法来计算它们。未求值算法可以应用于跟踪片的任何子跟踪,以计算其求值生成该子跟踪的程序片。程序、跟踪和它们的切片之间的这种紧密对应关系可以使程序员能够根据表达计算的编程语言来交互地理解计算。我们提出了一个工具的形式实现,讨论了一些重要的实际实施问题,并提出了一些解决这些问题的技术。
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 fashion and show that a least slice for a given criterion exists. We then present an algorithm, calledunevaluation, for computing least program slices from computations reified as traces. Observing a limitation of program slices, we develop a notion oftrace sliceas another form of explanation and present an algorithm for computing them. The unevaluation algorithm can be applied to any subtrace of a trace slice to compute a program slice whose evaluation generates that subtrace. This close correspondence between programs, traces, and their slices can enable the programmer to understand a computation interactively, in terms of the programming language in which the computation is expressed. We present an implementation in the form of a tool, discuss some important practical implementation concerns and present some techniques for addressing them.
DOI: 10.1017/s0956796800001465
发表时间: 1995
影响因子: 1.1
作者:
Amir Kishon;P. Hudak
通讯作者: P. Hudak
数据流存储库的形式模型
DOI: 10.1007/978-3-540-73255-6_11
发表时间: 2007
影响因子: 1.1
作者:
J. Hidders;Natalia Kwasnikowska;J. Sroka;Jerzy Tyszkiewicz;J. V. D. Bussche
通讯作者: J. V. D. Bussche
使用 QuickCheck 和 Hat 测试和跟踪惰性函数程序
DOI: 10.1007/978-3-540-44833-4_3
发表时间: 2002
期刊: ACM Comput. Surv.
影响因子: --
作者:
Koen Claessen;C. Runciman;O. Chitil;John Hughes;Malcolm Wallace
通讯作者: Malcolm Wallace
DOI: 10.1109/icsm.2001.972711
发表时间: 2001
期刊: Proceedings IEEE International Conference on Software Maintenance. ICSM 2001
影响因子: --
作者:
Darren C. Atkinson;W. Griswold
通讯作者: W. Griswold
函数计算的完整和部分 Redex 轨迹
DOI: 10.1007/bfb0055430
发表时间: 1997
影响因子: 1.1
作者:
Jan Sparud;C. Runciman
通讯作者: C. Runciman