CS 6120:高级编译器:自学在线课程
CS 6120: Advanced Compilers: The Self-Guided Online Course

原始链接: https://www.cs.cornell.edu/courses/cs6120/2023fa/self-guided/

欢迎来到 CS 6120 - 高级编译器:自导式在线课程,这是由 Adrian Sampson 教授虚拟授课的康奈尔大学博士级计算机科学课程。 这门四学分的课程重点关注通用编译器主题,例如中间表示、数据流、经典优化和高级研究领域,包括并行化、即时编译和垃圾收集。 学生将参与互动学习、观看预先录制的讲座,并使用 LLVM 和其他工具完成实施任务。 没有截止日期要求,但学生必须根据理论概念自行实现。 完成后,学生将把学术理论转化为实际的编码技能。 有了这些知识,学生就可以创造创新的方法来改进计算系统,从提高编程语言的效率到改进垃圾管理技术。 立即加入我们,了解如何成为设计高级编译器的专家。 有关特定课程主题的更多信息,请查看下面的综合时间表。 请访问 www.cs.cornell.edu/cs6120 了解更多详细信息,并在课程完成后向我们提供宝贵的反馈。 [注意:将课程材料复制到一长段]。 日程: 第一周:介绍和代表项目 视频讲座:“欢迎与概述” 任务 1:开始使用 Brill 第 2 课:本地分析和优化 视频讲座:《简单的死代码消除》 实现任务:执行本地值编号 第 3 课:数据流 视频讲座:“数据流” 实现任务:编写一个简单的循环优化器 第 4 课:全局分析 视频讲座:《全局分析与优化》 阅读材料:SIGPLAN 的实证评估指南 第 5 课:静态单一作业 (SSA) 视频讲座:《静态单一作业》 阅读材料:使用 Alive 证明正确的窥孔优化 第 6 课:循环优化 视频讲座:“循环优化” 阅读材料:快速保守的垃圾收集 第 7 课:LLVM 简介 视频讲座:《LLVM 简介》 实施任务:创建 LLVM Pass 第8课

评论线程提到编译 Haskell 等函数式编程语言。 由于编译器涉及创建可执行二进制文件,因此测试编译后的二进制文件可以清楚地表明编译器运行正常。 假设课程提供的实验材料包括相应的测试套件,用户可以编译相应的源文件并针对相关测试执行它们以验证正确的编译。 此外,将调试器集成到识别和解决任何潜在编译错误的过程中,进一步增强了测试阶段的有效性。 可以通过调试器或替代分析方法检查输出二进制文件,以确认编译和执行行为与预期输出匹配。
相关文章

原文

CS 6120 is a PhD-level Cornell CS course by Adrian Sampson on programming language implementation. It covers universal compilers topics like intermediate representations, data flow, and “classic” optimizations as well as more research-flavored topics such as parallelization, just-in-time compilation, and garbage collection. The work consists of reading papers and open-source hacking tasks, which use LLVM and an educational IR invented just for this class.

This page lists the curriculum for following this course at the university of your imagination, for four imagination credits (ungraded). There’s a linear timeline of lessons interspersed with papers to read. Each lesson has videos and written notes, and some have implementation tasks for you to complete. Tasks are all open-ended, to one degree or another, and are meant to solidify your understanding of the abstract concepts by turning them into real code. The order represents a suggested interleaving of video-watching and paper-reading.

Some differences with the “real” CS 6120 are that you can ignore the task deadlines and you can’t participate in our discussion threads on Zulip. Real 6120 also has an end-of-semester course project—in the self-guided version, your end-of-semester assignment is to change the world through the magic of compilers.

The instructor is a video production neophyte, so please excuse the production values, especially in the early lessons. CS 6120 is open source and on GitHub, so please file bugs if you find problems.

When you finish the course, please fill out this feedback form.

联系我们 contact @ memedata.com