Fri 27 May 2022 13:30 - 15:00 at Ballroom Gallery - Posters 3
Rust is a type-safe language for system programming with a compiler checking memory and concurrency safety. For a smooth transition from an existing C project, a source-to-source transpiler can auto-transform C programs into Rust using program transformation. However, existing C-to-Rust transformation tools (e.g. the open-source C2Rust transpiler project) have the drawback of preserving the unsafe semantics of C, while rewriting them in Rust’s syntax. By relaxing the semantics-preserving constraints of transformations, in this paper, we present CRustS2 a fully-automated source-to-source transformation approach that increases the ratio of the transformed code passing the safety checks of the Rust compiler. Our method uses 220 new TXL source-to-source transformation rules, of which 198 are strictly semantics-preserving and 22 are semantics-approximating, thus reducing the scope of unsafe expressions and exposing more opportunities for safe Rust refactoring. Our method has been evaluated on both open-source and commercial projects, which demonstrates significantly higher safe code ratios after the transformations, with function-level safe code ratios comparable to the average level of idiomatic Rust projects.
Mon 9 MayDisplayed time zone: Eastern Time (US & Canada) change
20:00 - 21:00 | |||
20:00 5mPoster | Program Translation using Model-Driven Engineering Posters Dr Kevin Lano King's College London | ||
20:05 5mPoster | CRustS: A Transpiler from Unsafe C to Safer Rust Posters Michael Ling Huawei Technologies Canada, Yijun Yu The Open University, UK, Haitao Wu Huawei Technologies Canada, Yuan Wang Huawei Sweden Research Center, James R. Cordy Queen's University, Ahmed E. Hassan Queen's University | ||
20:10 5mPoster | Towards Mining OSS Skills from GitHub Activity Posters Jenny T. Liang University of Washington, Denae Ford Microsoft Research, Thomas Zimmermann Microsoft Research DOI Pre-print | ||
20:15 5mPoster | Deriving Semantics-Aware Fuzzers from Web API Schemas Posters |