This page explains the theory of Regular Languages, DFA, NFA and Subset Construction Method used in NFA to DFA conversion.
A regular language is a language that can be expressed with a regular expression or a deterministic or non-deterministic finite automata or state machine. A language is a set of strings which are made up of characters from a specified alphabet, or set of symbols. Regular languages are a subset of the set of all strings. Regular languages are used in parsing and designing programming languages and are one of the first concepts taught in computability courses.
NFA (Non-Deterministic Finite Automaton) is a type of finite automaton in which, for a given state and input symbol, the machine can move to zero, one, or multiple next states.
A Deterministic Finite Automaton is a machine that reads input symbols one by one and moves from one state to another, and if after reading the whole string it reaches an accepting state, the string is accepted, otherwise rejected.
Subset construction method is used to convert an NFA into a DFA. In this method, a group of NFA states is treated as a single state in DFA. Since NFA can move to multiple states on one input, we combine those states and make one DFA state. By creating all possible combinations of NFA states, we construct the DFA.