Ioccc

IOCCC(国际 C 语言混乱代码大赛),自 1984 年起一年一度庆祝创意性、令人困惑且具有艺术感的 C 语言编程的竞赛。

第29届国际C代码混淆大赛最佳模拟奖:366字节虚拟机运行Linux与DOOM

仅366字节C代码实现的虚拟机,能完整运行Linux和DOOM!作者Adrian Cable在IOCCC 2025获奖,实现了一台单指令SUBLEQ虚拟机:32位CPU、1.5GB内存、800x512图形、键盘驱动、抢占式多任务。更惊人的是,作者为其移植了LLVM后端、软浮点库、Linux内核和C运行时库。这背后是「永恒软件计划」:将整个软件生态压缩为数字胶囊,千年后考古学家仅凭一张餐巾纸上的指令即可复原整个系统。极客必看,信息密度极高,有开源工具链和完整技术细节。
评论点赞收藏69 天前

第29届国际C语言混乱代码大赛(IOCCC)2025年度获奖作品公布

IOCCC 2025(第29届)获奖名单出炉,亮点包括GameBoy模拟器、海洋音效生成器、Quine乒乓对战、Subleq计算机、黑洞打孔卡Fortran等22个获奖作品。本届吸引到台湾首位获奖者,三位作者(Yusuke Endoh、Nick Craig-Wood、Don Yang)同时包揽三项大奖上演"帽子戏法"。文章还透露了评审内幕:投稿量与质量均处历史高位,部分未获奖作品经改进后在下届成功入选。组委会计划2026年底启动第30届。对于程序员和C语言爱好者来说,这是了解代码极限创意和混乱编程文化的年度必看榜单。
评论点赞收藏70 天前

Diels-grabsch2:能输出自身SHA-512哈希的C程序(2019年IOCCC获奖作品)

IOCCC(国际C语言混乱代码大赛)2019年获奖作品深度解析:一个能输出自身源码SHA-512哈希值的C程序。作者详尽拆解了背后的两大核心技巧——一是用quine机制将前半段源码的SHA-512中间状态预计算后编码进字符串,运行时仅补最后一个数据块;二是不硬编码80个轮常量(640字节太显眼),而是在运行时通过二分法计算前80个质数的立方根小数部分动态生成。最精彩的是为了兼容C99标准,只能将67位精度拆成三个24位整数做乘法模拟,经历了大量试错才调通。全文有个人踩坑实录、有未解决的开放问题、有自嘲式幽默(“别信我,你是对的”“没有加密算法被破坏”),不是简单的代码展示,而是完整的技术方法和思考过程。适合对C底层、密码学或代码混淆有好奇心的深度读者。
评论点赞收藏156 天前

IOCCC 获奖作品:用混淆 C 语言实现的 Wordle 困难模式求解器

IOCCC 2024 获奖作品:一个用混淆 C 语言写成的 Wordle 困难模式求解器,平均 3.748 步猜中答案,对 2315 个目标词成功率达 99.8%。作者 Dave Burton 不仅给出了完整编译用法和真实对局示例,还记录了自己一年多使用中遇到的字典缺失词(guano、snafu、balsa 等)、重复字母处理技巧、以及 4 个始终需要 7 步的困难词等深度细节。文章末尾抛出多个待解问题(可调参数是什么?哪个 bug 反而提升了结果?),邀请读者继续探索,是有真实经验、有技术深度、有互动空间的技术向内容。
评论点赞收藏163 天前

SORTA:一种类Forth的栈式编程语言(1991)

这是IOCCC(国际模糊C代码竞赛)1991年"Best of Show"获奖作品——Daniel J. Bernstein(著名密码学家djb)实现的SORTA语言解释器完整文档。SORTA是一种融合C、Forth和Ada特性的栈式脚本语言,支持整数栈和字符串栈双栈操作、强类型检查、垃圾回收、任意长度字符串处理、无限深度尾递归,以及fork/exec/pipe等Unix系统调用。作者本想凭"最有用程序"获奖,评委不为所动,反手给了最高荣誉。文档包含完整的语言规范、操作符说明和大量示例脚本(计算器、ROT13、排序等),硬核编程语言爱好者不容错过的历史存档。
评论点赞收藏279 天前

IOCCC 40周年:第28届获奖作品公布,23个极客创意C代码项目揭晓

