|
|
The hierarchy is motivated by the required techniques to find derivations for a given string out of terminal symbols and the typical application domain:
![]() | Type 0 grammars allow to generate all languages that
can be recognized by a Turing machine.
|
![]() | Type 1 grammars (context-sensitive) can be recognized by
linear-bounded nondeterministic Turing machines.
|
![]() | Type 2 grammars (context-free) can be recognized by
non-deterministic push-down automatons. Most programming
languages can be described by such a grammar.
|
![]() | Type 3 grammars (regular) can be recognized by
finite state automatons. Usually, the tokens of programming
languages (i.e. identifiers, literals, delimiters etc) can
be recognized by regular grammars.
|
See also: http://www.wikipedia.com/wiki/Chomsky+hierarchy
|
| Copyright © 2002 Andreas Borchert, converted to HTML on May 02, 2002 |