What we have done so far

Similar documents
Computational Models - Lecture 3

Computational Models: Class 3

Computational Models - Lecture 4

Computational Models - Lecture 3 1

Computational Models - Lecture 3 1

Computational Models - Lecture 4 1

Computational Models - Lecture 4 1

Theory of Computation (II) Yijia Chen Fudan University

Computational Models Lecture 2 1

Computational Models Lecture 2 1

Lecture 4: More on Regexps, Non-Regular Languages

The View Over The Horizon

FORMAL LANGUAGES, AUTOMATA AND COMPUTABILITY

September 11, Second Part of Regular Expressions Equivalence with Finite Aut

Computational Models - Lecture 5 1

Critical CS Questions

CS 154. Finite Automata vs Regular Expressions, Non-Regular Languages

CISC 4090: Theory of Computation Chapter 1 Regular Languages. Section 1.1: Finite Automata. What is a computer? Finite automata

Computational Models - Lecture 1 1

3515ICT: Theory of Computation. Regular languages

FORMAL LANGUAGES, AUTOMATA AND COMPUTABILITY

COMP4141 Theory of Computation

CISC4090: Theory of Computation

Finite Automata and Regular languages

THEORY OF COMPUTATION (AUBER) EXAM CRIB SHEET

CS 154, Lecture 3: DFA NFA, Regular Expressions

Computational Models - Lecture 5 1

Non-Deterministic Finite Automata

CS 530: Theory of Computation Based on Sipser (second edition): Notes on regular languages(version 1.1)

Computational Models Lecture 5

COMP-330 Theory of Computation. Fall Prof. Claude Crépeau. Lec. 9 : Myhill-Nerode Theorem and applications

Sri vidya college of engineering and technology

UNIT-III REGULAR LANGUAGES

acs-04: Regular Languages Regular Languages Andreas Karwath & Malte Helmert Informatik Theorie II (A) WS2009/10

Computer Sciences Department

Computational Theory

Examples of Regular Expressions. Finite Automata vs. Regular Expressions. Example of Using flex. Application

More on Finite Automata and Regular Languages. (NTU EE) Regular Languages Fall / 41

COMP-330 Theory of Computation. Fall Prof. Claude Crépeau. Lec. 5 : DFA minimization

Languages, regular languages, finite automata

Before we show how languages can be proven not regular, first, how would we show a language is regular?

Intro to Theory of Computation

Computational Models: Class 1

Outline. CS21 Decidability and Tractability. Regular expressions and FA. Regular expressions and FA. Regular expressions and FA

Theory of Computation

TDDD65 Introduction to the Theory of Computation

CS 455/555: Finite automata

Closure Properties of Regular Languages. Union, Intersection, Difference, Concatenation, Kleene Closure, Reversal, Homomorphism, Inverse Homomorphism

Theory of Languages and Automata

We define the multi-step transition function T : S Σ S as follows. 1. For any s S, T (s,λ) = s. 2. For any s S, x Σ and a Σ,

Theory of Computation p.1/?? Theory of Computation p.2/?? Unknown: Implicitly a Boolean variable: true if a word is

HKN CS/ECE 374 Midterm 1 Review. Nathan Bleier and Mahir Morshed

CS 154. Finite Automata, Nondeterminism, Regular Expressions

FORMAL LANGUAGES, AUTOMATA AND COMPUTABILITY

Name: Student ID: Instructions:

Incorrect reasoning about RL. Equivalence of NFA, DFA. Epsilon Closure. Proving equivalence. One direction is easy:

Automata Theory. Lecture on Discussion Course of CS120. Runzhe SJTU ACM CLASS

PS2 - Comments. University of Virginia - cs3102: Theory of Computation Spring 2010

Harvard CS 121 and CSCI E-207 Lecture 6: Regular Languages and Countability

1 More finite deterministic automata

COMP-330 Theory of Computation. Fall Prof. Claude Crépeau. Lec. 10 : Context-Free Grammars

Finite Automata and Regular Languages

FORMAL LANGUAGES, AUTOMATA AND COMPUTATION

CSci 311, Models of Computation Chapter 4 Properties of Regular Languages

CSE 105 THEORY OF COMPUTATION

