Title: Automatically Improving the code quality of Rust via LLM

 

Date: Monday, December 2, 2024

Time: 10:00 AM – 11:30 AM EST

Location: (virtual) https://gatech.zoom.us/j/94397495362

 

Xiang Cheng

Ph.D. Student

School of Computer Science & School of Cybersecurity and Privacy

College of Computing

Georgia Institute of Technology

 

Committee:

Dr. Taesoo Kim (advisor), School of Cybersecurity and Privacy, Georgia Institute of Technology

Dr. Brendan D. Saltaformaggio, School of Cybersecurity and Privacy, Georgia Institute of Technology

Dr. Qirun Zhang - School of Computer Science, Georgia Institute of Technology

Dr. Alessandro Orso - School of Computer Science, Georgia Institute of Technology

 

Abstract:

Rust, as an emerging system programming language that performs strict compilation checks, is gaining traction for its performance and memory safety advancements. It is adopted in crucial projects such as OS kernels, device drivers, web browsers, etc. While Rust's stringent memory safety features enhance security, they also pose challenges for developers in creating high-quality software and can lead to potential vulnerabilities.

 

Recent advancements in large language models (LLMs) have demonstrated significant capabilities in understanding and reasoning about program logic, contributing to increased productivity in software development through LLM-based assistants. However, these tools often fall short in generating high-quality Rust code that adheres to its strict safety standards.

 

In this proposal, we analyze the root cause of such gaps and propose different LLM-based tools to automatically improve the code quality of Rust from different aspects. From a testing perspective, we demonstrate a unit test generator for Rust: RUG, to automatically generate unit tests comparable with human developers. From a security perspective, we present SPOT, to recover the unsafe regions in Rust binaries and help with vulnerability hunting process. Finally, we propose COIN, a LLM based code analyzer for Rust to find implicit unsafe operations in Rust code.