Towards the automated correction of bugs

Towards the automated correction of bugs
复制标题

DOI:
--
复制
发表时间:
2009-12
期刊:
--
影响因子:
--
通讯作者:
Richard Warburton;Sara Kalvala
Richard Warburton;Sara Kalvala
中科院分区:
其他
文献类型:
--
作者:
Richard Warburton;Sara Kalvala

文献摘要

相似文献

Java程序中的错误通常属于众所周知的图案,通常是由于误解的API或鼓励越野车案例的语言功能引起的。现有的软件开发工具可以检测到其中一些情况,并且集成的开发环境可能试图为某些简单情况建议自动修复。我们提出了一种用于指定程序转换的语言,并配对一种新方法,用于识别和修复Java源代码中的错误模式。我们提出了源代码和字节码分析的组合:这允许在生成更正后的源代码时使用字节码中的控制流来帮助识别错误。规范语言使用了基于时间逻辑条件生成的句法重写规则和数据流分析的组合。我们介绍了一个原型实现,该实现允许自动应用这些转换为程序,并在此类程序转换的背景下讨论正确性问题。最后,我们讨论了此方法的其他可能的申请领域,包括从规格和应用于其他命令式语言的应用中生成重构操作。
Bugs within Java programs often fall within well-known motifs, usually arising from misunderstood APIs or language features that encourage buggy corner cases. Existing software development tools can detect some of these situations, and integrated development environments may attempt to suggest automated fixes for some of the simple cases. We present a language for specifying program transformations paired with a novel methodology for identifying and fixing bug patterns within Java source code. We propose a combination of source code and bytecode analyses: this allows for using the control flow in the bytecode to help identify the bugs while generating corrected source code. The specification language uses a combination of syntactic rewrite rules and dataflow analysis generated from temporal logic based conditions. We introduce a prototype implementation that allows application of these transformations automatically to programs, and discuss correctness issues within the context of such program transformations. Finally we discuss other possible areas of application for this methodology, including generating refactoring operations from specifications and application to other imperative languages.