Automata and Formal Languages - CM0081 Non-Deterministic Finite Automata

Computational Models: Class 5

CS 154, Lecture 4: Limitations on DFAs (I), Pumping Lemma, Minimizing DFAs

Introduction to the Theory of Computation. Automata 1VO + 1PS. Lecturer: Dr. Ana Sokolova.

DM17. Beregnelighed. Jacob Aae Mikkelsen

Lecture 17: Language Recognition

Time Magazine (1984)

Theory of Computation Lecture 1. Dr. Nahla Belal

Clarifications from last time. This Lecture. Last Lecture. CMSC 330: Organization of Programming Languages. Finite Automata.

Introduction to the Theory of Computation. Automata 1VO + 1PS. Lecturer: Dr. Ana Sokolova.

Finite Automata Theory and Formal Languages TMV027/DIT321 LP4 2018

10. The GNFA method is used to show that

Chapter 6. Properties of Regular Languages

Notes on State Minimization

(Refer Slide Time: 0:21)

Context Free Languages. Automata Theory and Formal Grammars: Lecture 6. Languages That Are Not Regular. Non-Regular Languages

Harvard CS 121 and CSCI E-207 Lecture 10: CFLs: PDAs, Closure Properties, and Non-CFLs

Formal Languages, Automata and Models of Computation

Recap DFA,NFA, DTM. Slides by Prof. Debasis Mitra, FIT.

CS 301. Lecture 18 Decidable languages. Stephen Checkoway. April 2, 2018

CSE 105 THEORY OF COMPUTATION

Computational Models #1

Outline. CS21 Decidability and Tractability. Machine view of FA. Machine view of FA. Machine view of FA. Machine view of FA.

CS154. Non-Regular Languages, Minimizing DFAs

More on Regular Languages and Non-Regular Languages

Introduction to Theory of Computing

Automata & languages. A primer on the Theory of Computation. Laurent Vanbever. ETH Zürich (D-ITET) October,

Part 3 out of 5. Automata & languages. A primer on the Theory of Computation. Last week, we learned about closure and equivalence of regular languages

Nondeterministic Finite Automata

Uses of finite automata

Automata: a short introduction

Regular Expressions and Language Properties

Lecture 2: Regular Expression

cse303 ELEMENTS OF THE THEORY OF COMPUTATION Professor Anita Wasilewska

V Honors Theory of Computation

Transcription:

What we have done so far DFAs and regular languages NFAs and their equivalence to DFAs Regular expressions. Regular expressions capture exactly regular languages: Construct a NFA from a regular expression. Left to do: Construct a regular expression from an NFA Based on slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown University. p. 1

Computational Models - Lecture 3 Constructing a regular expression from an NFA What can t DFAs do? Non Regular Languages: Two Approaches 1. Pumping Lemma 2. Myhill-Nerode Theorem Algorithmic questions for NFAs Context Free Grammars (time permitting) Sipser s book, 1.4, 2.1, 2.2 Hopcroft and Ullman, 3.4 Based on slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown University. p. 2

Regular Expression from an NFA ( =) We now define generalized non-deterministic finite automata (GNFA). An NFA: Each transition labeled with a symbol or ε, reads zero or one symbols, takes matching transition, if any. A GNFA: Each transition labeled with a regular expression, reads zero or more symbols, takes transition whose regular expression matches string, if any. GNFAs are natural generalization of NFAs. Based on slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown University. p. 3

A Special Form of GNFA Start state has outgoing arrows to every other state, but no incoming arrows. Unique accept state has incoming arrows from every other state, but no outgoing arrows. Except for start and accept states, an arrow goes from every state to every other state, including itself. Easy to transform any GNFA into special form. Really? How?... Based on slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown University. p. 4

Converting DFA to Regular Expression ( =) Strategy sequence of equivalent transformations given a k-state DFA transform into (k + 2)-state GNFA while GNFA has more than 2 states, transform it into equivalent GNFA with one fewer state eventually reach 2-state GNFA (states are just start and accept). label on single transition is the desired regular expression. Based on slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown University. p. 5

Converting Strategy ( =) 3-state DFA 5-state GNFA 4-state GNFA 3-state GNFA 2-state GNFA regular expression Based on slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown University. p. 6

