Polystate: Máquinas de Estado Finitas Componíveis em Zig
Polystate é uma biblioteca Zig para construir máquinas de estado finitas (FSMs) componíveis por meio de composição de tipos. Ela impõe convenções de programação, registrando o estado da máquina de estado no nível de tipo e alcançando componibilidade por meio da composição de tipos. Isso melhora a correção das estruturas de programas imperativos e incentiva o redesenho do estado do programa a partir da perspectiva de tipos e composição, aumentando assim a componibilidade do código. Polystate gera automaticamente diagramas de estado, permitindo que os usuários entendam intuitivamente o comportamento do programa. Exemplos demonstram a construção de máquinas de estado simples e complexas por meio da composição de tipos, como limitar as tentativas de entrada de PIN em um caixa eletrônico e reutilizar mecânicas de seleção em um jogo raylib.