paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Developing an optimizing compiler for the game boy as a software engineering project

作为软件工程项目的 Game Boy 优化编译器开发
ICSE Proceedings of the 40th International Conference on Software Engineering: Software Engineering Education and Training2018匹配度 2/10 · 论文主题是软件工程课程中开发 Game Boy 优化编译器的教学经验,属于编译器/代码生成方向,但未涉及用户核心关注的 PL×AI、Agentic 程序静态分析、浮点程序分析或贝叶斯程序分析。仅因编译器工程背景与 PL 有边缘关联,匹配度较低。引用 2 inbox
Stefan Kögel, Michael Stegmaier, Raffaela Groner, Stefan Götz, Sascha Rechenberger, Matthias Tichy
crossref: 2026-09-12

AI 速览

一句话:报告一门硕士软件工程课程中,学生团队在一学期内开发 Game Boy 优化编译器的经验与课程改进建议。

软件工程学生不仅要学习理论概念,还需在实践中成功应用它们;而软件工程方法和技术通常只对非平凡软件系统才有意义。本文报告了一门硕士层次软件工程项目课程:学生团队在一个学期内为 Game Boy 开发了一个优化编译器。项目中,学生实现了多种语言及相应解析器并统一到公共中间语言,在中间语言上实现优化,并完成了 Game Boy 代码生成器。论文重点呈现教师与学生获得的经验教训,以及可能的课程改进方向。

问题
软件工程学生需要将理论概念应用到实践中,而软件工程方法只有用于非平凡软件系统时才真正相关,因此需要合适的项目课程案例。
方法
组织硕士软件工程课程中的学生团队,用一个学期为 Game Boy 开发优化编译器,涵盖多种语言及对应解析器到公共中间语言、中间语言优化和代码生成器。
评估
基于该课程项目的实施过程,总结教师与学生获得的经验教训,并提出可能的课程改进建议。
原文摘要(Abstract)

Software engineering students not only have to learn theoretical concepts but also how to successfully apply them in practice. Hence, projects are an important part of software engineering curricula. As software engineering methods and technologies are only relevant for non-trivial software systems, we report in this paper on a master-level software engineering project course in which a team of students developed a compiler for the Game Boy in a single semester. The students developed different languages and corresponding parsers to a common intermediate language, optimizations on the intermediate language, as well as a code generator for the Game Boy. We particularly present lessons learned by us and the students as well as potential course improvements.

链接与引用

DOI 原文 ·

BibTeX
@inproceedings{paperbot4559,
  title = {Developing an optimizing compiler for the game boy as a software engineering project},
  author = {Stefan Kögel and Michael Stegmaier and Raffaela Groner and Stefan Götz and Sascha Rechenberger and Matthias Tichy},
  booktitle = {ICSE},
  year = {2018},
  doi = {10.1145/3183377.3183388}
}