天津大学、北航深度参与华为“仓颉”编程语言
华为昨日面向全球开发者介绍华为自研编程语言 —— 仓颉。这是仓颉编程语言的首次公开亮相。
查询获悉,天津大学、北京航空航天大学深度参与了华为“仓颉”的研发。
天津大学:仓颉编程语言编译器
天津大学智能与计算学部软件工程团队携手华为仓颉团队,深度参与仓颉编程语言编译器的质量保障研究。
据介绍,五年来,
基于程序综合的测试程序生成技术:该项技术将程序代码拆解成细粒度代码片段,彼此之间涉及不同的语言特征,进而在语法语义约束的指导下,实现测试程序的高效合成。值得注意的是,该项技术能够以历史缺陷作为基础数据,提取与缺陷相关的代码片段,并将其融合至多样的代码上下文中,以激发其触发更多缺陷、执行更多代码分支的能力。 基于程序变异的测试预言构造技术:该项技术通过对仓颉编程语言语法语义进行深入分析与挖掘,设计一系列等价变异算子与不等价变异算子。前者在测试预言上提供补充,融合蜕变测试思想,提升技术揭错能力,而后者则进一步增强测试程序多样性,引入更多仓颉语言特性、底层库调用等信息,实现对仓颉编译器的更充分测试。 基于代码表示的测试过程加速技术:该项技术旨在提升编译器测试效率,以在更短的时间内检测到更多的编译器缺陷。该项技术将测试程序代码进行片段化,并引入代码表示学习策略将其在语言定义空间中进行表征。进而,该项技术从多样性角度进行代码片段的利用、测试程序的生成,并将测试结果作为反馈,进一步指导后续测试过程,从而提升测试整体效率。北航:苍穹 AI 智能体编程框架
北京航空航天大学软件学院
▲苍穹框架图
据介绍,苍穹诞生于仓颉社区,得到仓颉编程语言官方团队的技术支持。作为一个社区开源项目,苍穹采用模块化设计和功能,旨在为软件工程人员提供软件集成模型、安全访问私有数据并进行数据交互的可靠功能。
基于模块化的设计理念,苍穹使得开发者可根据自身特定需求,选择和组合不同的模块。在实现任务的过程中,苍穹可将任务分解成多个子任务,针对每个子任务选择构建合适的代理允许语言模型与外部 API 交互,调用满足子任务目标实现的工具,利用任务链串联起每个子任务,最终得到任务求解。
在具体应用中,团队设计并实现了一个多智能体的系统,包含以下四个关键角色:Docwriter、CodeWriter、CodeTester 和 CodeReviewer。这些智能体在苍穹平台上紧密协作,共同完成 2048 等经典游戏的开发任务。
Docwriter:负
▲基于苍穹开发的多智能体系统应用示例
通过苍穹的模块化设计和多智能体的智能调度,这些角色智能体能够高效分工、互相协作,不断迭代优化,最终完成游戏开发任务。具体来说,未来,北京航空航天大学软件学院团队将计划继续拓展苍穹的应用领域,深入研究多智能体系统在其他复杂任务中的应用潜力。