vivo蓝河操作系统创新赛准备材料
文章目录
赛题1 - 蓝河代码转译工具
背景阐述
1.C/C++代码编写的系统大约70%的严重安全漏洞和内存使用不当相关,Rust语言一系列安全特性,可以在编 译阶段发现内存相关安全漏洞,用Rust语言编写更安全的操作系统,已经成为行业趋势
2.国内自主研发的操作系统和自主可控的软件生态都还不成熟,通过代码转译技术,提升开发者对新操作系统 的适配效率,促进国产操作系统软件生态发展成熟
蓝河代码转译工具
赛题鼓励开发者实现工具程序,完成与蓝河系统/应用相关的代码转译。
可选方向有两个:
底层代码转译:底层的 C /C++代码转 Rust 代码工具
应用代码转化:将其它形态的移动应用(App、小程序、H5 应用等) 代码转成蓝河应用代码,也可以是自然语言/图片等形态生成蓝河应用 代码
赛题价值
- 加快国产操作系统关键技术建设,从源头保障操作系统内存安全, 促进国产操作系统底层技术发展
- 加速国产操作系统生态建设,同时繁荣hapjs开源社区生态
3.希望通过本项赛事,携手开发者为国产操作系统底层技术及生态建 设做出贡献
难易程度
• **技术栈:**熟悉C/C++、Rust语言开发或者应用开发(熟悉前端 技术栈以及APP、小程序等应用开发)
**• 可实现:**不论是C转Rust,还是应用代码之间的转换,使用大模 型、正则表达式匹配、自建语法树等技术完成常规代码转换已 经是行业常见方案
**• 上限高:**对于代码数量级大的转译,或者复杂特性的代码转译, 要实现完美代码转译有比较高的实现难度
实现举例
• 用蓝心大模型的转译能力,将在 Linux上可编译执行的多线程系统 调用C代码转译成Rust代码
• 输出的Rust代码功能保持一致,且 采用了Rust的Arc/Mutex机制保证 线程安全,同样在Linux平台上可 编译执行
技术支持
• **文档:**开发环境搭建,开发示例,测试用例
**• 开发环境:**开发工具(IDE、真机调试器apk)、远程云真机等
**• 培训与答疑:**初赛开始前,提供线上直播、视频教程供参赛者 学习,同时准备参赛者常见问题FAQ文档;初赛开始后,社区 内提供三名技术人员分别对不同 技术方向问题进行答疑和指导
评价标准
开始
各位老师好。
我是gdb团队,我是github用户名是watchpoints。
大家都知道,GDB作为调试利器,watchpoints命令能监控每个值变化情况,因此我给团队起名gdb,
希望
我从三部分 介绍 代码转译工具实现过程
-
从现有系统设计中 抽象出来规则很重要
-
如何让大模型识别这些规则
-
尝试不同的规则和模型
第一部分:从现有系统设计中 抽象出来规则很重要
如果从0写一个cpptorust工具这我不清楚怎么实现,我重写学习时间来不及
但是我对sql数据库比较了解,我利用已经熟悉知识
目前比较流行数据mysql tidb,OB依然采用同样方式通过文本方式解析一个sql
执行一个SQL语句的流程,大致可以分为解析、编译、优化、执行、返回结果
流程图如下:
用到相关技术:
- Lex 词法分析器
- yacc 语法分析器
类似代码:
- https://github.com/oceanbase/oceanbase/blob/develop/src/sql/parser/sql_parser_mysql_mode.y
- https://github.com/oceanbase/oceanbase/blob/develop/src/sql/parser/sql_parser_mysql_mode.l
- https://github.com/pingcap/tidb/blob/source-code/parser/parser.y
最关键一下 每个命令都是规则解析出来。我需要整理这些规则,然后告诉大模型.
最关键一下 每个命令都是规则解析出来。我需要整理这些规则,然后告诉大模型. 这个后面整个思路
第二部分: 如何让大模型识别这些规则
使用 Markdown json,xml prompt
GPT-4 (最佳) 或者 Claude.
langGPT
- https://github.com/EmbraceAGI/LangGPT/blob/main/README_zh.md
- https://github.com/EmbraceAGI/LangGPT/blob/main/examples/prompts_from_community.md
|
|
解读模板
参数 | 解读 |
---|---|
Role | 给 ChatGPT 指定某个领域专家角色,从而让 ChatGPT 更加聚焦在该领域内的回答 |
profile | 对当前提示词的信息描述,包含作者、迭代版本、语言、描述等,方便记录相关信息 |
Background | 将当前的背景信息详细描述给 GPT,让 GPT 根据信息做出更好的回答 |
Goals | 明确定义 ChatGPT 应该如何处理,详细列出了整体流程,从而让 GPT 更加聚焦问题 |
Constrains | 本质上就是输出规则,写明对 GPT 回答的要求包含形式、语气、专业程度等等 |
skills | 加强 GPT 对领域内技能的权重,领域专家在领域内也存在最擅长的事,你可以增加对应细分领域的权重从而获得更好的回答 |
workflows | 与 ChatGPT 交流的方式,怎么样接受信息,使用什么样的方法进行内容输出,是否需要额外增加什么信息 |
Examples | 你提供给 ChatGPT 的案例,辅助 ChatGPT 更好的生成结果 |
Initialization | 可以按照模板里面的固定语,基本不需要调整 |