| CS 331 Spring 2009 > Additional Lecture Notes for Monday, January 26, 2009 |
The following material was covered in class, in addition to the material from the text.
In the late 1950s, linguist Noam Chomsky published a hierarchy of types of languages, defined in terms of the kinds of grammars that could describe them. Chomsky was trying to develop a framework for studying natural languages (e.g., English); however, his hierarchy has been found to be very useful in the theoretical study of computer programming languages.
Below is the hierarchy. In the Grammar column, upper-case letters represent nonterminal symbols, while lower-case letters represent terminal symbols.
| Language Category | Rules Allowed in Grammar (Generator) |
Recognizer | Why We Care | |
|---|---|---|---|---|
| Chomsky’s Number | Name | |||
| Type 3 | Regular |
|
Finite Automaton Automaton starts in one of a finite number of states. It repeatedly reads a character, and, based only on the character read and the current state, chooses a new state. When the last character has been read, if we are in a “good” state, then the string that was read lies in the language. |
|
| Type 2 | Context Free |
|
Nondeterministic Push-Down Automaton Think: Finite Automaton + Stack (roughly) |
|
| Type 1 | Context Sensitive |
|
Don’t worry about it “Linear Bounded Automaton”, if you must know |
|
| Type 0 | Recursively Enumerable |
|
Turing Machine Think: Computer |
|
Notes
| CS 331 Spring 2009: Additional Lecture Notes for Monday, January 26, 2009 / Updated: 26 Jan 2009 / Glenn G. Chappell / ffggc@uaf.edu |
|