There has been a long history of applying Artificial Intelligence (AI) to solve problems in software engineering. As the complexity of software grows, it becomes more and more important to utilize intelligent algorithms to help developers to understand code better and identify software defects as early as possible.
In a software development cycle, it is reported that up to 40% of the developing time is spent in triaging and debugging software defects. Considering the amount of engineering cost in a software company, it would be very impressive if we can automatically localize and fix bugs. Recent advances in machine learning and the availability of large corpora of source code has led to notable progresses in program modeling and analyses, which is a promising direction to be investigated.
Another example is integrated development environments (IDEs), which provide helpful services such as intelligent code completion, has become essential paradigms in modern development environment. Traditionally, code completion relies heavily compile-time information to predict next tokens. Recently, with the advances in natural language processing (NLP) systems, the learning-based models, which are trained on large codebases, can capture deeper semantics and provide much more fluent user experiences, which ultimately helps the developers to better understand the programs and avoid bugs in early stage.
- A machine learning model for code logics and API semantics
- Intelligent algorithms for code search, completion, and generation
- Automatically localize and repair bugs in programs
Related Research Topics
- Deep learning based source code modeling
- Knowledge graph for APIs in source code
- Intelligent code search, completion and refactoring
- Automated log and document generation, intelligent code reviews
- Automatically localize and repair program defaults