Date post: | 02-Jan-2016 |
Category: |
Documents |
Upload: | anis-andrews |
View: | 241 times |
Download: | 0 times |
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 }
The language generated by a grammar
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 |
Parse trees
Yield of a parse tree
From tree to derivation
From derivations to recursive inference
ambiguity
Removing ambiguity
Ambiguity and leftmost derivations
Inherent ambiguity