CAREER: Rethinking Toolchain Design for Rust
CAREER: Rethinking Toolchain Design for Rust
批准号:
2145394
负责人:
Linhai Song
金额:
$55.02万
依托单位国家:
美国
项目类别:
Continuing Grant
财政年份:
2022
资助国家:
美国
项目状态:
未结题
起止时间:
2022-02-01 至 2027-01-31
中文摘要
作为一种年轻的编程语言,Rust具有其安全性和性能。Rust的关键创新在于在编译过程中通过严格的安全检查来排除内存bug和并发bug,同时保持其编译程序的运行时性能与C程序一样好。Rust近年来越来越受欢迎,已经被用于构建许多安全关键软件系统。不幸的是,Rust有一个陡峭的学习曲线,它的安全检查无法捕获所有的bug。该项目将通过提高Rust的可编程性和加强其编译后测试来解决这些限制。该项目的完成将推动Rust学习和编程的最新发展,并进一步保护Rust的生态系统。该项目团队还将利用这项工作设计有关软件安全和编程语言的新课程,并探索教授新编程语言的新方法。 该项目旨在通过回答两个研究问题来增强Rust的工具链。首先,Rust的安全机制是独特的,相关的语法和语义与传统的编程语言不同。因此,程序员可以很容易地编写违反Rust安全检查的代码,并被Rust编译器拒绝。如何识别和解决因安全检查而产生的编程困难?其次,Rust利用LLVM作为其后端,因此许多为C/C++发明的现有动态技术可以应用于Rust程序,以捕获安全检查遗漏的错误。如何在Rust程序中重用现有技术时提高它们的效率和有效性? 具体而言,项目团队将(1)识别由安全检查引起的编程挑战,并使用新的可视化技术解决这些挑战,(2)提高现有测试输入生成技术的有效性,(3)加速现有的动态错误检测和故障诊断技术,以及(4)建立自动化的错误修复技术,用于安全检查和动态错误检测所检测到的错误。该奖项反映了NSF的法定使命,并通过使用基金会的知识价值和更广泛的影响审查标准进行评估,被认为值得支持。
英文摘要
As a young programing language, Rust features its safety and performance. The key innovation of Rust is to rule out memory bugs and concurrency bugs through strict safety checks during compilation, while keeping the runtime performance of its compiled programs as good as C programs. Rust's popularity is increasing significantly these years and has already been adopted to build many safety-critical software systems. Unfortunately, Rust is known to have a steep learning curve and its safety checks cannot capture all bugs. This project will address these limitations by improving Rust's programmability and strengthening its post-compilation testing. The completion of the project will advance the state of the art in Rust learning and programming and further secure the ecosystem of Rust. The project team will also use the work to design new courses on software security and programming languages and to explore novel approaches to teach new programming languages. This project aims to enhance Rust's toolchain by answering two research questions. First, Rust's safety mechanism is unique, and the related grammar and semantics are different from traditional programming languages. Thus, programmers can easily write code violating Rust's safety checks and be rejected by the Rust compiler. How can one identify and resolve the programming difficulties incurred by the safety checks? Second, Rust leverages LLVM as its backend, and thus many existing dynamic techniques invented for C/C++ can be applied to Rust programs to capture bugs missed by the safety checks. How can one improve the efficiency and effectiveness of the existing techniques when reusing them to Rust programs? Specifically, the project team will (1) identify programming challenges caused by the safety checks and resolve the challenges using novel visualization techniques, (2) improve the effectiveness of existing testing input generation techniques, (3) accelerate existing dynamic bug-detection and failure-diagnosis techniques, and (4) build automated bug-fixing techniques for bugs detected by the safety checks and dynamic bug-detection techniques.This award reflects NSF's statutory mission and has been deemed worthy of support through evaluation using the Foundation's intellectual merit and broader impacts review criteria.
期刊论文(0)
专著(0)
科研奖励(0)
会议论文
SaTC: CORE: Small: Collaborative: Understanding and Detecting Memory Bugs in Rust
-
批准号:1955965
-
项目类别:Standard Grant
-
资助金额:$29.84万
-
财政年份:2020
-
负责人:Linhai Song
-
依托单位:
海外基金