用8万个正则表达式编写国际象棋引擎
2025-01-07
作者Nicholas Carlini在假期里做了一个完全没有意义的项目:用84688个正则表达式编写了一个2层极小极大算法的国际象棋引擎。他设计了一个基于正则表达式的虚拟机,指令集基于分支自由、条件执行、单指令多数据(SIMD)架构。通过符号执行编译器将Python代码转换为一系列正则表达式,实现并行计算。引擎利用SIMD特性同时计算多个棋子的走法,并通过巧妙的正则表达式技巧优化性能。虽然引擎的深度有限,但它展现了正则表达式令人惊叹的计算能力。
开发