Ejercicios BNF

1. Diseñar BNF para Asignaciones de operaciones aritméticas o booleanas:

2. Dado el siguiente BNF para expresiones lógicas:

<exp_lógica> ::= <exp_lógica> or <exp_lógica> | <exp_lógica> and <exp_lógica> | (<exp_lógica>) | not <exp_lógica> | true | false | <var_lógica>
<var_lógica> ::= A | B | C | ... | Zç

  1. Determine usando árboles de derivación, si las siguientes son expresiones lógicas.
    1. A or ((B and not (B or A)) and true
    2. ((A and B) or C) and not A or B
    3. A and (C or B) or not (true and false)
  2. Determine si el BNF dado es o no ambiguo. Justifique. En caso de ser ambiguo, defina si es posible un BNF no ambiguo que genere el mismo lenguaje.

3. Diseñar una gramática en formato BNF para: