算法与计算机科学scheme2006.cs.uchicago.edu编辑精选
编译器构造的增量方法(2006)
An Incremental Approach to Compiler Construction (2006) [pdf]
2010 — 2021,它一次次回到首页
黑点是上首页(≥ 50 分)的那次投稿,空心点是没冲上去的投稿,点越大分数越高。
导读
这篇 2006 年 Scheme 研讨会论文提出一种增量式的编译器构造教学方法:从极小的语言子集开始,分多个小步骤逐步扩展,最终构建出一个 Scheme 编译器。它配有可运行的代码和练习,适合自学,多年来被许多人用作编译器入门实践。
为什么经久不衰:它把复杂的编译器工程拆成可管理的小步骤,并配有实现和文档,因此至今仍是编译器入门者的经典实践指南。
HN 评论精选
指出 Nada Amin 提供了该论文的完整实现与教程文档,并关联到 Scala 编译器工作。
Nada Amin(2014 年 Strange Loop 主题演讲《Programming Should Eat Itself》的演讲者)完成了该论文的实现(https://github.com/namin/inc),并在她的 GitHub 账户中提供了相应的 workshop 文档(https://github.com/namin/inc/blob/master/docs/tutorial.pdf)。她还参与了下一代 Scala 编译器 Dotty 的贡献。
juliangamble查看英文原文
Nada Amin, who gave the keynote at Strange Loop in 2014 "Programming Should Eat Itself" https://www.youtube.com/watch?v=SrKj4hYic5A has worked through the implementation https://github.com/namin/inc and provided the corresponding workshop documentation in her github account. https://github.com/namin/inc/blob/master/docs/tutorial.pdf She's also been involved in contributing to the next generation Scala compiler (Dotty).
推荐了 nanopass 等相关的编译器构造论文供延伸阅读。
这里有一些你可能感兴趣的相关论文(如果你还没看过的话):http://lambda-the-ultimate.org/node/1589 http://www.cs.indiana.edu/~dyb/pubs/nano-jfp.pdf http://www.cs.indiana.edu/~dyb/pubs/commercial-nanopass.pdf
fao_查看英文原文
Here are some related papers you might be interested in (If you haven't seen them already): http://lambda-the-ultimate.org/node/1589 http://www.cs.indiana.edu/~dyb/pubs/nano-jfp.pdf http://www.cs.indiana.edu/~dyb/pubs/commercial-nanopass.pdf
推荐另一本经典编译器教程作为补充阅读。
Jack Crenshaw 的《Let's Build a Compiler》虽然有点旧而且是用 Pascal 写的,但读起来仍然很有趣:http://compilers.iecc.com/crenshaw/
sepeth查看英文原文
A bit old and it is in Pascal, but still, Let's Build a Compiler by Jack Crenshaw is also fun to read: http://compilers.iecc.com/crenshaw/
建议用 WASM 替代汇编作为目标,以现代方式实践论文方法。
现在有了 WASM,学习这篇论文的一个好方法是生成 WASM 而不是它建议的汇编,并把 WASM 构造当作宏来使用。
pjmlp查看英文原文
Now with WASM, a good way to go through this paper is to generate WASM instead of the suggested Assembly and use WASM constructs as macros.
历次讨论
同类还值得读
位运算技巧集
Bit Twiddling Hacks
斯坦福页面上的经典位运算技巧合集,收录了 popcount、前导/尾随零、位反转、交换、舍入等大量技巧,并附有解释和性能讨论。
算法与计算机科学上首页 8 次 · 2011–2024graphics.stanford.edu编辑精选如何不按平均评分排序
How Not To Sort By Average Rating
经典文章解释了为什么按平均评分排序不可靠:只有少量评价的条目(比如仅一条五星)会轻易排到最前,而评价数量的差异被忽略。
算法与计算机科学上首页 7 次 · 2009–2024evanmiller.org编辑精选数据结构可视化
Data Structure Visualizations
旧金山大学 David Galles 教授制作的数据结构与算法交互式可视化网站,涵盖 B 树、红黑树、排序、图算法等,可逐步操作观察其运行过程。
算法与计算机科学上首页 6 次 · 2011–2021cs.usfca.edu编辑精选1996 年以来的计算机科学最佳论文奖
Best Paper Awards in Computer Science since 1996
Jeff Huang 维护的一个汇总页面,收录了自 1996 年以来计算机科学各主要会议的“最佳论文奖”获奖名单,并按年份和会议整理,方便读者一站式浏览历届获奖论文。
算法与计算机科学上首页 6 次 · 2010–2018jeffhuang.com编辑精选算法(Jeff Erickson)
Algorithms, by Jeff Erickson
伊利诺伊大学 Jeff Erickson 教授的算法课教材,免费在线开放。
算法与计算机科学上首页 5 次 · 2018–2022jeffe.cs.illinois.edu编辑精选