【24h】

Concurrent algorithmic debugging

机译:并发算法调试

获取原文
获取原文并翻译 | 示例

摘要

Algorithmic Debugging is a theory of debugging that uses queries on the compositional semantics of a program in order to localize bugs. It uses the following principle: if a computation of a program's component gives an incorrect result, while all the subcomputations it invokes compute correct results, then the code of this component is erroneous.

rn

Algorithmic Debugging is applied, in this work, to reactive systems, in particular to programs written in Flat Concurrent Prolog (FCP). Debugging reactive systems is known to be more difficult than the debugging of functional systems. A functional system is fully described by the relation between its initial input and final output; this context-freedom is used in debugging. A reactive system continuously responds to external inputs, thus its debugging cannot make use of context-free input/output relations.

rn

Given a compositional semantic model for a concurrent programming language, we demonstrate how one can directly apply the ideas of Algorithmic Debugging to obtain a theory of program debugging for the considered language. The conflict between the context-freedom of input/ output relations and the reactive nature of concurrent systems is resolved by using semantic objects which record the reactive nature of the system's components. In functional algorithmic debugging the queries relate to input/output relations; in concurrent algorithmic debugging the queries refer to semantic objects called processes which capture the reactive nature of FCP computations.

rn

A diagnosis algorithm for incorrect FCP programs is proposed. The algorithm gets an erroneous computation and using queries isolates an erroneous clause or an incomplete procedure. An FCP implementation of the diagnosis algorithm demonstrates the usefulness as well as the difficulties of Algorithmic Debugging of FCP programs.

机译:

算法调试是一种调试理论,它使用对程序组成语义的查询来定位错误。它使用以下原则:如果程序组件的计算给出错误的结果,而它调用的所有子计算都计算出正确的结果,则该组件的代码是错误的。 rn

应用了算法调试,在这项工作中,对于反应性系统,尤其是对于以Flat Concurrent Prolog(FCP)编写的程序。已知调试反应系统比调试功能系统更加困难。功能系统通过其初始输入和最终输出之间的关系得到充分描述。此上下文无关性用于调试。反应性系统不断响应外部输入,因此其调试不能利用无上下文的输入/输出关系。 rn

给出了并发编程语言的组合语义模型,我们演示了如何直接应用通过算法调试的思想来获得所考虑语言的程序调试理论。输入/输出关系的上下文自由与并发系统的反应性之间的冲突通过使用语义对象解决,该语义对象记录了系统组件的反应性。在功能算法调试中,查询与输入/输出关系有关;在并发算法调试中,查询涉及称为过程的语义对象,该对象捕获FCP计算的反应性。 rn

提出了一种针对错误的FCP程序的诊断算法。该算法获得了错误的计算,并且使用查询隔离了错误的子句或不完整的过程。 FCP诊断算法的实现证明了FCP程序的算法调试的实用性和难点。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号