cs 3240: languages and computation context-free languages

14
CS 3240: Languages and Computation Context-Free Languages

Upload: anis-andrews

Post on 02-Jan-2016

248 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: CS 3240: Languages and Computation Context-Free Languages

CS 3240: Languages and Computation

Context-Free Languages

Page 2: CS 3240: Languages and Computation Context-Free Languages

Context-Free Languages

A single step derivation “” consist of the substitution of a variable by a string according to a substitution rule in R

Note that rules use single arrows “”, while derivations themselves use double arrows “”

A sequence of several derivations (or none) is indicated by “ * ” Previous example: “S * aabbaa”

L is a Context Free Language if and only if there is a context free grammar G=(V, Σ, P, S) such that

L = L(G) = { w | w Σ * and S * w }

Page 3: CS 3240: Languages and Computation Context-Free Languages

The language generated by a grammar

Page 4: CS 3240: Languages and Computation Context-Free Languages

Some Remarks

The language L(G) = { w | w Σ* and S * w } contains only strings of terminals, not variables.

Notation: We can agglomerate several rules for one variable:A B

A 01 by A B | 01 | AAA AA

What is the CFG ({S},{(,)},P, S) that produces the language of correct parentheses like (), (()), or ()(())? Answer: S→ (S) | SS |

Page 5: CS 3240: Languages and Computation Context-Free Languages

Parse trees

Page 6: CS 3240: Languages and Computation Context-Free Languages

Yield of a parse tree

Page 7: CS 3240: Languages and Computation Context-Free Languages
Page 8: CS 3240: Languages and Computation Context-Free Languages

From tree to derivation

Page 9: CS 3240: Languages and Computation Context-Free Languages
Page 10: CS 3240: Languages and Computation Context-Free Languages

From derivations to recursive inference

Page 11: CS 3240: Languages and Computation Context-Free Languages

ambiguity

Page 12: CS 3240: Languages and Computation Context-Free Languages

Removing ambiguity

Page 13: CS 3240: Languages and Computation Context-Free Languages

Ambiguity and leftmost derivations

Page 14: CS 3240: Languages and Computation Context-Free Languages

Inherent ambiguity