Thompson's construction algorithm converts regular expressions to nondeterministic finite automata (NFAs) by recursively building the NFA for each subexpression. The subset construction algorithm converts NFAs to deterministic finite automata (DFAs) by constructing states that correspond to sets of NFA states, and transitions correspond to the reachable states on each input symbol. Converting regular expressions to NFAs to DFAs shows that regular expressions, NFAs, and DFAs all have equivalent expressive power for describing regular languages.