Uma gramática é um quádruplo , onde é um alfabeto; é o conjunto de símbolos terminais (); é o conjunto de símbolos não terminais; é o símbolo inicial; e é o conjunto de regras (um subconjunto finito de ). As noções de derivação directa), de derivação, e de linguagem gerada são definidas como se segue:
The FIRST set for a given string or symbol can be computed as follows:
As an example, consider production X -> Y1...Yn
The FIRST set can also be computed for a string Y1...Yn much in the same way as in case 3 above.
The FOLLOW set is computed for non-terminals and indicates the set of terminal symbols that are possible after a given non-terminal. The special symbol $ is used to represent the end of phrase (end of input).
The algorithm should be repeated until the FOLLOW set remains unchanged.