返回

文章详情

C程序员再次对可读性犯下新罪

Hacker News2026年7月6日 11:44

第29届国际混淆C代码竞赛(简称IOCCC)再次回来了,带来了2025年的比赛结果。今年,一位参赛者有一个独特的新招:一个有效的用例。当我们报道去年的活动时,它刚刚结束了四年的停滞,因此我们很高兴如此迅速地看到它回归。在我们撰写本文时,评审已于约三周前完成,不过虽然YouTube上有录音,时长接近三个小时,但编辑成每个获奖者的单独剪辑花了些时间,这也是为什么我们现在才进行报道。对于许多程序,您确实必须看到它们的功能才能相信,虽然这通常不是我们首选的格式,但视频剪辑在这方面非常出色。广告今年不乏23个获奖作品,包括三重帽三重帽的帽子:三位参赛者,Yusuke Endoh、Nick Craig-Wood和Don Yang,各有三项获奖作品。我们只能挑选其中一些个人亮点,但我们强烈推荐阅读所有获奖作品——它们绝对值得您花时间去看。广告IOCCC的一个元素是评委Landon Curt Noll和Leonid A. Broukhis每次为每个获奖作品发明新类别。我们采用他们的标题,所以如果小标题最初没有太多意义,阅读相关的IOCCC页面可能会解释一切……但我们不指望它。IOCCC29 - 2025/cable - 最佳虚构仿真器 我们不能声称研究了每个IOCCC的每个结果。当第一次举办IOCCC时(1984年),这只秃鹫仍在上学,学习BASIC。然而,今年,Adrian Cable的Subleq计算机最吸引我们。原因在于我们早已关注了它及其功能——或者至少是一个密切相关的项目。与IOCCC不同的是,它在软件保存方面具有实际应用。永恒软件倡议(ESI)的想法是,通过实施一种专门设计为易于仿真的计算机架构,帮助保存其原始硬件平台不再存在后的软件。有一个样本实现可在GitHub上找到。CPU架构并不新颖;它是一种称为Subleq的单指令集计算机(OISC)。OISC是RISC的逻辑推演:将指令集缩减到仅剩一条指令是无法进一步减少的。在这种情况下,那条指令就是Subleq(如果小于或等于零则减去并跳转)。以下是来自2020年的解释,那个时候并不是新鲜事——这是来自2011年的FPGA硬件[PDF]。ESI已经在软件中实现了Subleq,构建了一个使用LLVM为其设计的C编译器,并将Linux移植到了这上面,完备了C和C++运行时库。在该Linux上运行您的仿真器,您可以从这个微小的基础启动任何硬件架构的可运行版本。我们确实是说微小。这是架构的IOCCC获奖实现:广告 #include<SDL3/SDL.h> #define o s[1&s[t=e++]?s[t]/4:t]/4,t b,y,t,e,s[3<<27],V[32],*w,**g;main(_){for(g =SDL_GetWindowSurface(w=SDL_CreateWindow(0, 800,512,!read(b,s,'frog')));_=o=y=o=o;~_?~y ?e=1>(s[y]-=_[s])?t:*s&&++b>8e5?s[memcpy(3[g],6[s]+s,25<<16),b=SDL_UpdateWindowSurface(w)]=4*e,*s/4:e:e:SDL_PollEvent(V)?y[s]=6[V]*(1537-2**V):0)_^64||timespec_get(s+_,1);} 这就是整个代码。它长366字节。是的,它确实依赖SDL库来显示图形,但即便如此,我们希望您会同意这相当惊人。演示视频显示它以相当合理的速度生成全彩的曼德布罗特集合,然后玩一个乒乓游戏,最后展示Subleq运行Linux和几个应用程序。当您观看时,请记住,您可以在明信片上手写源代码,还有充足的空间留给地址和邮票。代码共有九行。稍微更易读的版本仍然只有91行。Nick Craig-Wood的三重帽除了最佳虚构仿真器外,还有一个获奖的最佳真实仿真器。Nick Craig-Wood提供了一个仅用66行C编写的原始任天堂游戏机的工作仿真器,他还按比赛格式进行了排版,使其看起来像控制台。他的另一项获奖作品是最佳分数仿真器:一个难以置信的微小组合,通过约翰·康威的FRACTRAN语言进行的Commodore 64仿真。广告他还因最佳Unicode使用而获奖,实现了Forth的一个版本,而在C代码中包含一个生成旋转曼德布罗特缩放的Forth程序。2025/endoh1 - 最有可能令人眼花缭乱 Yusuke Endoh的三项获奖作品中第一项是一款Nixie管模拟器。当The Reg FOSS桌面还年轻时,这正是电子计算器(和一些加油泵)显示数字的方式。Nixie管是一种小型电气管,里面有各个数字形状的灯丝堆叠在一起,显示所需数字的方式是使该灯丝发光。您仍然可以购买这些Nixie管。

赞助内容

NordVPN Next-gen Antivirus

本站免费、广告极少。如果觉得有帮助,可以请我们喝杯咖啡 —— 任何金额都对持续运营有实际帮助。

请我喝杯咖啡