《唐洪雨 - 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 的能力,提高效率,幸福生活未來展望未來展望 匯報完畢匯報完畢 感謝觀看感謝觀看