A program that can take a regex as input and return a deterministic finite automaton that recognises the same language.