北航计算机学院编译,北航学子在全国大学生计算机系统能力大赛编译系统设计赛中获一等奖...

北航新闻网9月15日电(通讯员 周晓懿)近日,首届全国大学生计算机系统能力大赛编译系统设计赛总决赛暨颁奖典礼于线上举行。在北航计算机学院编译技术教学团队指导下,我校共派出两支队伍参加比赛且两支队伍双双获奖,其中,“段地址不队”获得一等奖,“栈地址不队”获得二等奖。

90b691f8874fa6f539d58004e656447e.png

大学生计算机系统能力大赛编译系统设计赛是由教育部高等学校计算机类专业教学指导委员会和系统能力培养研究专家组共同发起,以学科竞赛推动专业建设和计算机领域创新人才培养体系改革、培育我国高端芯片及核心系统的技术突破与产业化后备人才为目标,面向高校大学生举办的全国性大赛。来自清华大学、中国科学技术大学、北京航空航天大学等47所高校的72支队伍报名参赛。

“段地址不队”由计算机学院本科生赵博、滕琦、何逸宸和软件学院本科生李子烨组成。同学们设计思路清晰、分工明确,在比赛中展现了强大的理论水平以及实践能力。针对静态单一赋值形式的中间表示,他们使用了基于数据流分析、过程间分析等多种优化方法。另外,他们还根据目标硬件体系结构特点,使用代码对齐等方法提高流水线效率。最终,他们设计的编译器产生高性能汇编代码,在大部分用例上快于开启O2优化选项GCC编译器,荣获一等奖。

“栈地址不队”由计算机学院本科生刘泽华、刘阳、丛睿轩和姜春阳组成。同学们通力合作、各有分工,参考LLVM中间代码格式,基于SSA形式中间代码使用数据流分析、过程间优化等多种优化方法。最终实现的编译器在某些样例点上性能达到GCC-O2的水平,荣获二等奖。

近年来,计算机学院编译技术教学团队开展了卓有成效的改革。国内第一个课程中引入编译优化竞速排名,国内第一次实现编译构建全过程分阶段自动评判系统,从而为教学过程提供了信息化和智能化管理平台,云端平台也支撑了学生随时随地开展课程实践。通过创新的编译中间过程及代码竞速自动化评测,支持在线实验与能力评价。这些改革不仅获得学生的好评,也为本次比赛取得佳绩奠定了重要基础。

北航积极推动编译器构建能力作为新增科目纳入计算机教指委组织的全国计算机系统能力大赛,为大赛提供自动评测能力,为在全国范围输出北航编译教学模式搭建平台。通过本次竞赛,向全国推广北航的编译优化竞速排名和自动化评测系统。

(审核:王蕴红)

编辑:贾爱平

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C0文法 <加法运算符> ::= +|- <乘法运算符> ::= * |/ <关系运算符> ::= <|<=|>|>=|!=|== <字符> ::= _|a|...|z|A|...|Z <数字> ::= 0|<非零数字> <非零数字> ::= 1|...|9 <字符串> ::= "{ }" //字符串中可以出现所有合法的可打印字符集中的字符 <程序> ::= [<常量说明部分>][<变量说明部分>]{<子函数定义部分>}<主函数> <常量说明部分> ::= const<常量定义>{,<常量定义>}; <常量定义> ::= <标识符>=<整数> <整数> ::= [+|-]<非零数字>{<数字>}|0 <标识符> ::= <字符>{<字符>|<数字>} <声明头部> ::= int <标识符> <变量说明部分> ::= <声明头部>{,<标识符>}; <子函数定义部分> ::= (<声明头部>|void <标识符>)<参数><复合语句> <复合语句> ::= ‘{’[<常量说明部分>][<变量说明部分>]<语句序列>‘}’ <参数> ::= ‘(’<参数表>‘)’ <参数表> ::= int<标识符>{,int<标识符>} | 空 <主函数> ::= (void |int) main <参数><复合语句> <表达式> ::= [+|-]<项>{<加法运算符><项>} <项> ::= <因子>{<乘法运算符><因子>} <因子> ::= <标识符>|‘(’<表达式>‘)’|<整数>|<子函数调用语句> <语句> ::= <条件语句>|<循环语句>|‘{’‘}’|<子函数调用语句>; |<赋值语句>; | ;|<读语句>;|<写语句>;|<空> <赋值语句> ::= <标识符>=<表达式> <条件语句> ::= if‘(’<条件>‘)’<语句>[else<语句>] <条件> ::= <表达式><关系运算符><表达式>|<表达式> <循环语句> ::= while‘(’<条件>‘)’<语句> <子函数调用语句> ::= <标识符>‘(’<值参数表>‘)’ <值参数表> ::= <表达式>{,<表达式>}|<空> <语句序列> ::= <语句>{<语句>} <读语句> ::= scanf‘(’<标识符>‘)’ <写语句> ::= printf‘(’[,][<表达式 >]‘)’ <返回语句> ::= return [ ‘(’<表达式>‘)’] 注:返回值为void类型的子函数不允许出现在表达式中

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值