收藏 分销(赏)

以培养可持续竞争力为目标的编译原理课程改革.pdf

上传人:自信****多点 文档编号:603051 上传时间:2024-01-11 格式:PDF 页数:5 大小:1.33MB
下载 相关 举报
以培养可持续竞争力为目标的编译原理课程改革.pdf_第1页
第1页 / 共5页
以培养可持续竞争力为目标的编译原理课程改革.pdf_第2页
第2页 / 共5页
以培养可持续竞争力为目标的编译原理课程改革.pdf_第3页
第3页 / 共5页
亲,该文档总共5页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、31计 算 机 教 育Computer Education第 8 期2023 年 8 月 10 日以培养可持续竞争力为目标的编译原理课程改革张 敏,刘 骥,葛 亮,吴全旺,陈咸彰(重庆大学 计算机学院,重庆 401331)摘 要:针对新时代人才培养中如何提升学生的可持续竞争力问题,提出以培养可持续竞争力为目标的编译原理课程教学改革思路和方案,从课程教学目标重定位、教学方式更新、教学内容重组等方面介绍具体教学改革实践过程,最后说明改革成效。关键词:编译原理;可持续竞争力;能力培养;迭代式项目实践基金项目:国家级新工科项目“深度融合三创能力提升的计算机类专业培养体系探索与实践”(E-JSJRJ20

2、201335,2020-2023)。第一作者简介:张敏,女,副教授,研究方向为智能感知、智能信息处理,。0引 言在信息化时代,基础的编程能力是几乎所有学科大学生必备的基础技能,而对于计算机学科的学生而言,新时代计算机专业教育应将培养学生的可持续竞争力作为今后一段时间的主题,专业教学要更重视提升学生学习兴趣,深化专业核心课程学习,拓宽学生跨专业视野,从而提升学生的综合能力和可持续竞争能力1。编译原理作为计算机专业技术类的核心课程,由于课程内容抽象性和综合性较强(例如形式化语言等内容),学生理解接受起来较为困难;此外,课程教学中存在“重前端理论,轻后端技术”、教学内容相对陈旧、教学体系较为僵化等问

3、题。从新时代人才培养需求的角度来看,以培养可持续竞争力为目标的编译原理课程教学改革思路就是,将深度培养学生的专业核心能力作为课程发展和改革的首要目标,对课程进行重新定位,重构教学内容和方式。1以可持续竞争力培养为课程目标教育部高校计算机科学与技术专业教指委强调,计算机学科学生应具备多项专业能力,即计算思维能力、程序分析与设计能力、算法分析与设计能力、计算机系统能力及创新能力2。在可持续竞争能力中,计算机系统能力是核心。编译原理课程定位为以培养贯通软硬件的人才为课程教学目标,通过对标本科毕业能力指标点,逐步从知识型课程转化为能力型课程3。采用层次化结构重组教学内容,在教学中帮助学生实现各项能力的

4、递增(如图 1 所示),将课程分为 3 个层次,分别对标计算机专业认证能力达成度指标点中针对课程细分出的 4 项指标点。(1)R1.5 能够运用计算机基础知识和专业知识,设计并开发实际工程问题中的计算机软件 系统。(2)R2.3 能够应用计算机科学与技术的基本原理,通过文献研究,深入分析复杂计算机工程问题,以获得有效的结论。(3)R4.1 掌握复杂计算机工程研究的基本方法,能够对计算机科学原理进行验证。(4)R4.2 能够基于科学原理并采用专业科学的方法,针对复杂计算机工程问题进行实验设计。文章编号:1672-5913(2023)08-0031-05中图分类号:G642核心课程建设202332

5、计 算 机 教 育Computer Education2以系统能力培养为核心重组课程编译系统是计算机系统中的软硬件接口,编译原理主要针对如何将高级语言源程序转换成面向计算机硬件能够识别的目标代码,系统学习相应的基本原理、设计方法和实现技术;课程内容覆盖了程序设计语言、数据结构与算法、计算机组成原理的相关内容;课程实践需要学生独立完成完整的编译系统软件设计及实现,是对程序语言设计、软件工程等课程的深入理解与应用4。因此在课程改革中,可以将编译原理课程定位为本科阶段培养贯通软硬件人才的重要课程,将提升学生的计算机系统能力作为课程的教学重点。在国际计算机科学课程大纲 CS2013 中对计算机系统能力

