Hasty Briefsbeta

双语

Coccinelle for Rust progress report

a year ago
  • #program transformation
  • #CoccinelleForRust
  • #Rust
  • 由Tathagata Roy分享、Inria合作开发、Collabora赞助的CoccinelleForRust项目进展
  • Coccinelle是自动化程序匹配与转换工具,最初针对C语言,现正适配Rust
  • 展示了语义补丁示例:自动将Rust代码中的`expression.type_of(impl_id)`替换为`expression.type_of(impl_id).subst_identity()`
  • 函数签名变更及相关调用会提升复杂度,并通过语义补丁示例进行了演示
  • 计算树逻辑(CTL)是Coccinelle的核心技术,针对Rust的适配仅需对C版本进行微调
  • Rust以表达式为主导的特性使得匹配转换计算量激增,促使采用`RefCell`和哈希表等优化手段
  • SmPL解析器开发借助Rust Analyzer解析Rust结构,重点处理省略号/析取等自定义语法
  • 宏转换面临非标准语法的挑战,目前仅支持函数式宏
  • 现阶段重点对齐Rust版与C版功能,正在进行代码美化输出等特性开发
  • CoccinelleForRust已开源至Gitlab平台,欢迎反馈与提问