Automata-based programming is a way of writing computer programs by using mathematical representations of machines. Mathematically, an automaton is a machine that operates on discrete data and has one or more states that it can be in at any given time. Automata-based programming allows you to write a program by telling the machine what it should do in each of its possible states. For example, you might tell the machine that when it is in state 'A' it should do one set of instructions, and when it is in 'B' it should do something else. In this way, you can tell the machine what to do without having to write a complicated set of instructions.