Hacker News 中文摘要

RSS订阅

C语言程序员对可读性犯下新罪行 -- C programmers commit fresh crimes against readability

文章摘要

第29届国际混淆C代码大赛(IOCCC)2025年结果揭晓,共23个获奖作品。其中一位参赛者展示了独特技巧:一个有效的用例。比赛从四年停办中恢复后迅速回归,视频形式生动展示了这些令人难以置信的程序。

文章总结

第二十九届国际混淆C代码大赛(IOCCC)近日公布了2025年竞赛结果,共有23个获奖作品。本届大赛亮点之一是出现了具有实际应用价值的作品——Adrian Cable的Subleq计算机模拟器,它基于单指令集计算机架构,仅用366字节的C代码实现,可运行Linux系统并显示彩色图形。该作品被授予"最佳虚拟模拟器"奖。

其他值得关注的作品包括:Nick Craig-Wood的66行Game Boy模拟器(最佳真实模拟器)、Yusuke Endoh的辉光管模拟器(最炫目奖)和自修改代码程序(最坚韧奖)、Jonah Uellenberg的Pong游戏自生成代码(乒乓奖),以及Tomoya Ishida的36行代码生成五分钟环境音乐WAV文件(最舒缓奖)。此外还有ASCII动画版《神秘博士》片头、仅含单个变量的欧拉常数计算器等创意作品。

本届大赛三位选手各获三项大奖,创下纪录。所有获奖作品均可在IOCCC官网查看,建议读者逐一欣赏这些令人惊叹的编程杰作。

评论总结

根据评论内容,总结主要观点如下:

  1. 技术实现讨论(评论1,评分None):作者指出在subleq虚拟机上,若采用Muxleq实现会运行更快,但可能无法赢得IOCCC比赛。关键引用:"On the subleq VM, it would run faster if they implemented Muxleq";"it's just an extra short if clause with two more lines"。

  2. 硬件概念纠正(评论2,评分None):作者纠正了关于Nixie管的错误描述,指出其实际是Numitron(七段显示)。关键引用:"That's a Numitron (although they were 7 segment)"。

  3. 语言特性与混淆竞赛(评论3,评分None):探讨了编程语言如何通过“禁止无效状态”来防止代码混淆,认为C语言因年代久远和底层访问能力而适合此类竞赛,而Go、Rust等语言则不太适合。关键引用:"C does seem to sit at the perfect intersection of language age and low-level access";"Javascript is routinely obfuscated pretty well for human readers"。

  4. 历史联想(评论4,评分None):对subleq单指令集计算机(OISC)的起源提出疑问,联想到阿波罗时代计算机是否受益于此。关键引用:"when were OISC's first conceived?";"Would Apollo and computers of that era have benefitted from this insight?"。

平衡性说明:评论1和4对技术实现持积极态度,评论2纠正了常见误解,评论3则从语言设计角度提出批判性思考。各观点均基于具体技术细节,无显著对立立场。