Context free grammars (CFG) and languages (CFL):
Aims of this section: CFGs and CFLs are models of computation which define the syntax of hierarchical formal notations as utilized in programming or mark-up languages. Recursion is an essential characteristic which distinguish CFGs and CFLs from FAs and regular languages. Properties, weakness and strengths of CFLs. Equivalence of the CFGs and NPDAs. Non-equivalence of the deterministic and non-deterministic PDAs, Parsing and Context sensitive grammars CSG.Context free grammars and languages (CFG, CFL):
Algol 60 pioneered the CFGs and CFLs to state the syntax of programming languages (Backus-Naur Form).
Example: Arithmetic expression E, term T, factor F, primary P, a-op A = {+, -}, m-op M = {•, /}, exp-op = ^.
E -> T | EAT | AT, T -> F | TMF, F -> P | F^P, P -> unsigned number |variable| function designator | (E) [Notice the recursion: E ->* (E)]
Example of Recursive data structures and their traversals:
Binary tree T, leaf L, node N: T -> L | N T T (prefix) or T -> L | T N T (infix) or T -> L | T T N (suffix).
Such definitions can be turned directly to the recursive traversal procedures, example: procedure traverse (p: ptr); begin when p ≠ nil then start visit(p); traverse(p.left); traverse(p.right); end; end;
Df CFG: G = (V, A, P, S)
V: non-terminal symbols, “variables”; A: terminal symbols; S ∈ V: start symbol, “sentence”;P: set of productions or rewriting rules of the form X -> w, Here X ∈ V, w ∈ (V ∪ A)*
Rewriting the step: for u, v, x, y, y’, z ∈ (V ∪ A)*: u -> v if u = xyz, v = xy’z and y -> y’ ∈ P.
Derivation: “->*” is the transitive, reflexive closure of “->”, that is, u ->* v iff ∃ w0, w1, .. , wk with k ≥ 0 and u = w0, wj-1 -> wj, wk = v.
L(G) context free language produce by G: L(G) = {w ∈ A* | S ->* w}.
Example Symmetric structures: L = {0n 1n | n ≥ 0}, or even palindromes L0 = {w wreversed | w ∈ {0, 1}*}
G(L) = ({S}, {0, 1}, { S -> 0S1, S -> ε}, S); G(L0) = ({S}, {0, 1}, { S -> 0S0, S -> 1S1, S -> ε}, S)
Palindromes (length even or odd): L1 = {w | w = wreversed}. G(L1): add all the rules: S -> 0, S -> 1 to G(L0).
Ex Parenthesis expressions: V = {S}, T = {(, ), [, ] }, P = { S -> ε, S -> (S), S -> [S], S -> SS }
Sample derivation: S -> SS -> SSS ->* ()[S][ ] -> ()[SS][ ] ->* ()[()[ ]][ ]
The rule S -> SS builds this grammar ambiguous. The ambiguity is undesirable in practice, as the syntactic structure is usually employed to convey the semantic information.
Ambiguous structures in natural languages:
‘Time flies like an arrow’ versus. ‘Fruit flies like a banana’.
Bad news: There exist CFLs which are inherently ambiguous, that is each and every grammar for them is ambiguous. Furthermore, the problem of deciding whether the given CFG G is ambiguous or not, is not decidable.
Good news: For practical purposes it is simple to design the unambiguous CFG’s.
Exercise:
i) For Algol 60 grammar G (simple arithmetic expressions) above, describe the aim of the rule E -> AT and show illustrations of its use. Prove or disprove: G is unambiguous.
ii) Build an unambiguous grammar for the language of above parenthesis expressions.
iii) The ambiguity of ‘dangling else’. Some programming languages (example: Pascal) assign to nested if-then[-else] statements an ambiguous structure. This is then left to the semantics of language to disambiguate.
Let E represents Boolean expression, S statement, and let consider the 2 rules:
S -> if E then S, and S -> if E then S else S. Explain the trouble with this grammar and fix it.
iv) Provide a CFG for L = {0i 1j 2k | i = j or j = k}. Try to verify: L is inherently ambiguous.
Latest technology based Theory of Computation Online Tutoring Assistance
Tutors, at the www.tutorsglobe.com, take pledge to provide full satisfaction and assurance in Theory of Computation help via online tutoring. Students are getting 100% satisfaction by online tutors across the globe. Here you can get homework help for Theory of Computation, project ideas and tutorials. We provide email based Theory of Computation help. You can join us to ask queries 24x7 with live, experienced and qualified online tutors specialized in Theory of Computation. Through Online Tutoring, you would be able to complete your homework or assignments at your home. Tutors at the TutorsGlobe are committed to provide the best quality online tutoring assistance for Theory of Computation Homework help and assignment help services. They use their experience, as they have solved thousands of the Theory of Computation assignments, which may help you to solve your complex issues of Theory of Computation. TutorsGlobe assure for the best quality compliance to your homework. Compromise with quality is not in our dictionary. If we feel that we are not able to provide the homework help as per the deadline or given instruction by the student, we refund the money of the student without any delay.
tutorsglobe.com vb dot net assignment help-homework help by online computer programming tutors
Theory and lecture notes of Architecture of DBMS all along with the key concepts of architecture of dbms, stages of the architecture, external level, conceptual vision, internal view. Tutorsglobe offers homework help, assignment help and tutor’s assistance on Architecture of DBMS.
theory and lecture notes of cmos logic gates all along with the key concepts of current-voltage relationships, non-saturation region, saturation region, cmos inverter, cmos nor gate and cmos nand gate. tutorsglobe offers homework help, assignment help and tutor’s assistance on cmos logic gates.
tutorsglobe.com mechanism of fission assignment help-homework help by online type of nuclear reaction tutors
introduction to chemical equilibria tutorial all along with the key concepts of characteristics of chemical equilibrium, reaching equilibrium and the equilibrium position, equilibrium conditions, irreversible and reversible reactions, types of chemical equilibria, equilibrium constant
Get the opportunity to combat with the complex academic tasks with Gothic Art Assignment Help at rational prices!
Integrated Pest Management tutorial all along with the key concepts of IPM Definition, History of Integrated Pest Management, Need for Pest Management, Phases in Crop Protection leading to IPM, Principles of Integrated Pest Management, Process of Integrated Pest Management
super conductivity-basic phenomenon tutorial all along with the key concepts of empirical criteria, transition temperature, energy gap, properties dependent on energy gap, density of states, acoustic attenuation
For accounting information to be helpful, the accountant must be unambiguous for whom the information is being ready and for what is the purpose of information that will be used.
Planktonic benthic invertebrates tutorial all along with the key concepts of Benthic Organisms, Infauna, Epifauna, Demersal, Epifaunal Benthos, Common Nature of Benthic Invertebrates, Significance of Benthic Invertebrates
www.tutorsglobe.com - basic economic problems, thus, shortage and choice or "the limited resources and the unlimited wants" add up the crucial economic problem.
Structure and Composition of the Atmosphere tutorial all along with the key concepts of Layers of Atmosphere, Troposphere, Stratosphere, Mesosphere, Thermosphere, Exosphere, Layers of Ionosphere, D layer, E layer, Aurora, F layer, Electromagnetic Coupling
Monosaccharides tutorial all along with the key concepts of Structure of glucose, Projection and perspective formulas, Fischer's projection, Measurement of optical activity and Haworth's projection formula
Theory and lecture notes of Hierarchical locks all along with the key concepts of hierarchical locks, homework help, assignment help, lock management. Tutorsglobe offers homework help, assignment help and tutor’s assistance on Hierarchical locks.
tutorsglobe.com saving function assignment help-homework help by online consumption function tutors
1954418
Questions Asked
3689
Tutors
1474567
Questions Answered
Start Excelling in your courses, Ask an Expert and get answers for your homework and assignments!!