Regex Chess: A 2-ply minimax chess engine in 84,688 regular expressions
L'auteur décrit un « processeur » construit entièrement avec des remplacements par expressions régulières qui opèrent sur un état global encodé comme une unique chaîne contenant une pile et des variables. Les opérations fondamentales (push, pop, lookup, assign) et le contrôle conditionnel sont implémentés par des paires (motif, remplacement) qui manipulent la section #stack et les variables, et la sélection conditionnelle est réalisée sans branche en activant ou désactivant des threads par des préfixes %. Grâce au caractère global des substitutions, l'article exploite un parallélisme SIMD en multipliant les états d'exécution (fork, fork_bool) pour générer et évaluer simultanément de nombreux déplacements de pièces, illustré par un exemple détaillé pour les mouvements de pion. Un assembleur de haut niveau est produit par exécution symbolique du code source, ce qui permet d'enregistrer les opérations et les chemins conditionnels puis de les traduire en une longue séquence d'expressions régulières appliquées séquentiellement. Le moteur réalise une recherche de type minimax bornée en générant et filtrant les positions légales, et l'auteur présente plusieurs optimisations (suppression de variables intermédiaires, motifs regex spécialisés) qui ramènent le temps de réponse à quelques secondes et la mémoire à l'ordre de centaines de mégaoctets.