Neural Software Analysis
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.
Code (2)
Tasks
Code CompletionLogical ReasoningType predictionSimilar Papers 제목 키워드 기반
Mining Software Quality from Software Reviews: Research Trends and Open Issues
Software review text fragments have considerably valuable information about users experience. It includes a huge set of properties including the software quality. Opinion mining or sentiment analysis is concerned with an…
Opinion MiningSentiment AnalysisA Comparative Study of Static Code Analysis tools for Vulnerability Detection in C/C++ and JAVA Source Code
Software security has become an essential component of software development process. It is necessary for an organisation to maintain software security in order to ensure integrity, authenticity and availability of the s…
Vulnerability DetectionAutoEmpirical: LLM-Based Automated Research for Empirical Software Fault Analysis
Understanding software faults is essential for empirical research in software development and maintenance. However, traditional fault analysis, while valuable, typically involves multiple expert-driven steps such as coll…
COGEDAP: A COmprehensive GEnomic Data Analysis Platform
Non-sharable sensitive data collection and analysis in large-scale consortia for genomic research is complicated. Time consuming issues in installing software arise due to different operating systems, software dependenci…
Better Research Software Tools to Elevate the Rate of Scientific Discovery -- or why we need to invest in research software engineering
In the past decade, enormous progress has been made in advancing the state-of-the-art in bioimage analysis - a young computational field that works in close collaboration with the life sciences on the quantitative analys…
scientific discovery