开发来源 seriot.ch

curl 曾有九个月是图灵完备的:配置文件能切分变量,又能无限 include

从 curl 8.12 到 8.16,配置文件可以切分变量值,也可以包含其他配置文件,且没有显式的深度上限;两者合起来足以模拟任意两计数器 Minsky 程序。

要点

  • 计数器值 n 用 n 个 x 表示;[0-0] 只留第一个字节,[1-] 去掉第一个字节,加减法就是切片
  • 每个指令状态是一个或多个配置文件,文件名当标签,expand-config 选中下一个文件
  • 配套示例包里的四个文件算出 2 + 3,输出 A=xxxxx B=;curl 8.17.0 加了五层 include 上限,这条归约随之失效
  • 真实二进制里没有无限计数器:单次展开上限 10,000,000 字节,8 MB 栈跑到 922 步就段错误,所以只是理想化下的图灵完备
阅读原文这里是中文要点整理,数字与细节以原文为准。

评论

还没有评论,来写第一条。

更多资讯

全部