【24h】

Correct Blame for Contracts No More Scapegoating

机译:正确责备合同没有更多的粘合剂

获取原文

摘要

Behavioral software contracts supplement interface information with logical assertions. A rigorous enforcement of contracts provides useful feedback to developers if it signals contract violations as soon as they occur and if it assigns blame to violators with precise explanations. Correct blame assignment gets programmers started with the debugging process and can significantly decrease the time needed to discover and fix bugs. Sadly the literature on contracts lacks a framework for making statements about the correctness of blame assignment and for validating such statements. This paper fills the gap and uses the framework to demonstrate how one of the proposed semantics for higher-order contracts satisfies this criteria and another semantics occasionally assigns blame to the wrong module. Concretely, the paper applies the framework to the lax enforcement of dependent higher-order contracts and the picky one. A higher-order dependent contract specifies constraints for the domain and range of higher-order functions and also relates arguments and results in auxiliary assertions. The picky semantics ensures that the use of arguments in the auxiliary assertion satisfies the domain contracts and the lax one does not. While the picky semantics discovers more contract violations than the lax one, it occasionally blames the wrong module. Hence the paper also introduces a third semantics, dubbed indy, which fixes the problems of the picky semantics without giving up its advantages.
机译:行为软件与逻辑断言合同补充界面信息。合同的严格执行为开发人员提供有用的反馈,如果它在发生合同违规行为时,并且如果它将责任归咎于违规者,则为违规者归咎于精确的解释。正确的责任分配让程序员从调试过程开始,可以显着减少发现和修复错误所需的时间。遗憾的是,合同上的文献缺乏关于制定关于责备分配的正确性和验证此类陈述的陈述的框架。本文填补了差距并使用框架来演示所提出的高阶合同的语义如何满足这一标准,另一个语义偶尔将责备分配给错误的模块。具体地,本文将框架应用于依赖高阶合同和挑剔的依赖权合约的框架。更高阶的依赖性合同规定了域的约束和高阶函数的范围,并且还涉及参数并导致辅助断言。挑剔的语义可确保在辅助断言中使用参数满足域合约,宽松1不满足。虽然挑剔的语义发现了比LAX One更多的合同违规,但它偶尔会归咎于错误的模块。因此,本文还介绍了一个第三语义,称为Indy,这在不放弃其优势的情况下解决了挑剔语义的问题。

著录项

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号