Presentation is loading. Please wait.

Presentation is loading. Please wait.

CSCI 2670 Introduction to Theory of Computing September 14, 2005.

Similar presentations


Presentation on theme: "CSCI 2670 Introduction to Theory of Computing September 14, 2005."— Presentation transcript:

1 CSCI 2670 Introduction to Theory of Computing September 14, 2005

2 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

3 Announcement Quiz tomorrow –Regular expressions –Pumping lemma

4 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

5 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?

6 Example S  (S) | SS | () (()())(()) S  SS  (S)(S)  (SS)(())  (()())(()) This sequence of substitutions is called a derivation

7 Parse tree S  (S) | SS | () S SS SS () S )( S ()

8 Example 2 S  Sb | Bb B  aBb | aCb C  ε Derivation for aaabbbbb S  Sb  Bbb  aaBbbbb  aaaεbbbbb  aBbbb  aaaCbbbbb

9 Example 2 parse tree S ε S b B b B ab B ab ba C

10 Example 2 S  Sb | Bb B  aBb | aCb C  ε Question 1: What language does this grammar accept? Answer: {a n b m | m > n > 0} Question 2: Can this CFG be simplified? Answer: yes. Replace B  aCb with B  ab and remove C  ε

11 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.

12 More definitions If u, v, and w are strings of variables and terminals, and A  w is a rule of the grammar, we say uAv yields uwv –Denoted uAv  uwv

13 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}


Download ppt "CSCI 2670 Introduction to Theory of Computing September 14, 2005."

Similar presentations


Ads by Google