Neural Software Analysis
- URL: http://arxiv.org/abs/2011.07986v2
- Date: Thu, 8 Apr 2021 10:04:41 GMT
- Title: Neural Software Analysis
- Authors: Michael Pradel and Satish Chandra
- Abstract summary: Many software development problems can be addressed by program analysis tools.
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.
- Score: 18.415191504144577
- License: http://arxiv.org/licenses/nonexclusive-distrib/1.0/
- Abstract: 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.
Related papers
- Efficacy of static analysis tools for software defect detection on open-source projects [0.0]
The study used popular analysis tools such as SonarQube, PMD, Checkstyle, and FindBugs to perform the comparison.
The study results show that SonarQube performs considerably well than all other tools in terms of its defect detection.
arXiv Detail & Related papers (2024-05-20T19:05:32Z) - Using Machine Learning To Identify Software Weaknesses From Software
Requirement Specifications [49.1574468325115]
This research focuses on finding an efficient machine learning algorithm to identify software weaknesses from requirement specifications.
Keywords extracted using latent semantic analysis help map the CWE categories to PROMISE_exp. Naive Bayes, support vector machine (SVM), decision trees, neural network, and convolutional neural network (CNN) algorithms were tested.
arXiv Detail & Related papers (2023-08-10T13:19:10Z) - Generation Probabilities Are Not Enough: Uncertainty Highlighting in AI Code Completions [54.55334589363247]
We study whether conveying information about uncertainty enables programmers to more quickly and accurately produce code.
We find that highlighting tokens with the highest predicted likelihood of being edited leads to faster task completion and more targeted edits.
arXiv Detail & Related papers (2023-02-14T18:43:34Z) - Chatbots As Fluent Polyglots: Revisiting Breakthrough Code Snippets [0.0]
The research applies AI-driven code assistants to analyze a selection of influential computer code that has shaped modern technology.
The original contribution of this study was to examine half of the most significant code advances in the last 50 years.
arXiv Detail & Related papers (2023-01-05T23:17:17Z) - Software Vulnerability Detection via Deep Learning over Disaggregated
Code Graph Representation [57.92972327649165]
This work explores a deep learning approach to automatically learn the insecure patterns from code corpora.
Because code naturally admits graph structures with parsing, we develop a novel graph neural network (GNN) to exploit both the semantic context and structural regularity of a program.
arXiv Detail & Related papers (2021-09-07T21:24:36Z) - A Smart and Defensive Human-Machine Approach to Code Analysis [0.0]
We propose a method that employs the use of virtual assistants to work with programmers to ensure that software are as safe as possible.
The pro- posed method employs a recommender system that uses various metrics to help programmers select the most appropriate code analysis tool for their project.
arXiv Detail & Related papers (2021-08-06T20:42:07Z) - Hessian-based toolbox for reliable and interpretable machine learning in
physics [58.720142291102135]
We present a toolbox for interpretability and reliability, extrapolation of the model architecture.
It provides a notion of the influence of the input data on the prediction at a given test point, an estimation of the uncertainty of the model predictions, and an agnostic score for the model predictions.
Our work opens the road to the systematic use of interpretability and reliability methods in ML applied to physics and, more generally, science.
arXiv Detail & Related papers (2021-08-04T16:32:59Z) - Improving Compositionality of Neural Networks by Decoding
Representations to Inputs [83.97012077202882]
We bridge the benefits of traditional and deep learning programs by jointly training a generative model to constrain neural network activations to "decode" back to inputs.
We demonstrate applications of decodable representations to out-of-distribution detection, adversarial examples, calibration, and fairness.
arXiv Detail & Related papers (2021-06-01T20:07:16Z) - Machine Learning for Software Engineering: A Systematic Mapping [73.30245214374027]
The software development industry is rapidly adopting machine learning for transitioning modern day software systems towards highly intelligent and self-learning systems.
No comprehensive study exists that explores the current state-of-the-art on the adoption of machine learning across software engineering life cycle stages.
This study introduces a machine learning for software engineering (MLSE) taxonomy classifying the state-of-the-art machine learning techniques according to their applicability to various software engineering life cycle stages.
arXiv Detail & Related papers (2020-05-27T11:56:56Z) - Evaluation of Generalizability of Neural Program Analyzers under
Semantic-Preserving Transformations [1.3477892615179483]
We evaluate the generalizability of two popular neural program analyzers using seven semantically-equivalent transformations of programs.
Our results caution that in many cases the neural program analyzers fail to generalize well, sometimes to programs with negligible textual differences.
arXiv Detail & Related papers (2020-04-15T19:55:06Z)
This list is automatically generated from the titles and abstracts of the papers in this site.
This site does not guarantee the quality of this site (including all information) and is not responsible for any consequences.