Removing One State We remove one state q r, and then repair the machine by altering regular expression of other transitions. R 4 q i q j R 1 R 3 q r R 2 q i R 1 R* 2 R 3 U R 4 q j Based on slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown University. p. 7

Formal Treatment GNFA Definition q s is start state. q a is accept state. R is collection of regular expressions over Σ. The transition function is δ : (Q {q a }) (Q {q s }) R If δ(q i,q j ) = R, then arrow from q i to q j has label R. Arrows connect every state to every other state except: no arrow from q a no arrow to q s Based on slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown University. p. 8

Formal Definition A generalized deterministic finite automaton (GNFA) is (Q, Σ,δ,q s,q a ), where Q is a finite set of states, Σ is the alphabet, δ : (Q {q a }) (Q {q s }) R is the transition function. q s Q is the start state, and q a Q is the unique accept state. Based on slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown University. p. 9

A Formal Model of GNFA Computation A GNFA accepts a string w Σ if there exists a parsing of w, w = w 1 w 2 w k, where each w i Σ, and there exists a sequence of states q 0,...,q k such that q 0 = q s, the start state, q k = q a, the accept state, and for each i, w i L(R i ), where R i = δ(q i 1,q i ). (namely w i is an element of the language described by the regular expression R i.) Based on slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown University. p. 10

The CONVERT Algorithm Given GNFA G, convert it to equivalent GNFA G. let k be the number of states of G. If k = 2, return the regular expression labeling the only arrow. If k > 2, select any q r distinct from q s and q a. Let Q = Q {q r }. For any q i Q {q a } and q j Q {q s }, let R 1 = δ(q i,q r ), R 2 = δ(q r,q r ), R 3 = δ(q r,q j ), and R 4 = δ(q i,q j ). Define δ (q i,q j ) = (R 1 )(R 2 ) (R 3 ) (R 4 ). Denote the resulting k 1 states GNFA by G. Based on slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown University. p. 11

The CONVERT Procedure We define the recursive procedure CONVERT( ): Given GNFA G. Let k be the number of states of G. If k = 2, return the regular expression labeling the only arrow of G. If k > 2, let G be the k 1 states GNFA produced by the algorithm. Return CONVERT(G ). Based on slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown University. p. 12

Correctness Proof of Construction Theorem: G and CONVERT(G) accept the same language. Proof: By induction on number of states of G Basis: When there are only 2 states, there is a single label, which characterizes the strings accepted by G. Induction Step: Assume claim for k 1 states, prove for k. Let G be the k 1 states GNFA produced from G by the algorithm. Based on slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown University. p. 13

G and G accept the same language By the induction hypothesis, G and CONVERT(G ) accept the same language. On input G, the procedure returns CONVERT(G ). So to complete the proof, it suffices to show that G and G accept the same language. Three steps: 1. If G accepts the string w, then so does G. 2. If G accepts the string w, then so does G. 3. Therefore G and G are equivalent. Based on slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown University. p. 14

Step One Claim: If G accepts w, then so does G : If G accepts w, then there exists a path of states q s,q 1,q 2,...,q a traversed by G on w, leading to the accept state q a. If q r does not appear on path, then G clearly accepts w (recall that each new regular expression on each edge of G contains the old regular expression in the union part ). If q r does appear, consider the regular expression corresponding to...q i,q r,...,q r,q j.... The new regular expression (R i,r )(R r,r ) (R r,j ) linking q i and q j encompasses any such string. In both cases, the claim holds. Based on slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown University. p. 15

Steps Two and Three Claim: If G accepts w, then so does G. Proof: Each transition from q i to q j in G corresponds to a transition in G, either directly or through q r. Thus if G accepts w, then so does G. This completes the proof of the claim that L(G) = L(G ). Combined with the induction hypothesis, this shows that G and the regular expression CONVERT(G) accept the same language. This, in turn, proves our remarkable claim: A language, L, is described by a regular expression, R, if and only if L is regular. Based on slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown University. p. 16

What We Just Completed Thm.: A language, L, is described by a regular expression, R, if and only if L is regular. = construct an NFA accepting R. = Given a regular language, L, construct an equivalent regular expression Based on slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown University. p. 17

