正文内容 评论(0

96MB文本模拟CPU!开发者用正则表达式跑通Doom:一帧需要180秒
2026-07-28 18:38:42  出处:快科技 作者:黑白 编辑:黑白     评论(0)点击可以复制本篇文章的标题和链接复制对文章内容进行纠错纠错

快科技7月28日消息,近日开发者Artem Lytkin用正则表达式成功运行了1992年的Doom游戏,就是速度很慢,每帧需要约180秒,每秒执行约8万次文本替换,每帧需要近1400万次替换。

在各种奇怪设备上跑Doom早已是编程界的经典挑战,从烤面包机到充电器甚至验孕棒都跑过,但用正则表达式来跑,属于软件层面的极限挑战。

正则表达式是程序中用于查找和替换文本的工具语言,包含条件判断、字符跳转和替换规则,技术上满足编程语言的所有要求。

Lytkin利用这些能力,创建了一个96MB的纯文本字符串,其中包含虚拟CPU的寄存器、内存、视频输出帧缓冲、游戏WAD数据以及I/O等所有组件。

96MB文本模拟CPU!开发者用正则表达式跑通Doom:一帧需要180秒

启动后,正则表达式开始对字符串进行文本匹配和字符替换,模拟处理器寄存器中的数值变化,再访问和写入“内存”,如此循环。

速度可想而知地慢,Lytkin表示生成一帧画面大约需要180秒,每帧需要近1400万次替换,但它确实能跑,而且Lytkin声称输出与真正的Doom一致。

96MB文本模拟CPU!开发者用正则表达式跑通Doom:一帧需要180秒

玩家甚至可以用键盘控制游戏,只不过按一次键要等三分钟才看到画面变化,Lytkin开玩笑称跟射击游戏完全不沾边。

内存访问的实现方式也值得一提,Lytkin用正则表达式的字符跳转指令构建了一棵二叉树,从分支跳到分支,避免每次都从头扫描96MB文本查找标记。

96MB文本模拟CPU!开发者用正则表达式跑通Doom:一帧需要180秒

目前doom-regex项目已开源,官网提供可视化演示,可以看到正则机器以文本和图形两种方式运行,画面相当催眠。

96MB文本模拟CPU!开发者用正则表达式跑通Doom:一帧需要180秒

【本文结束】如需转载请务必注明出处:快科技

责任编辑:黑白

文章内容举报

  • 支持打赏
  • 支持0

  • 反对

  • 打赏

文章价值打分

当前文章打分0 分,共有0人打分
  • 分享好友:
  • |
本文收录在
#Doom#文本#CPU

  • 热门文章
  • 换一波

  • 好物推荐
  • 换一波

  • 关注我们

  • 微博

    微博:快科技官方

    快科技官方微博
  • 今日头条

    今日头条:快科技

    带来硬件软件、手机数码最快资讯!
  • 抖音

    抖音:kkjcn

    科技快讯、手机开箱、产品体验、应用推荐...