HackerPapers

HN 二十年,最值得读的论文。

从 Hacker News 2006 年以来的全部投稿里,挑出链接本身就是论文的帖子:arXiv、期刊、会议论文、技术报告。每篇附中文标题,讨论最热的那些再加上中文导读和高赞评论翻译。

从必读开始
  • 8,000+篇被 HN 讨论过的论文

Essential

必读 30 篇

在论文库里看全部精选

编辑精选里 HN 讨论最热的 30 篇,每篇都有中文导读。不知道从哪读起,就从这里开始。

  1. 正在载入论文…

Archive

论文库

点柱子按年份筛选。注:源数据里 2023 年的帖子分数记录不全,2026 年尚未过完,这两年收录偏少。

难度
排序

    About

    这些论文是怎么挑出来的

    1. 01

      全量扫一遍

      读取 Hacker News 自 2006 年以来的全部 446 万条链接投稿,找出指向 arXiv、期刊、会议、技术报告和学术 PDF 的帖子。

    2. 02

      只留论文本身

      由 AI 逐条判断,剔除介绍论文的新闻、博客和幻灯片,同一篇论文的多次投稿合并计算,并统计它在评论区被引用的次数。

    3. 03

      写导读、译评论

      讨论最热的 1,500 篇配上中文导读,并精选、翻译 HN 高赞评论。导读由 AI 生成,可能有误,请以原文为准。

    编程语言与软件工程2014bitsavers.trailing-edge.com

    编程语言的早期发展

    The Early Development of Programming Languages (1976)

    入门 · 约 60 分钟读完前置知识:编程语言基础、计算机史基础

    读论文 HN 讨论
    150HN 得分
    18条评论
    3次投稿

    导读

    这是 Knuth 与其学生 Luis Trabb Pardo 于 1976 年合写的论文,研究 1947–1957 年间(约第一个十年)早期编程语言的发展。核心做法是用同一个程序(TPK 算法)在每种早期语言中各写一遍,以此对比展示各语言的表达能力与设计思路。结论是许多如今被视为理所当然的编程语言概念,其实经历了很长时间、很多人的努力才逐步形成;1958 年 ALGOL 和 LISP 出现之前的语言面貌与之后大不相同。

    HN 关注点:作者是 Donald Knuth,且论文以同一程序贯穿多种早期语言的独特视角回顾编程语言史,HN 读者对 Knuth 和计算史都有浓厚兴趣。

    关键词 编程语言史Donald KnuthTPK算法ALGOL

    后来怎么样

    这篇论文成为编程语言史研究的经典文献,其用同一程序(TPK 算法)对比多种语言的方法被广泛沿用,'TPK benchmark' 成为早期语言研究的标准示例。

    HN 评论精选

    这几条评论里:支持 1 补充 2 亲历 1

    补充介绍论文背景、相关资源( reprint、演讲视频),并概括其核心方法与洞见

    这是 Knuth 和他的学生 Luis Trabb Pardo 合写的论文,正式发表版更易读(附 DOI 链接和 sci-hub 免费链接),另有一篇博客解读。此外 Knuth 2003 年 12 月在计算机历史博物馆做过约 80 分钟加 30 分钟问答的演讲视频(该文后来经修订收入《Selected Papers on Computer Languages》第一至 93 页,演讲即在书出版后不久)。论文的巧妙之处是用同一个程序(TPK)在约 1947–1957 年的每种早期语言中各写一遍来展示它们。它揭示出:许多我们如今认为显而易见的编程语言思想,其实花了很长时间、很多人之力才发展出来。1958 年 ALGOL 和 LISP 问世之前的早期语言,与之后语言的样子截然不同。

    svat查看英文原文

    This is a paper by Donald Knuth and his student Luis Trabb Pardo, and the published version has a more readable reprint: https://doi.org/10.1016/B978-0-12-491650-0.50019-8 (without paywall: http://sci-hub.se/https://doi.org/10.1016/B978-0-12-491650-0.50019-8). See also someone's blog post: https://gregorias.github.io/2014/11/22/early-high-level-programming-languages.html There's also a video version of this paper: https://www.computerhistory.org/collections/catalog/102622137 — This is a nice talk (~80 minutes followed by ~30 minutes of Q&A) that Donald Knuth gave on 2003-December-03 at the Computer History Museum. This paper was reprinted with corrections/updates as pages 1 to 93 of "Selected Papers on Computer Languages" (the fifth volume of Knuth's collected papers), and the talk was given shortly after this book came out, so he spoke about the first chapter of the book. The clever idea here is to illustrate (very) early programming languages from their first decade (roughly 1947 to 1957), by writing the same program ("TPK") in each of them. A while ago I added a little bit about it to the lede of https://en.wikipedia.org/w/index.php?title=TPK_algorithm&oldid=992083216 What it reveals is that many ideas of programming languages that we now consider obvious in fact took a long time and many people to be developed. The early programming languages did not look at all like languages have looked, more or less, since 1958 (when both ALGOL and LISP were introduced). > This talk will discuss contributions of Zuse (1945), Goldstine and von Neumann (1946), Curry (1948), Mauchly et al (1949), Burks (1950), Wheeler (1951), Rutishauser (1951), Böhm (1951), Glennie (1952), Hopper et al (1953), Laning and Zierler (1953), Brooker (1954), Kaminynin and Ljubimskiy (1954), Ershov (1955), Grems and Porter (1955), Elsworth et al (1955), Blum (1956), Perlis et al (1956), Katz et al (1956), Bauer and Samelson (1956), Melahn et al (1956), as well as the prototype of FORTRAN developed by Backus et al from 1954 to 1957. At least a dozen of these efforts will be illustrated by showing how a particular procedure called the TPK algorithm might have been coded at the time.

    支持称赞 Knuth 的历史叙事功力,希望他写计算史专著

    读 TAOCP 的乐趣之一是文中穿插的小段历史故事。说实话,这些历史部分往往是我唯一能看懂的内容。有时真希望 Knuth 干脆写一本计算史著作——他既是领域领袖又是杰出的历史学家,视角独一无二。当然,他现在最好还是别分心,专心写 TAOCP。

    hardwaregeek查看英文原文

    One of the highlights of reading The Art of Computer Programming (TAOCP) is the small historical lessons sprinkled in the text. Truth be told they're usually the main thing I understand. Sometimes I wish Knuth would just write a history book on computing. He has such a unique perspective as both a leader of the field and a great historian of it. Of course at this point he probably shouldn't have any distractions from TAOCP.

    亲历亲历者回忆合著者 Luis Trabb Pardo 及 Imagen 激光打印机创业史

    嘿,Luis 是我在 Imagen 的老上司!他是 Knuth 的得意门生之一(来自阿根廷)。1980 年左右,Luis 和 Les Earnest 从斯坦福的 TeX 项目分拆创办了 Imagen,我作为第 4 或第 5 号员工很快加入。我们把 Luis 和 Kok Chen 为 TeX 项目做的激光打印机原型产品化,用 Andy Bechtolsheim 的 Sun-1 68K VME 卡作处理器。第一代打印机用佳能 LBP-10 湿式激光引擎,我们与佳能密切合作,为下一代产品准备干式 LBP-CX 引擎——它也是第一代 Apple LaserWriter 的核心。别告诉乔布斯,其实最早一批 LBP-CX 是我们先拿到的,佳能让我们保密,假装苹果优先。当然最后苹果+Adobe 打败了我们:我们押注省内存的 banding 图像处理器,而 Apple/Adobe 直接塞 1MB 内存慢慢渲染整页。永远不要赌内存不会变便宜。

    cpr查看英文原文

    Hey, that's my old boss at Imagen, Luis! He was one of Knuth's fair-haired boys. (Hails from Argentina.) Luis and Les Earnest spun off Imagen as a start-up from the TeX project at Stanford around 1980, and I joined them soon after that as #4 or #5--memory lost in the mists of time. We were productizing the laser printer prototype Luis and Kok Chen built for the TeX project, using Andy Bechtolsteim's Sun-1 68K-based VME card as the processor. (It was fun hanging around with Knuth socially a bit, since he was on our board.) The first printers were LBP-10 "wet process" lasers from Canon, which Canon used to explore the laser market, and Imagen got the first one the US, I believe. We worked very closely with Canon, as they prepared to launch the first dry process laser engine, the LBP-CX, which was the heart of our next generation of products, and also the basis for the first Apple LaserWriter. Don't tell Steve (Jobs), but we got the first LBP-CXs in the US. The Canon folk told us to keep that a secret, as they had to pretend Apple was getting the very first crack at their printers. Of course, Apple + Adobe blew us away in the end. We bet on a memory-conserving banding image processor with display-list processing on the fly while the paper was moving, while Apple/Adobe said, screw it, we're going to put 1MB of RAM in the printer, and take as long as we need to build the page before printing. Guess one should never bet against RAM getting cheaper over time, but that wasn't obvious at all at that point in history. (I think Apple had decided that reducing the cost of the printer wasn't that urgent.)

    补充调侃这篇 1976 年论文早于 TeX,排版并非 Knuth 自家工具

    很少见到 Knuth 的论文不是用 TeX 排版的。

    chj查看英文原文

    It's rare to see a paper by Knuth not in TeX.

    相关资源

    从这篇论文所有 HN 讨论帖的全部评论里整理出来的链接。

    视频与演讲

    历次讨论

    同领域还值得读

    1. Google 的软件工程(2017)

      Software Engineering at Google (2017)

      介绍了 Google 的软件工程实践,包括其单一代码库(monorepo)、几乎全部开发在主干进行而非分支、代码审查、构建系统 Blaze、协议缓冲区等工具与流程,并讨论了频繁重…

      编程语言与软件工程2017 · 1,127 分 · 465 评 · 引用 15入门 · 约 45 分钟编辑精选
    2. Peter Naur:编程作为理论构建 (1985)

      Peter Naur – Programming as Theory Building (1985)

      Peter Naur 1985 年的经典论文《Programming as Theory Building》提出:编程的本质不是写代码或文档,而是在程序员头脑中构建对程序及其运行…

      编程语言与软件工程2016 · 629 分 · 74 评入门 · 约 45 分钟编辑精选
    3. SciPy 1.0:Python 科学计算的基础算法

      SciPy 1.0: fundamental algorithms for scientific computing in Python

      这篇发表于 Nature Methods 的论文介绍了 SciPy 1.0——Python 科学计算生态的基石库,涵盖其核心算法模块(优化、积分、插值、线性代数等)、软件架构与社…

      编程语言与软件工程2020 · 387 分 · 98 评入门 · 约 45 分钟编辑精选
    4. Lisp 的历史(1979)

      History of Lisp (1979)

      这是 Lisp 发明者 John McCarthy 于 1979 年为 HOPL(编程语言史)会议撰写的回顾文章,讲述 Lisp 的起源、设计动机与早期演进,文中也涉及 if 表…

      编程语言与软件工程2018 · 352 分 · 44 评入门 · 约 45 分钟编辑精选
    5. 使用 NumPy 进行数组编程

      Array Programming with NumPy

      这篇 Nature 文章介绍 NumPy 的数组编程模型及其在科学计算中的核心作用:以 ndarray 为中心,通过向量化操作让 Python 高效处理多维数组。

      编程语言与软件工程2020 · 318 分 · 134 评入门 · 约 40 分钟编辑精选

    打赏支持

    打赏二维码

    觉得有用,请作者喝杯咖啡。

    WeChat

    关注向阳乔木

    微信公众号「向阳乔木推荐看」

    微信公众号「向阳乔木推荐看」二维码

    微信扫一扫;在微信里打开本页时,长按二维码识别。