Negative Results We have made quite some progress understanding what finite automata can do. But what can t they do? Is there a DFA over {0, 1} that accepts B = {0 n 1 n n 0} C = {w w has an equal number of 0 s and 1 s} D = {w w has an equal number of occurrences of 01 and 10 substrings} Consider B: DFA must remember how many 0 s it has seen impossible with finite state. The others are exactly the same. Based on slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown University. p. 18

Negative Results Is there a DFA over {0, 1} that accepts B = {0 n 1 n n 0} C = {w w has an equal number of 0 s and 1 s} D = {w w is binary and has an equal number of occurrences of 01 and 10 substrings} Consider B: DFA must remember how many 0 s it has seen impossible with finite state. The others are exactly the same... Question: This is sound intuition. But is this a proof? Answer: No. D is regular!??? (See problem 7 in hw1...) Based on slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown University. p. 19

Pumping Lemma We will show that all regular languages have a special property. Suppose L is regular. If a string in L is longer than a certain critical length l (the pumping length), then it can be pumped to a longer string by repeating an internal substring any number of times. The longer string must be in L too. Based on slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown University. p. 20

Pumping Lemma Theorem: If L is a regular language, then there is an l > 0 (the pumping length), where if s is any string in L of length s l, then s may be divided into three pieces s = xyz such that for every i 0, xy i z L, y > 0, and xy l. Remarks: Without the second condition, the theorem would be trivial. The third condition is technical and sometimes useful. Based on slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown University. p. 21

Pumping Lemma Proof Let M = (Q, Σ,δ,q 1,F) be a DFA that accepts L. Let l = Q, the number of states of M. If s L has length at least l, consider the sequence of states M goes through as it reads s: s 1 s 2 s 3 s 4 s 5 s 6... s n q 1 q 20 q 9 q 17 q 12 q 13 q 9 q 2 q 5 F Since the sequence of states is of length s + 1 > l, and there are only l different states in Q, at least one state is repeated (by the pigeonhole principle). Based on slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown University. p. 22

Pumping Lemma Proof (cont.) Write down s = xyz q 9 z q 1 x y q 5 By inspection, M accepts xy k z for every k 0. y > 0 because the state (q 9 in figure) is repeated (this is a DFA, no ǫ-transitions...). To ensure that xy l, pick first state repetition, which must occure no later than l + 1 states in sequence. Based on slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown University. p. 23

An Application Theorem: The language B = {0 n 1 n n > 0} is not regular. Proof: By contradiction. Suppose B is regular, accepted by DFA M. Let l be the pumping length. Consider the string s = 0 l 1 l. By pumping lemma s = xyz, where xy k z B for every k. If y is all 0, then xy k z has too many 0 s. If y is all 1, then xy k z has too many 1 s. If y is mixed, then xy k z is not of right form. Based on slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown University. p. 24

Another Application - first attempt Theorem: The language C = {w {0, 1} w has an equal number of 0 s and 1 s} is not regular. Proof: By contradiction. Suppose C is regular, accepted by DFA M. Let l be the pumping length. The string to be pumped needs to be chosen carefully! Let s try the string s = (01) l. By pumping lemma s = xyz, where xy k z C for every k. But unfortunately we cannot reach a contradiction, as the chosen string can be pumped as follows: x = ǫ, y = 01, z = (01) l 1 Then indeed xy i z L(M) for every i 0... Based on slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown University. p. 25

Another Application - second attempt Theorem: The language C = {w {0, 1} w has an equal number of 0 s and 1 s} is not regular. Proof: By contradiction. Suppose C is regular, accepted by DFA M. Let l be the pumping length. Consider the string s = 0 l 1 l. By pumping lemma s = xyz, where xy k z C for every k. If y is all 0, then xy k z has too many 0 s. If y is all 1, then xy k z has too many 1 s. If y is mixed, then since xy l, y must be all 0 s, contradiction. Based on slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown University. p. 26

