Chomsky Grammars
Type 0 (free) grammars:
- Productions of the form u v, where:
- u, v are arbitrary string in V.
- u is non-null.
Type 1 (context-sensitive) grammars:
- Productions of the form uXw uvw, where:
- X N
- u, v, w are arbitrary strings in V.
- v is non-null.
Type 2 (context-free) grammars:
- Productions of the form X v, where:
- X N
- v is an arbitrary string in V
Type 3 (regular or free) grammars:
- Productions of the form X a or X aY, where:
- X, Y N
- a T
All Type 2 grammars can be parsed, but there are some subsets, commonly used for programming language definition - which can be parsed particularly efficiently.
Although Type 3 grammars are not powerful enough for complete languages, they are widely used to define the lexical elements of a programming language. They can be parsed very efficiently, in particular by a finite state machine.