arXivDaily arXiv每日学术速递 周一至周五更新
arXiv周末暂无论文更新,休息一下吧,周末愉快~~
arXiv 2011.07986cs.SEcs.LGcs.PL
收藏

神经软件分析

Neural Software Analysis

University of Stuttgart(斯图加特大学);Facebook

Michael Pradel, Satish Chandra

摘要:

许多软件开发问题可以通过程序分析工具来解决,这些工具传统上是基于精确的、逻辑推理和逻辑推理的,以确保工具是实用的。最近的工作通过创建开发工具的另一种方式取得了巨大的成功,我们称之为神经软件分析。其核心思想是在大量代码示例上训练神经机器学习模型,一旦训练完成,就可以对以前看不见的代码进行预测。与传统的程序分析相比,神经软件分析自然地处理模糊信息,例如编码约定和嵌入代码中的自然语言,而不依赖于手动编码的语法。本文概述了神经软件分析,讨论了何时使用(不使用)它,并给出了三个示例分析。这些分析解决了具有挑战性的软件开发问题:错误检测,类型预测和代码完成。由此产生的工具补充和优于传统的程序分析,并在工业实践中使用。

英文摘要:

Many software development problems can be addressed by program analysis tools, which traditionally are based on precise, logical reasoning and heuristics to ensure that the tools are practical. Recent work has shown tremendous success through an alternative way of creating developer tools, which we call neural software analysis. The key idea is to train a neural machine learning model on numerous code examples, which, once trained, makes predictions about previously unseen code. In contrast to traditional program analysis, neural software analysis naturally handles fuzzy information, such as coding conventions and natural language embedded in code, without relying on manually encoded heuristics. This article gives an overview of neural software analysis, discusses when to (not) use it, and presents three example analyses. The analyses address challenging software development problems: bug detection, type prediction, and code completion. The resulting tools complement and outperform traditional program analyses, and are used in industrial practice.

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