Yet Another Application Theorem: The language L 3 {1}, which contains all strings whose length is a perfect square, is not regular. Proof: L 3 = {1 n2 n 0} Assume for contradiction that L 3 is regular. Let l be the pumping length. Take the string s = 1 l2. By the pumping lemma, s = xyz, where for any i 0, xy i z L 3. Note the growing gap between successive members of the sequence of perfect squares: 0, 1, 4, 9, 16, 25, 36, 49,..., Based on slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown University. p. 27

Yet Another Application - cont. We notice: large members of the sequence cannot be near each other! Now consider the strings xy i z and xy i+1 z. Their length differs only in the length of y. If we choose a large enough i, these two strings cannot be both in L 3, as they are too close! If m = n 2, then the difference between it and the next perfect square is: (n + 1) 2 n 2 = n 2 + 2n + 1 n 2 = 2n + 1 = 2 m + 1 By the pumping lemma, both strings xy i z and xy i+1 z are perfect squares. But if we take xy i z = m, it means that they cannot be both perfect squares if y < 2 xy i z +1. Based on slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown University. p. 28

Yet Another Application - cont. We can now calculate the value for i that leads to a contradiction: Recall that y s = l 2 Take i = l 4, then: y l 2 = l 4 < 2 l 4 + 1 2 xy i z + 1 Thus xy l4 z and xy l4 +1 z cannot be both perfect squares - a contradiction! Based on slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown University. p. 29

And now: an alternative technique for showing a language is not regular. Based on slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown University. p. 30

The Equivalence Relation L Let L Σ be a language. Define an equivalence relation L on pairs of strings: Let x,y Σ. We say that x L y if for every string z Σ, xz L if and only if yz L. It is easy to see that L is indeed an equivalence relation (reflexive, symmetric, transitive) on Σ. In addition, if x L y then for every string z Σ, xz L yz as well (this is called right invariance). Based on slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown University. p. 31

The Equivalence Relation L Like every equivalence relation, L partitions Σ to (disjoint) equivalence classes. For every string x, let [x] Σ denote its equivalence class w.r.t. L (if x L y then [x] = [y] equality of sets). Question is, how many equivalence classes does L induce? In particular, is the number of equivalence classes of L finite or infinite? Well, it could be either finite or infinite. This depends on the language L. Based on slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown University. p. 32

Example: L = (ab ba) L has the following four equivalence classes: [ǫ] = L [a] = La [b] = Lb [aa] = L(aa bb)σ Based on slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown University. p. 33

Classes of L : More Examples Let L 1 {0, 1} contain all strings where the number of 1s is divisible by 4. Then L1 has finitely many equivalence classes. Let L 2 = L(0 10 ). Then L2 has finitely many equivalence classes. Let L 3 {0, 1} contain all strings of the form 0 n 1 n. Then L3 has infinitely many equivalence classes. Based on slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown University. p. 34

Myhill-Nerode Theorem Theorem: Let L Σ be a language. Then L is regular L has finitely many equivalence classes. Three specific consequences: L 1 {0, 1} contains all strings where the number of 1s is divisible by 4. Then L 1 is regular. L 2 = L(0 10 ) is regular. L 3 {0, 1} contains all strings of the form 0 n 1 n. Then L 2 is not regular. Based on slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown University. p. 35

Myhill-Nerode Theorem: Proof = Suppose L is regular. Let M = (Q, Σ,δ,q 0,F) be a DFA accepting it. For every x Σ, let δ(q 0,x) Q be the state where the computation of M on input x ends. The relation M on pairs of strings is defined as follows: x M y if δ(q 0,x) = δ(q 0,y). Clearly, M is an equivalence relation. Furthermore, if x M y, then for every z Σ, also xz M yz. Therefore, xz L if and only if yz L. This means that x M y = x L y. Based on slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown University. p. 36

Myhill-Nerode Theorem: Proof (cont.) = The equivalence relation M has finitely many equivalence classes (at most the number of states in M). We saw that x M y = x L y. This means that the equivalence classes of M refine those of L. Thus, the number of equivalence classes of M is greater or equal than the number of equivalence classes of L. Therefore, L has finitely many equivalence classes, as desired. Based on slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown University. p. 37

