函数逻辑程序的部分求值正向切片
Forward slicing of functional logic programs by partial evaluation
摘要:
程序切片主要是在命令式语言的背景下研究的,它已被应用到各种各样的软件工程任务,如程序理解,维护,调试,测试,代码重用等。这项工作介绍了第一个前向切片技术的声明性多范式程序,集成功能和逻辑编程的功能。基本上,给定一个程序和一个切片标准(在我们的设置中是一个函数调用),计算出的前向切片包含了原始程序中从切片标准可以到达的那些部分。我们的程序切片方法是基于(在线)部分评估的扩展。因此,它提供了一个简单的方法来开发程序切片工具,从现有的部分评估器,并有助于澄清这两种方法之间的关系。一个切片工具的多范式语言咖喱,这表明了我们的方法的有用性,已经实现了咖喱本身。
英文摘要:
Program slicing has been mainly studied in the context of imperative languages, where it has been applied to a wide variety of software engineering tasks, like program understanding, maintenance, debugging, testing, code reuse, etc. This work introduces the first forward slicing technique for declarative multi-paradigm programs which integrate features from functional and logic programming. Basically, given a program and a slicing criterion (a function call in our setting), the computed forward slice contains those parts of the original program which are reachable from the slicing criterion. Our approach to program slicing is based on an extension of (online) partial evaluation. Therefore, it provides a simple way to develop program slicing tools from existing partial evaluators and helps to clarify the relation between both methodologies. A slicing tool for the multi-paradigm language Curry, which demonstrates the usefulness of our approach, has been implemented in Curry itself.
机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。