HackerURLs

一次又一次被重新发现的经典。

同一个链接,相隔一年以上,一次又一次被人重新发现、再次冲上 Hacker News 首页。能经受住这种时间检验的,大多是值得一读再读的文章。每篇附中文标题,讨论最热的那些再加上中文导读和高赞评论翻译。

从名人堂开始
  • 4,700+篇经过时间检验的经典

Hall of fame

名人堂

在经典库里看全部精选

上首页次数最多、而且有中文导读的 30 篇。时间轴上每个黑点是一次上首页,空心点是一次没冲上去的投稿。

  1. 正在载入经典…

Archive

经典库

按第一次上首页的年份分布,点柱子筛选。

排序

    About

    这些经典是怎么挑出来的

    1. 01

      合并同一个链接

      读取 Hacker News 自 2006 年以来的全部链接投稿,把 http/https、www、跟踪参数等写法不同的同一篇文章合并成一条。

    2. 02

      只留经得起时间的

      同一链接至少两次拿到 50 分以上(约等于上首页),而且两次相隔一年以上;再由 AI 剔除状态页、产品首页和新闻事件。

    3. 03

      写导读、译评论

      上首页次数最多的 2,000 篇配上中文导读、"为什么经久不衰",并精选翻译 HN 高赞评论。导读由 AI 生成,可能有误。

    算法与计算机科学journal.stuffwithstuff.com

    Pratt 解析器:让表达式解析变简单(2011)

    Pratt Parsers: Expression Parsing Made Easy (2011)

    3次上首页
    13年跨度
    366累计得分
    98条评论

    2011 — 2024,它一次次回到首页

    黑点是上首页(≥ 50 分)的那次投稿,空心点是没冲上去的投稿,点越大分数越高。

    导读

    这是一篇介绍 Pratt 解析器(又称自顶向下运算符优先级解析)的教程,用通俗的方式讲解如何手写表达式解析器。作者通过把“前缀/中缀”解析函数与运算符的绑定力(binding power)结合,展示了这种方法的简洁与灵活。文章配有可运行的示例代码,是这一主题流传最广的入门材料之一。

    为什么经久不衰:它把看似高深的表达式解析讲得直观可操作,代码短小、思路清晰,十多年来一直是手写解析器时最常被推荐的入门读物。

    关键词 解析器Pratt Parser表达式解析编译器

    HN 评论精选

    作者自荐另一篇更详细的自顶向下运算符优先级解析教程。

    呃,我之前也写过一篇:http://eli.thegreenplace.net/2010/01/02/top-down-operator-precedence-parsing/(抱歉打广告,但我觉得我的教程在解释原理方面更全面。)

    eliben查看英文原文

    Uhm, I wrote this a while ago: http://eli.thegreenplace.net/2010/01/02/top-down-operator-precedence-parsing/ [sorry for the plug, but I think my tutorial is more comprehensive in terms of explaining how the thing actually works]

    调侃解析教程总把词法分析一笔带过,正好说中读者心声。

    我草草拼了个能用的词法分析器,然后就假装 token 是从天而降的。这句话完美概括了我读过的所有解析讨论和论文,我爱了。

    scott_s查看英文原文

    I slapped together a crude lexer that works and we’ll just pretend that tokens are raining down from heaven or something. This perfectly describes all parsing discussions and papers I've read. I love it.

    用 IronJS 的实践说明手写 Pratt 解析器能显著提升性能,并给出通用实现。

    我很喜欢 Pratt 解析器(或者说自顶向下运算符优先级解析器)。我最近按照这篇博客的方法,把 IronJS 的词法分析器和解析器从 ANTLR 生成版本改成手写,性能提升相当可观。另外我还有一个几乎能接受任意输入输出的通用版本(F#):https://github.com/fholm/Vaughan

    fholm查看英文原文

    I love Pratt parsers (or Top Down Operator Precedence parsers rather), I recently re-wrote the IronJS lexer and parser by hand (from using one generated by ANTLR) using the techniques described in this blog post and saw some pretty hefty performance increments http://ironjs.wordpress.com/2011/03/19/new-lexer-and-parser-in-ironjs/ Edit, I also have a generalized version that can take pretty much any input and any output (F#) here: https://github.com/fholm/Vaughan

    认可文章质量,认为方法可能直接用于自己的项目。

    一篇讲……编程的文章?这可不是我认识的 HN!好文。我得再琢磨琢磨,不过它可能正好适用于我手上的某个项目。

    cletus查看英文原文

    A post about... Programming? This isn't the HN I know! Good post. I need to ruminate on this some more but it might well apply to something I'm working on.

    历次讨论

    同类还值得读

    1. 位运算技巧集

      Bit Twiddling Hacks

      斯坦福页面上的经典位运算技巧合集,收录了 popcount、前导/尾随零、位反转、交换、舍入等大量技巧,并附有解释和性能讨论。

      算法与计算机科学上首页 8 次 · 2011–2024graphics.stanford.edu编辑精选
    2. 如何不按平均评分排序

      How Not To Sort By Average Rating

      经典文章解释了为什么按平均评分排序不可靠:只有少量评价的条目(比如仅一条五星)会轻易排到最前,而评价数量的差异被忽略。

      算法与计算机科学上首页 7 次 · 2009–2024evanmiller.org编辑精选
    3. 数据结构可视化

      Data Structure Visualizations

      旧金山大学 David Galles 教授制作的数据结构与算法交互式可视化网站,涵盖 B 树、红黑树、排序、图算法等,可逐步操作观察其运行过程。

      算法与计算机科学上首页 6 次 · 2011–2021cs.usfca.edu编辑精选
    4. 1996 年以来的计算机科学最佳论文奖

      Best Paper Awards in Computer Science since 1996

      Jeff Huang 维护的一个汇总页面,收录了自 1996 年以来计算机科学各主要会议的“最佳论文奖”获奖名单,并按年份和会议整理,方便读者一站式浏览历届获奖论文。

      算法与计算机科学上首页 6 次 · 2010–2018jeffhuang.com编辑精选
    5. 算法(Jeff Erickson)

      Algorithms, by Jeff Erickson

      伊利诺伊大学 Jeff Erickson 教授的算法课教材,免费在线开放。

      算法与计算机科学上首页 5 次 · 2018–2022jeffe.cs.illinois.edu编辑精选

    打赏支持

    打赏二维码

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

    WeChat

    关注向阳乔木

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

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

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