CSCI 2670 Introduction to Theory of Computing September
CSCI 2670 Introduction to Theory of Computing September 14, 2005
Agenda • Yesterday – Pumping lemma • Today – Introduce context-free grammars – Formally define CFG’s – Begin designing CFG’s • Tomorrow – More on designing CFG’s – Chomsky normal form
Announcement • Quiz tomorrow – Regular expressions – Pumping lemma
Context-free grammars • The shortcoming of finite automata is that each state has very limited meaning – You have no memory of where you’ve been – only knowledge of where you are • Context-free grammars are a more powerful method of describing languages – Example: {0 n 1 n | n 0} is a CFG
Example CFG • Context-free grammars use substitution to maintain knowledge S (S) S SS S () • All possible legal parenthesis pairings can be expressed by consecutive applications of these rules • Is this a regular language?
Example S (S) | SS | () • (()())(()) • S SS (S)(S) (SS)(()) (()())(()) • This sequence of substitutions is called a derivation
Parse tree S (S) | SS | () S ( S S S () () ) ( () )
Example 2 • S Sb | Bb B a. Bb | a. Cb C ε Derivation for aaabbbbb S Sb a. Bbbb Bbb aa. Bbbbb aaa. Cbbbbb aaaεbbbbb
Example 2 parse tree S S B B B C a a a ε b b b
Example 2 S Sb | Bb B a. Bb | a. Cb C ε Question 1: What language does this grammar accept? Answer: {anbm | m > n > 0} Question 2: Can this CFG be simplified? Answer: yes. Replace B a. Cb with B ab and remove C ε
Context-free grammar definition • A context-free grammar is a 4 -tuple (V, , R, S), where 1. V is a finite set called the variables, 2. is a finite set, disjoint from V, called the terminals, 3. R is a finite set of rules, with each rule being a variable and a string of variables and terminals, and 4. S V is the start variable.
More definitions • If u, v, and w are strings of variables and terminals, and A w is a rule of the grammar, we say u. Av yields uwv – Denoted u. Av uwv
More definitions • If a sequence of rules leads from u to v – i. e. , u u 1 u 2 … v, we denote this u * v • (I can’t do the actual notation in powerpoint – the * should be over the double bars) • The language of the grammar is {w * | s * w}
- Slides: 13