I\'m studying for my computing languages test, and there\'s one idea I\'m having problems wrapping my head around.
I understood that regular grammars<
The difference between regular and context free grammar: (N, Σ, P, S) : terminals, nonterminals, productions, starting state Terminal symbols
● elementary symbols of the language defined by a formal grammar
● abc
Nonterminal symbols (or syntactic variables)
● replaced by groups of terminal symbols according to the production rules
● ABC
regular grammar: right or left regular grammar right regular grammar, all rules obey the forms
left regular grammar, all rules obey the forms
context free grammar (CFG)
○ formal grammar in which every production rule is of the form V → w
○ V is a single nonterminal symbol
○ w is a string of terminals and/or nonterminals (w can be empty)
Regular grammar:- grammar containing production as follows is RG:
V->TV or VT
V->T
where V=variable and T=terminal
RG may be Left Linear Grammar or Right Liner Grammar, but not Middle linear Grammar.
As we know all RG are Linear Grammar but only Left Linear or Right Linear Grammar are RG.
A regular grammar can be ambiguous.
S->aA|aB
A->a
B->a
Ambiguous Grammar:- for a string x their exist more than one LMD or More than RMD or More than one Parse tree or One LMD and One RMD but both Produce different Parse tree.
S S
/ \ / \
a A a B
\ \
a a
this Grammar is ambiguous Grammar because two parse tree.
CFG:- A grammar said to be CFG if its Production is in form:
V->@ where @ belongs to (V+T)*
DCFL:- as we know all DCFL are LL(1) Grammar and all LL(1) is LR(1) so it is Never be ambiguous. so DCFG is Never be ambiguous.
We also know all RL are DCFL so RL never be ambiguous. Note that RG may be ambiguous but RL not.
CFL: CFl May or may not ambiguous.
Note: RL never be Inherently ambiguous.