Erik Jonsson School of Engineering and Computer Science FEARLESS Engineering CS 4384 – 001...

33
Erik Jonsson School of Engineering and Computer Science FEARLESS Engineering CS 4384 – 001 Automata Theory http://www.utdallas.edu/ ~pervin Thursday: Context-Free Languages Sections 3.1-3.3 Tuesday 2-25-14 1

Transcript of Erik Jonsson School of Engineering and Computer Science FEARLESS Engineering CS 4384 – 001...

1

Erik Jonsson School of Engineering and Computer Science

FEARLESS Engineering

CS 4384 – 001

Automata Theory

http://www.utdallas.edu/~pervin

Thursday: Context-Free Languages

Sections 3.1-3.3 Tuesday 2-25-14

EXAMINATION ANSWERS

Regular Languages

2

ANSWERS

Distinguished States3

Distinguished States4

Context-free Languages

Chapter Three

5Tuesday 2-25

Definition

A context-free grammar (CFG) G is a quadruple (V, Σ, R, S) where

V: a set of non-terminal symbols (Variables)

Σ: a set of terminals (V ∩ Σ = Ǿ) (Alphabet)

R: a set of rules (R: V → (V U Σ)*)S: a start symbol (a variable)

How do we use rules?

If R: A → B, then xAy xBy and we say that xBy is derived from xAy using rule R.

If s ··· t, then we write s * t.A string x in Σ* is generated by G=(V,Σ,R,S) if S * x.L(G) = { x in Σ* | S * x}.

Example

G = ({S}, {0,1}. {S → 0S1 | ε }, S)ε in L(G) because S ε .01 in L(G) because S 0S1 01.0011 in L(G) because S 0S1 00S11 0011.0 1 in L(G) because S * 0 1 .L(G) = {0 1 | n > 0}

n n n n

n n

Context-free

A context-free grammar is “context-free’’ because we can use a rule R no matter what the context. E.g., (M&S P.89, Def. 3.1.2) from the rule R: A -> w, we can derive from the string uAv in one step the string uwv, no matter what the context (that is, for any strings u and v).

9

10

11

12

Palindromes

13

Any positive even number of a’s with any number of b’s anywhere

14

15

16

17

18

19

Parsing Expressions

G = (V, ∑, R, E)

V = {E, T, F}∑= {x, 1, 2, +, *, (, )}R = { E -> E + T | T; T -> T * F | F; F -> (E) | x1 | x2 }

Expressions, Terms, Factors

20

21

22Parse Tree

Closure Properties23

24

25

26

Theorem

For every regular language L, there exists a CFG G (in fact a Regular Grammar) such that L=L(G).

27

TheoremFor every regular language L, there exists

a CFG G such that L=L(G).

Proof. Let L=L(M) for a DFA M=(Q, Σ, δ, s, F).

Construct a CFG G=(V, Σ, R, S) as follows.

V = Q,Σ = Σ,R = { q → ap | δ(q, a) = p } U { f → ε | f in F},S = q0.

s q1f=qn

x1 xn S x1q1 x1x2q2 ··· x1…xnf x1…xn

28

29

Regular Grammars

30Note: A -> a is unnecessary

31What's wrong with (ab)*a*?

32

Simplified and Normal Forms33