《唐洪雨 - LLM 辅助翻译 C 软件到 Rust 软件.pdf》由会员分享,可在线阅读,更多相关《唐洪雨 - LLM 辅助翻译 C 软件到 Rust 软件.pdf(12页珍藏版)》请在三个皮匠报告上搜索。
1、开源操作系统训练营 汇报人:唐洪雨LLM LLM 辅助翻译辅助翻译C C 软件到软件到 Rust Rust 软件软件【 进展报告】010304目录目录未来展望未来展望后续功能介绍作品介绍作品介绍当前作品展示、功能进度、同类比较,以及不足之处设计思路设计思路方案选择与实现方法项目背景项目背景C/C+到 Rust 转译的意义C O N T E N TC O N T E N T02系统语言,代码存量大但问题多,安全问题突出C/C+C/C+数据类型丰富、所有权机制构建可靠且高效软件的现代语言RustRust高效利用当前已有的代码较少工作量复用已有代码复用已有代码Rust 学习曲线陡峭,语法复杂转译功能
2、代码,提高效率加速编写代码加速编写代码1 14 42 23 3项目背景项目背景C/C+R 精心设计的 RustRust 是为工程设计的,语法复杂按经典编译原理做转译,难度高、工作量大AI 时代许多模型用于代码生成,LLM 可以快速实现转译功能辅助翻译转译代码不能完全正确,启发、加速,定位辅助持续优化改善基座模型,运行其它技巧提高转译质量设计思路设计思路 0301020303不足之处不足之处作品的缺点,以及改进方法0202同类对比同类对比immunant/Web 工具,功能介绍作品介绍作品介绍 0101代码输入、输出区代码输入、输出区主界面是C代码输入区,和Rust 代码输出区,都支持代码编辑0
3、202测试用例测试用例覆盖了继承、弱指针、宏、可变参数、指针、结构体地址、联合体、位域、函数指针等难点语法特性0303输入输入提示,手动转译提示,手动转译手动输入提示信息,帮助转译作品介绍作品介绍- 0404多后端选择多后端选择智谱AI百川AIimmunant/c2rust0505编译运行编译运行支持输入编译参数、运行参数,直接运行得到结果0606限制次数,自动转译限制次数,自动转译自动转译、运行比对、迭代作品介绍作品介绍- immunant/c2rustimmunant/c2rustl 另一个 C/C+到 Rust 转译工具,按照编译原理,先解析 C/C+代码,再逐条翻译到 Rust 代码;
4、l 已在 https:/ 部署,可以线上体验;l 包含大量保护性、兼容性代码,如#allow(.)、extern C、unsafe。项目地址:https:/ immunant/c2rust immunant/c2rust内置测例内置测例目前内置目前内置1515个测例,涵盖逻辑、功能、个测例,涵盖逻辑、功能、难点难点语言特性语言特性本地文件本地文件支持加载本地文件、文件夹,方便使用支持加载本地文件、文件夹,方便使用 对原代码有要求对原代码有要求 具有编译运行的功能,要求原代码可编译、可运行、有输出、能结束,不满足任何一条,都会导致转译效果变差作品介绍作品介绍-不足之处不足之处解决方案:解决方案:
5、优化对于转译成功的定义,能够更加智能更加智能依赖模型依赖模型 当前还比较依赖选取的模型,模型自身理解代码、生成代码的能力,会影响到转译效果解决方案:解决方案:除了训练更强大、更专业的模型,还可以通过prompt工程、自建知识库、数据向量库,和RAG的方式,缩小范围,提高转译命中率 能够转换多个文件组成的项目能够转换多个文件组成的项目未来展望未来展望-作品目标作品目标直接转换一个复杂的直接转换一个复杂的gitgit仓库仓库能对多个大模型转译结果进行对比能对多个大模型转译结果进行对比增加人工转译、测评、改进增加人工转译、测评、改进 不断优化不断优化希望通过进一步学习,不断优化 ,使之成为一个好用的工具,实实在在帮助到广大程序员善用善用 AI AIAI 时代里,LLM 的能力是无穷的,希望我们都能利用好 AI 的能力,提高效率,幸福生活未来展望未来展望 汇报完毕汇报完毕 感谢观看感谢观看