Automata-based programming - Wikipedia, the free encyclopedia