Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Metalenguaje B.N.F.
Notacin para especificar una gramtica generativa: define el conjunto de cadenas que son programas del LP sujeto, junto con su estructura sintctica Permite describir lenguajes con una sintaxis independiente del contexto
Gramticas de atributos
Extensin de B.N.F. mediante atributos y reglas de evaluacin de dichos atributos. Permite describir lenguajes con hechos sintcticos dependientes del contexto
FLP 2009/10 - Marisa Navarro 1
Gramtica ambigua:
Para una cadena terminal hay ms de un rbol sintctico Ejemplo: <expr> ::= x | y | z | (<expr>) | <expr> + <expr> | <expr> * <expr> (recursin a izquierda y derecha para un mismo smbolo no-term.) Dos rboles sintcticos para la cadena x + y * z : <expr> <expr> <expr> + x <expr> <expr> * <expr> z
Estructura sintctica
=>
rbol sintctico
<serie-instr>
<expr> * <expr> y z
<expr> + <expr> x y
begin EJEMPLO DE PROGRAMA en Eva char c proc printword (string word)= ( neq tail word,: call printword (tail word) output head word ) proc control = begin string w proc readword = ( cons c,w input c neq c,space:call readword ) call skipblaks call readword neq w,zz : ( call control output space call printword (w)) end proc skipblancs = ( input c eq c, space: call skipblanks ) call control FLP 2009/10 - Marisa Navarro 10 end
Variaciones de BNF
herramientas notacionales aadidas para reducir el tamao de la gramtica incrementar la claridad no suponen mayor poder de expresin Ejemplos: [....] secuencia opcional <sent-cond> ::= if <comp> then <serie-instr> [else <serie-instr>] fi {...} repeticin de 0 ms veces <serie-instr> ::= <instr> {; <instr> } Gramticas de Pam y Eva con BNF extendido
FLP 2009/10 - Marisa Navarro