6、也有明确涉及与阐述,计算机系统能力是指能够利用计算机系统层面的基本原理来构建以计算机技术为核心的应用系统并能够解决实际问题的能力5。编译原理课程可以从以下两种角度出发,帮助学生建立计算机系统思维能力和实践能力。(1)计算机系统思维能力培养:以程序设计语言和程序的分析为出发点,通过基础方法论层面的学习,例如形式语言与自动机理论、自顶向下和自底向上的语法分析方法、目标代码优化等,将计算机系统的重要概念在课程中串联起来,帮助学生建立联通计算机软硬件的计算机系统框架,提升系统思维能力。(2)计算机系统实现能力:以程序员视角,从编译系统软件的设计与开发的角度,进行系统级软件的开发设计,训练学生编写大程序

7、的能力,提升系统实践方面的能力。目标 1:使学生掌握职业生涯中反复用到的基础理论和基本方法,以用于解决难度较大的问题,处理复杂系统的设计与实现。对于毕业能力指标点 R1.5 和 R4.1 的达成提供支撑。目标 2:培养学生选择适当的模型,以形式化的方法描述语言及其翻译子系统,将它们用于系统设计与实现的能力。对于毕业能力指标点R2.3 的达成提供支撑。目标 3:强化学生数字化、算法、模块化等专业核心意识,对自顶向下、自底向上、递归求解、模块化等典型方法的掌握,培养其包括功能划分、多模块协调、形式化描述、程序实现等在内的复杂系统设计实现能力。对于毕业能力指标点 R1.5 的达成提供支撑。目标4:使

8、学生经历复杂系统的设计与实现,培养其对多种方法、工具、环境的比较、评价与选择能力。方法选择:选择实现词法、语法分析的方法;实现途径选择:直接设计实现、使用某种自动生成工具设计实现(自学);工具与环境选择:使用的开发语言和环境;比较与评价:在组间相互评价中锻炼评价能力。对毕业能力指标点 R2.3 和 R4.2 的达成提供一定的支撑。目标 5:通过按组完成系统设计与实现,培图 1 编译原理教学内容对应能力达成度指标解决复杂工程问题系统软件开发能力R4.2、R1.5程序设计能力方法、工具评价及选择能力对计算机软硬件系统理解能力R2.1抽象能力模型化能力形式化能力逻辑分析能力R4.1梳理课程知识框架中

9、与系统能力培养相关结合点夯实基本原理、重要模型、基础分析方法等基础增加国产编译器案例分析等环节鼓励并引导学生参与“编译系统设计大赛”支持学生参加其他相关项目实践实现高级语言到主流CPU架构指令集的编译器层次化实验:验证性实验、设计性实验、综合性实验实验采用难度分级制、评分分级制与组成原理等课程结合核心课程建设第 8 期33养学生团队协作能力。学生要在分工、设计、实现、口头及书面报告等环节中相互协调、相互配合。通过实验系统设计实现过程中的组内讨论,验收过程中的报告撰写、陈述发言等,培养专业相关的表达能力。对毕业能力指标点 R1.5 的达成提供一定的支撑。3提升迭代式项目实践驱动能力运用迭代式项目

10、教学法,逐步深化专业知识的学习,在编译原理系统软件的迭代开发实践中逐步达成能力培养目标。迭代开发是软件开发中常用的方法,针对编译原理课程的特点和教学目标,即学习如何设计开发一款编译软件,采用迭代式的项目开发方式进行编译原理课程实践是非常适合的。在教学过程中,指导学生采用演进式策略,通过多次迭代开发的方法,实现一个完备的高级语言编译软件。在这个过程中,将课程重点内容分解到各次迭代中,引导学生在模拟的项目开发环境中将理论教学内容及时进行应用,锻炼软件设计开发能力及团队协作精神。3.1迭代实践教学过程在编译原理课程的教学过程中,围绕编译软件的建立,创建一个“实践(小项目)学习总结实践(更大项目)学习

11、总结”迭代教学过程的实例(见表 1)。语言编译器的过程中,每次迭代项目都要撰写一个项目实验报告,也锻炼了学生的总结分析 能力。3.2持续性进行课程实践内容的迭代重庆大学(以下简称我校)编译原理课程在近年来持续进行教学实践的改革,课程教学内容中实践部分的比重逐年增加,从实现编译器部分功能单元到实现完整编译系统软件,锻炼了学生的系统设计能力以及编写大程序的能力。编译原理课程迭代式项目教学方案见表 2。表 1 编译原理课程迭代式项目教学方案迭代阶段阶段目标教学内容第 1 次迭代以解析整数的加减运算表达式为出发点进行第 1 次迭代,让学生尝试自己编写一个整数加减法表达式的解释器编译器的基本功能,程序设