Myhill-Nerode Theorem: Proof (cont.) = Suppose L has finitely many equivalence classes. We ll construct a DFA M that accepts L. Let x 1,...,x n Σ be representatives for the finitely many equivalence classes of L. The states of M are the equivalence classes [x 1 ],...,[x n ]. The transition function δ is defined as follows: For all a Σ, δ([x i ],a) = [x i a] (the equivalence class of x i a). Why is δ well-defined? (Hint: right invariance: if x L y, then xz L yz). Based on slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown University. p. 38

Myhill-Nerode Theorem: Proof (conc.) = The initial state is [ε]. The accept states are F = {[x i ] x i L}. Easy: On input x Σ, M ends at state [x] (why?). Therefore M accepts x iff x L (why?). So L is accepted by DFA, hence L is regular. Based on slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown University. p. 39

Context Switch Based on slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown University. p. 40

Algorithmic Questions for NFAs Q.: Given an NFA, N, and a string s, is s L(N)? Answer: Construct the DFA equivalent to N and run it on w. Q.: Is L(N) =? Answer: This is a reachability question in graphs: Is there a path in the states graph of N from the start state to some accepting state. There are simple, efficient algorithms for this task. Based on slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown University. p. 41

More Algorithmic Questions for NFAs Q.: Is L(N) = Σ? Answer: Check if L(N) =. Q.: Given N 1 and N 2, is L(N 1 ) L(N 2 )? Answer: Check if L(N 2 ) L(N 1 ) =. Q.: Given N 1 and N 2, is L(N 1 ) = L(N 2 )? Answer: Check if L(N 1 ) L(N 2 ) and L(N 2 ) L(N 1 ). In the future, we will see that for stronger models of computations, many of these problems cannot be solved by any algorithm. Based on slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown University. p. 42

Another, More Radical Context Switch So far we saw finite automata, regular languages, regular expressions, Myhill-Nerode theorem and pumping lemma for regular languages. We now introduce stronger machines and languages with more expressive power: pushdown automata, context-free languages, context-free grammars, pumping lemma for context-free languages. Based on slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown University. p. 43

Context-Free Grammars An example of a context free grammar, G 1 : A 0A1 A B B # Terminology: Each line is a substitution rule or production. Each rule has the form: symbol string. The left-hand symbol is a variable (usually upper-case). A string consists of variables and terminals. One variable is the start variable. Based on slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown University. p. 44

Rules for Generating Strings Write down the start variable (lhs of top rule). Pick a variable written down in current string and a derivation that starts with that variable. Replace that variable with right-hand side of that derivation. Repeat until no variables remain. Return final string (concatenation of terminals). Process is inherently non deterministic. Based on slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown University. p. 45

Example Grammar G 1 : A 0A1 A B B # Derivation with G 1 : A 0A1 00A11 000A111 000B111 000#111 Based on slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown University. p. 46

A Parse Tree A A A B 0 0 0 # 1 1 1 Question: What strings can be generated in this way from the grammar G 1? Answer: Exactly those of the form 0 n #1 n (n 0). Based on slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown University. p. 47

Context-Free Languages The language generated in this way is called the language of the grammar. For example, L(G 1 ) is {0 n #1 n n 0}. Any language generated by a context-free grammar is called a context-free language. Based on slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown University. p. 48

A Useful Abbreviation Rules with same variable on left hand side A A 0A1 B are written as: A 0A1 B Based on slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown University. p. 49

English-like Sentences A grammar G 2 to describe a few English sentences: < SENTENCE > < NOUN-PHRASE >< VERB > < NOUN-PHRASE > < ARTICLE >< NOUN > < NOUN > boy girl flower < ARTICLE > a the < VERB > touches likes sees Based on slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown University. p. 50

Deriving English-like Sentences A specific derivation in G 2 : < SENTENCE > < NOUN-PHRASE >< VERB > < ARTICLE >< NOUN >< VERB > a < NOUN >< VERB > a boy < VERB > a boy sees More strings generated by G 2 : a flower sees the girl touches Based on slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown University. p. 51

Derivation and Parse Tree < SENTENCE > < NOUN-PHRASE >< VERB > < ARTICLE >< NOUN >< VERB > a < NOUN >< VERB > a boy < VERB > a boy sees SENTENCE NOUN-PHRASE VERB ARTICLE NOUN a boy sees Based on slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown University. p. 52