| INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE CÓMPUTO |

Introducción | Contenido | Bibliografía

Introducción
Contenido
UNIDAD I Introducción 1.1 Lenguajes y Gramáticas 1.2 Clasificación de las Gramáticas 1.3 Derivaciones y Reducciones

1.4 Árboles de sintaxis

1.5 Gramáticas Ambiguas

1.6 Formas de Backus-Naur (BNF)

UNIDAD II
UNIDAD III
UNIDAD IV
UNIDAD V
UNIDAD VI
UNIDAD VII
UNIDAD VIII
UNIDAD IX
PROBLEMARIO
Bibliografía

1.6 Formas de Backus-Naur (BNF)

> La nomenclatura BNF (Backus – Naur) es una notación formal que se utiliza para representar producciones y describir sintaxis. Es un metalenguaje que utiliza los siguientes meta símbolos: • < > ::= | , donde el símbolo ::= representa lo mismo que el símbolo →.

> Las reglas en BNF se definen por medio de “producciones”.

> Ejemplo:

> Un digito puede ser representado por medio de esta nomenclatura.

> < digito > ::= 0|1|2|3|4|5|6|7|8|9

> Donde el símbolo no terminal se define como aquel que puede derivar en otros símbolos y el símbolo terminal, es aquel que ya no puede derivar más símbolos.

> Los símbolos no terminales se representan con las letras mayúsculas.

> Los símbolos terminales se representan con letras entre paréntesis triangulares.

> El siguiente conjunto de producciones representa a una cadena de dígitos:

> Número_entero → A<d> ó N_e → A <d>

> A → <d>
> <d> → 1|2|3|4|5|6|7|8|9|0

> Del conjunto de producciones anterior, se obtiene el número 5636.

> Ejemplo:

> El número se obtiene aplicando derivaciones, es decir, utilizando las producciones de manera recursiva, como se muestra a continuación:

> N_e A<d> A6 A<d>6 A36 A<d>36 A636 <d>636 5636

> BNF extendidos y grafos sintácticos.

> La sintaxis BNF se ha extendido para mejorar su legibilidad y facilitar su escritura, el cual es llamado BNF extendido o EBNF, la cual, permite definir gramáticas con partes derechas regulares.

> Las extensiones son:

> - Disyunción: ( α1 | α2 | α3 ).

> - Clausura: ( α ) *.

> - Clausura positiva: ( α ) +.

> - Opcionalidad: ( α ) ?.

> Estas extensiones no añaden poder expresivo, es decir, las gramáticas con partes derechas regulares tienen la misma capacidad expresiva que las gramáticas libres de contexto.

> Las extensiones más comunes son:

> 1. El símbolo [ ], para indicar opcionalidad en la parte derecha de la regla.

> Ejemplo:

> <valor> → [ <signo> ] <núm_sin_signo> [ . <núm_sin_signo> ]

> 2. El símbolo { } para indicar repetición en la parte derecha de la regla:

> Ejemplo:

> <núm_sin_signo> → <dígito> { <dígito> } o

> <núm_sin_signo> → { < dígito > } +
> <lista_ident> → <ident> { , <ident> }

> 3. El símbolo | para indicar alternativa en la parte derecha de la regla:

> Ejemplo:

> <signo> → + | -

> <sentencia_for> → for <var> := <expr> (to | downto) <expr> do <sentencia>

> Atrás Siguiente

##### Introducción / Contenido / Unidad I / Unidad II / Unidad III / Unidad IV / Unidad V / Unidad VI / Unidad VII / Unidad VIII / Unidad IX / Problemario / Bibliografía

##### Inicio

##### Créditos

José Sánchez Juárez, Andrés Ortigoza Campos, Fabiola Ocampo Botello