【小编说】首届全国大学生计算机系统能力大赛编译系统设计赛于2020年8月21日圆满落幕。清华大学陈文光教授在全国总决赛颁奖典礼上对大赛作品进行了点评。本文由陈文光教授授权独家发布。
颁奖典礼上陈文光教授对决赛作品进行点评
首届全国大学生计算机系统能力大赛编译系统设计赛(华为毕昇杯)已圆满落幕。本次比赛从参赛学校数量、参赛队伍规模到参赛队展现的水平都大大超出了组委会的预期,体现出我国高校在编译教学方面的水平、同学们对编译器知识的学习的热情和良好的掌握程度。总的来说,本届大赛的作品呈现出如下特点。
全国总决赛线上答辩现场
陈文光 清华大学计算机系教授,兼任青海大学计算机系主任。主要研究领域为操作系统、程序设计语言与并行计算。获国家科技进步二等奖一次,部级科技一等奖两次。现为中国计算机学会杰出会员和杰出讲者,副秘书长,青年科技论坛荣誉委员;ACM中国理事会共同主席。
陈文光教授多年来奋战在教学和科研一线,对如何改进计算机专业的课程、提升教学质量、培养学生的专业能力有深入的思考。近年来,热心参与系统能力培养教学改革,不仅经常在教学会议上分享他的思考,还翻译了《计算机系统:系统架构与操作系统的高度集成》这本颇具特色的教材。2020年,担任首届全国大学生系统能力大赛编译系统设计赛(华为毕昇杯)技术委员会主席,从零开始启动一个“硬核”但利于学生和教学的比赛。期待越来越多的学生和老师参与到大赛中来,祝愿大赛一年更比一年精彩!
计算机系统:系统架构与操作系统的高度集成
(美)阿麦肯尚尔·拉姆阿堪德兰(Umakishore Ramachandran)
小威廉 D. 莱希(William D. Leahy, Jr.)著
陈文光 等译
ISBN:978-7-111-50636-2
传统的计算机课程体系人为地割裂了解决问题时所需技能的综合性。例如汇编语言、计算机原理、计算机系统结构、操作系统和编译原理分别从不同角度介绍了计算机的硬件和软件系统,但是随着多核系统日渐主流,这种软硬件分离的教学方法变得不切实际。
国内外大学都在这方面展开了探索,即如何用一种综合的方法来介绍计算机系统的相关内容。卡内基-梅隆大学 的《深入理解计算机系统》是目前比较成功的探索,它主要从程序员视角来讲解计算机系统,内容偏向系统软件(特别是操作系统),国内外很多大学已采用该教材作为课程的基础。而佐治亚理工学院的这本教材则是另一个有益的尝试,书中计算机系统结构和操作系统的内容基本平衡,旨在让学生了解计算机体系结构和系统软件之间的关系,为进一步深入学习计算机体系结构、操作系统和网络的高级课程或研究生课程,在这些领域进一步深造奠定良好的基础。
本书采用软硬件集成的方法,系统地讲解了计算机系统的软件和硬件知识及其相互关系。全书分为5 个模块:处理器、内存系统、存储系统、并行系统和网络,分别讨论了处理器及其相关的软件问题、内存系统和分级存储体系、I/O 和文件系统、操作系统问题及支持并行编程的多处理器中相应体系结构特点、网络硬件的发展和处理各种网络行为的网络协议栈的特点等。
本书的目标是让学生在本科生涯(计算机科学或计算机工程专业)的早期就在相关主题方面接触足够宽泛的知识。本书的内容是为用软硬件集成的方式进行课程教学而写的,这种方式使得学生可以了解计算机体系结构和系统软件之间的关系。书中的材料可以作为4学分的半年学期课程教材,或者作为5学分的季度课程教材,或是作为每季度3学分的两季度的课程系列的教材。
叙述方式类似《深入理解计算机系统》;
内容组织类似《计算机组成与设计:软件/硬件接口》;
强调计算机软件和硬件相互协同作用共同构成计算机系统。
编译领域无可替代的经典著作,被广大计算机专业人士誉为“龙书”。本书上一版自1986年出版以来,被世界各地的著名高等院校和研究机构(包括美国哥伦比亚大学、斯坦福大学、哈佛大学、普林斯顿大学、贝尔实验室)作为本科生和研究生的编译原理课程的教材。该书对我国高等计算机教育领域也产生了重大影响。
紧密结合LLVM的源码,系统介绍LLVM的模块化设计理念并详解技术细节
LLVM是一个世界领先水平的编译器框架。它包含有丰富软件库,可以为编译器的初学者提供良好的学习体验,并大大降低编译器开发的学习门槛。
本书的前半部分将向您介绍怎么样去配置、构建、和安装LLVM的不同软件库、工具和外部项目。接下来,本书的后半部分将向您介绍LLVM的各种设计细节,并逐步地讲解LLVM的各个编译步骤:前段、中间表示(IR)、后端、即时编译(JIT)引擎、跨平台编译和插件接口。本书包含有大量翔实的示例和代码片段,以帮助读者平稳顺利的掌握LLVM的编译器开发环境。