Explicitly stated program invariants can help programmers by characterizing certain aspects of program execution and identifying program properties that must be preserved when modifying code. Unfortunately, these invariants are usually absent from code. Previous work showed how to dynamically detect invariants from program traces by looking for patterns in and relationships among variable values. A prototype implementation, Daikon, accurately recovered invariants from formally-specified programs, and the invariants it detected in other programs assisted programmers in a software evolution task. However, Daikon suffered from reporting too many invariants, many of which were not useful, and also failed to report some desired invariants.
This paper presents, and gives experimental evidence of the efficacy of, four approaches for increasing the relevance of invariants reported by a dynamic invariant detector. One of them --- exploiting unused polymorphism --- adds desired invariants to the output. The other three --- suppressing implied invariants, limiting which variables are compared to one another, and ignoring unchanged values --- eliminate undesired invariants from the output and also improve runtime by reducing the work done by the invariant detector.
本文介绍了动态不变检测器报告的四种增加不变性相关性的方法,并提供了其功效的实验证据。其中之一-利用未使用的多态性-将期望的不变量添加到输出中。其他三个-抑制隐式不变式,限制将哪些变量相互比较,并忽略不变的值-消除输出中不想要的不变式,并通过减少不变检测器的工作量来改善运行时间。
机译:使用程序不变式在基于航空的计算中检测静默数据损坏
机译:程序性死亡-1 /程序性死亡配体途径的阻断增强了人类不变的自然杀伤T细胞的抗肿瘤免疫力
机译:尖端:程序性死亡-1 /程序性死亡配体1相互作用调节不变的NKT细胞无反应性的诱导和维持。
机译:动态检测相关程序不变式
机译:使用计算机模式分析检测神经和瞳孔对任务相关视觉刺激的融合方法
机译:程序性死亡-1 /程序性死亡配体途径的阻断增强了人类不变的自然杀伤T细胞的抗肿瘤免疫力
机译:快速检测相关的程序不变量