12、计语言第 2 次迭代在整数加减运算表达式的基础上,扩充不同数据类型(如标识符)和多种运算符、赋值语句,实现简单算术语言的解释器编译器前端技术及算法,词法及语法分析器生成工具使用第 3 次迭代将编译内扩充为 C 语言子集,包含各种控制语句、函数调用等功能的高级语言编译器中间代码及语法制导翻译第 4 次迭代对编译器增加代码优化需求,学生组合多种代码优化技术实现性能提升,生成 MIPS 指令输出代码生成及优化技术这 4 个阶段的项目均可以生成一个规模不同的编译器,后阶段的项目是在前阶段基础上的扩充与优化。随着教学内容的展开,项目经过多次迭代开发,涉及的知识单元不断扩展,也促使学生由基础不断深入,在重

13、复渐进的开发实践中,能够充分熟悉所学内容,构建自己的知识体系;另一方面,随着项目进展,反复地进行实践,面对新功能,促使学生进行思考并找寻新思路,锻炼了学生的创新能力和实践能力;在实现一个具有完善功能的高级程序设计表 2 编译原理课程迭代式项目教学方案时间实践内容2016类 pascl 语言编译器前端,生成中间代码 TAC 输出,提交代码和实验报告2019分组实现 C 语言子集编译器,选用 Flex、Bison 等生成器工具构造前端,输出 X86 汇编指令,提交代码和实验报告2020独立实现 C 语言子集 C1 编译器,使用 Flex、Bison、LLVM 等生成器工具构造前端,输出 MIPS

14、汇编指令,探索寄存器分配算法及优化算法,提交代码和实验报告202334计 算 机 教 育Computer Education通过近年来的不断改革,编译原理课程有了以下改进。(1)实践教学内容难度逐年增大,学生要独立完成的功能也逐渐增加,从仅完成编译器前端部分到需要学生独立完成面向主流 CPU 架构的类 C 语言编译器。(2)对学生能力评价方式更加多样化,既有客观的OJ系统测试,也有教师评阅实验报告的评价。(3)通过系统能力大赛中编译原理系统设计大赛以赛代练,提升学生学习兴趣。(4)课程实践内容逐步拓展,覆盖主流的CPU架构,为今后进行弹性化教学实践打下基础。4多方向培养学生创新能力编译原理课程

15、教学目标是让学生掌握编译器的基本原理、技术和方法,而编译系统本身包含前端、中端及后端多个组成部分,是一个复杂工程问题,在编译器构造中既涉及软硬件结合,又涉及软件工程、软件优化等多方面的内容;编译器的构造既可以用工具软件快速开发,又可以通过教学内容让学生手动编写;结合“新工科”计算机专业“三创”人才培养以及我国信息产业实现“技术创新、自主可控”的目标,编译原理课程从多方面多方向来培养创新型人才6-10。(1)以提升学生计算机系统能力为目标,夯实基础,理论结合实践,要求学生独立实现完整编译器;采用迭代式的实践方式,逐步提升学生分析与解决复杂问题的能力,培养学生养成科学的思维方法,为创新创业打下基础

16、;另一方面建立学生编写大程序的信心,提升专业自信心和创业信心。(2)在课程教学过程中,教师通过引导启发学生发现并解决问题,基于课程教学内容进行算法改进等微创新活动;通过问题导向式教学、翻转课堂等多种教学方式来激发学生的学习兴趣,实现以核心教学内容为基础的微创新,提升学生的思维能力和创新能力。(3)面向国产芯片,以新型芯片即指令结构为基础,例如学生在计算机组成原理课程中自行实现的芯片指令集或者龙芯等我国具有自主知识产权的芯片指令集,设计开发新型编译器,既可提高学生系统能力,又能提升学生知识迁移和集合创新能力。(4)利用工具软件,借助编译技术,实现语言类应用程序开发,例如设计一门自己定义的编程语言

