Regular vs Context Free Grammars

后端 未结 8 1360
我寻月下人不归
我寻月下人不归 2020-11-30 16:44

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<

相关标签:
8条回答
  • 2020-11-30 17:45

    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

    1. B → a where B is a nonterminal in N and a is a terminal in Σ
    2. B → aC where B and C are in N and a is in Σ
    3. B → ε where B is in N and ε denotes the empty string, i.e. the string of length 0

    left regular grammar, all rules obey the forms

    1. A → a where A is a nonterminal in N and a is a terminal in Σ
    2. A → Ba where A and B are in N and a is in Σ
    3. A → ε where A is in N and ε is the empty string

    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)

    0 讨论(0)
  • 2020-11-30 17:45

    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.

    0 讨论(0)
提交回复
热议问题