| 68 | 0 | 78 |
| 下载次数 | 被引频次 | 阅读次数 |
针对编译器各个模块接续依赖、自动测试困难,不利于学生学习编译器整体结构和流程的问题,提出一种层次递进式编译课程实验框架,以全国编译大赛中采用的SysY语言作为输入,按照从简到繁、从易到难的思路以及语言、算法和实现3个维度的层次化递进式扩展,阐述从初代编译器到复杂编译器的构建思路和设计方法,介绍基于在线教学平台的教学实践,最后说明教学效果。
Abstract:This paper proposes a hierarchical and progressive experimental framework for compiler courses to address the challenges of sequential dependencies among compiler modules and difficulties in automated testing,which hinder students' understanding of the overall structure and workflow of compilers.Using the SysY language adopted in the national compiler contest as input,the framework guides learners through compiler construction from a primitive compiler to a sophisticated one,with hierarchical and progressive extensions across three dimensions:language features,algorithms,and implementation techniques.We elaborate on the evolutionary construction and design methodology from the first-generation compiler to complex compilers,introduce teaching practices based on an online education platform,and finally demonstrate the teaching effectiveness.
[1]张莉,蒋竞.编译课程建设思路及成效[J].计算机教育,2024(5):25-30.
[2]王生原,董渊,张素琴,等.编译原理[M].北京:清华大学出版社,2015:2.
[3]Andrew W A.Modern compiler implementation in C[M].Cambridge:Cambridge University Press,2008:265.
[4]GitHub.BIT-MiniCC[EB/OL].[2024-08-03].https://github.com/jiweixing/BIT-MiniCC/.
[5]吴坎,王永康,刘皓铧,等.基于Clang/LLVM构建编译实践全局观[J].计算机教育,2023(3):70-75.
[6]中国工程教育专业认证协会.工程教育认证标准[EB/OL].[2024-08-03].https://www.ceeaa.org.cn/gcjyzyrzxh/rzcxjbz/gcjyrzbz/tybz/630662/index.html.
[7]Gitlab.SysY语言定义(2022版)[EB/OL].[2024-08-03].https://gitlab.eduxiji.net/nscscc/compiler2022/-/blob/master/SysY2022%E8%AF%AD%E8%A8%80%E5%AE%9A%E4%B9%89-V1.pdf.
[8]希冀.信息类专业课一体化平台[EB/OL].[2024-08-03].https://course.educg.net/indexcs/simple.jsp?loginErr=0.
基本信息:
DOI:10.16512/j.cnki.jsjjy.2025.07.006
中图分类号:TP314-4;G642.3
引用信息:
[1]计卫星,王贵珍,栾华,等.层次递进式编译课程实践体系构建与实践[J].计算机教育,2025,No.367(07):259-266.DOI:10.16512/j.cnki.jsjjy.2025.07.006.
基金信息:
教育部编译课程虚拟教研室教学改革项目“希冀平台编译课程在线资源建设项目”(2023-005)
2024-08-10
2024
2024-10-09
2024
1
2025-07-10
2025-07-10
