Compiladores

Embed Size (px)

Citation preview

  • Dada La Siguiente Gramatica, Realizar la Derivacion por la Derecha y por la Izquierda.

    Gramatica

    E -> E+E

    E -> (E)

    E -> E-E

    E -> E*E

    E -> id

    | num

    EJERCICIO N1

    ((a+b)(5-b))+1

    Derivacin por la derecha

    ((id1+id2) (num1-id2))+num2

    E

    E+E

    E+num2

    (E)+num2

    (E*E)+num2

    (E*(E))+num2

    (E*(E-E))+num2

    (E*(E-id2))+num2

    (E*(num1-id2))+num2

    ((E)*(num1-id2))+num2

    ((E+E)*(num1-id2))+num2

    ((E+id2)*(num1-id2))+num2

    ((id1+id2)*(num1-id2))+num2

    Derivacin por la izquierda

    ((id1+id2) (num1-id2))+num2

    E

    E+E

    (E)+E

    (E*E)+E

    ((E)*E)+E

    ((E+E)*E)+E

    ((id1+E)*E)+E

    ((id1+id2)*E)+E

    ((id1+id2)*(E))+E

    ((id1+id2)*(E-E))+E

    ((id1+id2)*(num1-E))+E

    ((id1+id2)*(num1-id2))+E

    ((id1+id2)*(num1-id2))+num2

  • EJERCICIO N2

    a+b-((a*c)-1)+5-c

    Derivacin por la derecha

    id1+id2-((id1*id3)-num1)+num2-id3

    E

    E-E

    E-id3

    E+E-id3

    E+num2-id3

    E-E+num2-id3

    E-(E)+num2-id3

    E-(E-E)+num2-id3

    E-(E-num1)+num2-id3

    E-((E)-num1)+num2-id3

    E-((E*E)-num1)+num2-id3

    E-((E*id3)-num1)+num2-id3

    E-((id1*id3)-num1)+num2-id3

    E+E-((id1*id3)-num1)+num2-id3

    E+id2-((id1*id3)-num1)+num2-id3

    id1+id2-((id1*id3)-num1)+num2-id3

    Derivacin por la izquierda

    id1+id2-((id1*id3)-num1)+num2-id3

    E

    E+E

    id1+E

    id1+E-E

    id1+id2-E

    id1+id2-E+E

    id1+id2-(E) +E

    id1+id2-(E-E) +E

    id1+id2-((E)-E) +E

    id1+id2-((E*E)-E) +E

    id1+id2-((id1*E)-E) +E

    id1+id2-((id1*id3)-E) +E

    id1+id2-((id1*id3)-num1) +E

    id1+id2-((id1*id3)-num1) +E-E

    id1+id2-((id1*id3)-num1) +num2-E

    id1+id2-((id1*id3)-num1) +num2-id3