IOCCC(国际混乱C代码大赛)迎来40周年,第28届获奖名单正式出炉。23件创意作品覆盖极广:Wordle困难模式解题器、LLM推理引擎、Intel 4004芯片模拟器、盆栽生成器、3D龙卷风模拟、JavaScript解释器、Infocom故事解释器、纳瓦霍密码翻译器、JPEG伪影去除、OpenRISC CPU与Linux启动、Doom虚拟机、相位月相计算、慢速光线追踪器、刚体物理模拟、加密解密器、音乐分层生成器、自然语言数值计算器等。每件作品源码已在GitHub和官网开放下载,对C语言编程与代码艺术感兴趣的读者不容错过。
评论点赞收藏376 天前

第28届国际C语言混乱代码大赛(IOCCC)获奖名单公布

时隔四年,第28届IOCCC(国际C语言混乱代码大赛)终于揭晓获奖作品,且以创纪录的23个获奖作品远超此前最高15个的记录。本届赛事的评审在基础设施大幅重构后仅用33天完成——过去4年间社区通过6000多次提交重构了官网、开发了提交工具链。值得关注的获奖作品包括:仅135字节的单行混淆代码(stedolan)、号称"全球最小LLM推理引擎"可运行70亿参数模型的cable1、完整模拟Intel 4004芯片电路的carlini、内置C64模拟器的虚拟机组macke、以及Z-machine虚拟机mills等。官方特别指出,代码大小限制10年来首次上调,但23个获奖作品中仅3个接近上限,未来至少10年不会再次调整。下一届IOCCC29预计2025年12月开放提交。
评论点赞收藏378 天前

国际混淆C代码大赛

国际混淆C代码大赛(IOCCC)官网首页,是了解这个传奇编程竞赛的第一入口。其核心看点在于比赛的六条独特宗旨:以最晦涩的方式写C语言代码、用反讽手法展示编程风格的重要性、通过反面教材强调清晰代码的价值、用奇葩代码测试C编译器极限、揭示C语言的细微之处、以及纯粹享受C编程的乐趣。页面还提供了浏览历届获奖作品、查看参赛者名单、关注官方Mastodon和加入Discord社区的入口。对于C语言爱好者和对代码艺术感兴趣的人来说,这是一个经典文化地标的导航页,但页面本身内容较薄,以链接跳转为主,缺乏深度讨论或个人观点。
评论点赞收藏533 天前

国际混淆C代码大赛即将重启

IOCCC(国际混淆C代码大赛)官方页面显示赛事即将重启。页面介绍了该竞赛的核心目标:在规则范围内写出最晦涩难懂的C代码,以反讽方式强调编码风格的重要性,以及通过极端案例挖掘C编译器的微妙行为。读者可查看赛事状态页确认是否开放投稿,并关注Mastodon账号和加入Discord社群。页面同时列出了历年获奖作品、获奖者名单以及参赛规则入口。适合对C语言底层特性、代码混淆艺术和极客编程文化感兴趣的读者。
评论点赞收藏591 天前

IOCCC 第28届(40周年纪念赛)赛事进展与第29届启动公告

国际混乱C代码大赛(IOCCC)第28届40周年纪念赛已公布全部获奖作品,包括Wordle困难模式求解器、LLM推理引擎、Intel 4004仿真器、3D龙卷风模拟等23个极具创意与炫技性的获奖项目,源码已开放下载。同时第29届也已开放投稿,页面按时间线记录了从规则发布、工具链更新、投稿截止到评审和揭晓的全过程。纯官方机构公告式更新日志,信息翔实但缺少个人观点和叙事,适合对C语言代码混淆艺术感兴趣的开发者作为索引参考。
评论点赞收藏594 天前

只用printf实现井字棋游戏

IOCCC获奖作品深度解析:作者Nicholas Carlini仅用C语言的一个printf语句(外加scanf读输入)就实现了一个完整的双人井字棋游戏,证明printf格式化字符串具有图灵完备性。核心思路是将内存视为二进制数组(00 00表示0, xx 00表示1),利用%hhn写入已输出字节数、%N$s定位第N个参数等特性,用字符串长度模拟与或非逻辑运算。文章详细拆解了"printf导向编程"的方法论:如何用%1$s%2$s%3$hhn实现OR、如何用%255d配合strlen实现NOT,以及如何将18位棋盘状态(每方9位)动态渲染为X/O/空格并判定胜负。约100KB的格式化字符串中编码了整个游戏的状态机、棋盘清屏、胜负/平局提示和非法移动检测,甚至动态构造scanf格式串使得首轮不阻塞。全文技术密度极高、幽默感十足("The things you can get away with sometimes"),是C语言底层与代码混淆爱好者的硬核盛宴。
评论点赞收藏870 天前

登录芦苇

登录后关注作者、收藏内容和参与讨论。