17、或者其他语言类应用,培养学生应用型创新能力。5改革成效我校计算机科学与技术专业从 2015 级开始培养学生可持续性竞争力以来,到 2019 级学生已能够独立在商品化的 MIPS CPU/ARM CPU 架构上完成简单的编译器设计并完成编码与测试;对毕业能力指标点的达成度也逐步提升,其中指标点R1.5从0.85提升到0.97,指标点R2.3从0.74提升到 0.91,指标点 R4.1 从 0.84 提升到 0.99,指标点 R4.2 从 0.86 提升到 0.91。以 2019 级学生的编译原理课程实践完成情况为例,学生提交的代码量平均值为 6 416 行,代码测试总正确率平均值为 96.14%

18、,实验总用时平均值为 385min。在实践中,学生共须完成 4 个实验,具体内容见表 3,这 4 个实验完成情况见表 4。综上,学生通过编译原理课程实践,初步具备了计算机系统软件的开放能力,在实践中还锻炼了大程序编写能力,从系统程序员的视角来看,其系统分析设计、软件工程及程序开发能力都得到了提升。续表 2时间实践内容2021独立编码实现 C 语言子集 C2 编译器,输出 MIPS 汇编指令,在组成原理实验平台上进行测试,提交代码和实验报告,鼓励参加编译系统大赛2022独立编码实现 SYS 语言编译器,输出 ARM 汇编指令,进行系统性能测试,采用 OJ 系统进行实验程序部分评价,教师批改实验报

19、告核心课程建设第 8 期35参考文献:1 李未.全面提高计算机学科高等教育质量:“互联网+”带来的机遇和挑战中国科学院信息学部主任李未院士专访J.计算机教育,2016(1):2-7.2 计算机教育20人论坛报告编写组.计算机教育与可持续竞争力M.北京:高等教育出版社,2019.3 中华人民共和国教育部.教育部关于加快建设高水平本科教育全面提高人才培养能力的意见EB/OL.(2018-09-17)2018-10-08.http:/ 高小鹏.计算机专业系统能力培养的技术途径J.中国大学教学,2014(8):53-57.5 徐晓飞,李廉,战德臣,等.未来工程教育形态:面向可持续竞争力的服务型教育J.

20、中国大学教学,2019(5):4-9.6 中华人民共和国教育部.教育部高等教育司关于开展新工科研究与实践的通知EB/OL.(2017-02-20)2022-08-10.http:/ 中华人民共和国教育部.突破性进展历史性跃升:“十三五”高等教育主要成就EB/OL.(2020-12-03)2022-12-03.http:/ 赵亮创新创业教育与专业教育深度融合的高校课程体系重构:基于理论与实践角度的分析J.江苏高教,2020(6):83-889 李炎,魏雪芬,张健,等.创新教育课程教学模式改革对高校学生创新创业素质的提升J.教育教学论坛,2019(37):127-12810 董雷刚,崔晓微.新工科

21、计算机专业三创人才进阶式培养模式研究J.电脑知识与技术,2021(17):194-198.(编辑:赵 原)6结 语以培养计算机专业学生可持续竞争力为目标的教学改革取得了良好效果,希望能够为更表 3 2019 级学生编译原理实践内容实验名称实验内容和要求源语言分析器掌握自动机及文法的基础理论;掌握高级程序语言形式化基本方法;掌握词法及语法分析的基本方法;了解编译器前端结构;学习常用分析器生成工具的使用;设计源语言分析器并实现语义分析及错误处理掌握属性文法、语法制导翻译方法;掌握存储分配基本方法;设计并实现语义分析程序;设计并实现符号表管理程序;诊察出常见的语法和语义错误;能对错误进行局部化处理并

22、输出错误提示信息中间代码及优化了解 LLVM、JIT、GCC 等采用的中间代码系统及优化方法;掌握 PDG、DAG、树状、线性等多种中间代码形式,能根据需要选取/设计合适的中间代码;实现基本块优化、循环优化;鼓励学生设计并实现更多优化方案目标代码生成掌握并实现树覆盖等指令选择算法、寄存器分配基本算法、线性扫描及图染色算法 指令重排算法;能根据目标机体系结构选择合适的算法构造代码生成程序;充分利用目标机特点进行目标代码优化;生成面向主流 CPU 架构的目标代码:ARM 汇编/MIPS 汇编;对生成代码进行功能及性能测试表 4 2019 级学生编译原理实践完成情况实验代码测试正确率/%平均代码/行平均完成时间/min实验一97.230108实验二96.81 371107实验三96.032 196120实验四94.492 54349大范围、更深层次的计算机系统课程改革探索提供一些启发与参考,促进计算机专业核心课程不断更新升级,为国家信息产业发展培养更多 人才。

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 学术论文 > 论文指导/设计

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服