当前位置: X-MOL 学术arXiv.cs.SE › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
Neural Software Analysis
arXiv - CS - Software Engineering Pub Date : 2020-11-16 , DOI: arxiv-2011.07986
Michael Pradel and 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.

中文翻译:

神经软件分析

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