学部新闻

天津大学智能与计算学部助力仓颉编程语言编译器高质量发展

2024年06月22日 11:07

(通讯员 赵英全)2024年6月21日,华为面向全球开发者介绍华为自研编程语言——仓颉(Cangjie)。这是仓颉编程语言的首次公开亮相,对国产编程语言的发展具有重要意义。

仓颉编程语言是一款面向全场景应用开发的现代编程语言,通过现代语言特性的集成、全方位的编译优化和运行时实现,以及开箱即用的IDE工具链支持,为开发者打造友好开发体验和卓越程序性能。仓颉编译器是与仓颉编程语言共生的基础软件。在仓颉编程语言的筹备阶段,与之相配的高质量编译器成为核心目标之一。随着仓颉编程语言的演化,仓颉编译器也在不断地升级、改进。

天津大学智能与计算学部软件工程团队助力华为仓颉团队,深度参与仓颉编程语言编译器的质量保障研究,从软件测试角度出发,为仓颉编译器质量保驾护航。自仓颉诞生的五年来,团队陈俊洁教授、王赞教授、姜佳君研究员,带领赵英全、付瑞丰、郭以勒、郑开、樊兴宇等十余名研究生,围绕着仓颉编译器测试工作开展深入研究,提出数据驱动的仓颉编译器系统化测试框架,涵盖基于程序综合的测试程序生成技术、基于程序变异的测试预言构造技术、基于代码表示的测试过程加速技术等多项先进技术。成果在软件工程领域顶会ICSE、ISSTA等发表多篇学术论文,并已部署至仓颉编译器的实际测试中,显著提升仓颉编译器测试效果。

基于程序综合的测试程序生成技术:该项技术将程序代码拆解成细粒度代码片段,彼此之间涉及不同的语言特征,进而在语法语义约束的指导下,实现测试程序的高效合成。值得注意的是,该项技术能够以历史缺陷作为基础数据,提取与缺陷相关的代码片段,并将其融合至多样的代码上下文中,以激发其触发更多缺陷、执行更多代码分支的能力。

基于程序变异的测试预言构造技术:该项技术通过对仓颉编程语言语法语义进行深入分析与挖掘,设计一系列等价变异算子与不等价变异算子。前者在测试预言上提供补充,融合蜕变测试思想,提升技术揭错能力,而后者则进一步增强测试程序多样性,引入更多仓颉语言特性、底层库调用等信息,实现对仓颉编译器的更充分测试。

基于代码表示的测试过程加速技术:该项技术旨在提升编译器测试效率,以在更短的时间内检测到更多的编译器缺陷。该项技术将测试程序代码进行片段化,并引入代码表示学习策略将其在语言定义空间中进行表征。进而,该项技术从多样性角度进行代码片段的利用、测试程序的生成,并将测试结果作为反馈,进一步指导后续测试过程,从而提升测试整体效率。

天津大学智能与计算学部软件工程团队与华为编译器与编程语言实验室持续深入合作,目前仍有多项技术在共同探索。在未来,团队将继续助力华为仓颉,创建国产基础软件美好未来!

扫码关注微信公众号

联系我们

地址:天津市津南区海河教育园区雅观路135号天津大学北洋园校区55教学楼,300350
邮箱:coic@tju.edu.cn

Copyright ©2017 天津大学智能与计算学部 版权所有