Sintaxis de los lenguajes de programación Conjunto de reglas que especifican y permiten verificar la corrección formal de las sentencias de un lenguaje
Formalismos utilizados: Notación BNF (Backus-Naur Form) Notación EBNF (Extended Backus-Naur Form) Diagramas sintácticos Todos ellos pueden expresar la forma de cualquier lenguaje de programación, sólo hay que elegir el que nos sea cómodo Estos formalismos se usan para escribir documentación técnica que leen quienes quieren conocer con exactitud un lenguaje
Notación BNF TERMINAL Símbolo (ej. una palabra) del lenguaje a definir (se escribe en letras mayúsculas)
Símbolo que se define en términos de otros símbolos (tanto terminales como no terminales) (se escribe en letras minúsculas y entre <>)
Regla de producción Descripción de un símbolo no terminal como equivalente a 1) una combinación de terminales y no terminales, o 2) al vacío (Ø) (Un mismo no terminal puede tener varias reglas de producción)
Metasímbolo Símbolo propio de la notación BNF, está reservado y no puede utilizarse en ningún otro símbolo ::= Equivalencia (lo de la izquierda equivale a lo de la derecha; es una regla de producción) | Alternativa (lo de la izquierda o lo de la derecha)
Sintaxis de los números enteros positivos en notación BNF ::= ::= + | ::= | ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 ::=
¿Sintaxis de los números reales en notación BNF? Notación BNF (cont.) Recursividad Que un símbolo aparezca dentro de su propia definición¡OJO! Pero evitando las definiciones circulares
Notación EBNF Añade metasímbolos nuevos y cambia la forma de presentar las cosas BNF TERMINAL
Metasímbolo ::= Equivalencia | Alternativa
Recursividad permitida EBNF “terminal” No-terminal Metasímbolo ::= Equivalencia| Alternativa(…) Agrupación[…] Aparición opcional{…} Aparición 0, 1 o más veces Recursividad NO permitida (se suple con {…}) Si algún símbolo del lenguaje coincide con un metasímbolo, el símbolo del lenguaje se pone entre ‘comillas simples’
Sintaxis de los números enteros positivos en notación EBNF
Numero-entero ::= [Signo] Secuencia-dígitos Signo ::= “+” Secuencia-dígitos ::= Dígito {Dígito} Dígito ::= “0” | “1” | “2” | “3” | “4” | “5” | “6” | “7” | “8” | “9”
¿Sintaxis de los números reales en notación EBNF? Notación EBNF (cont.)
Diagramas sintácticos (Gp:) TERMINAL
(Gp:) No Terminal
Alternativa Aparición 0, 1 o más veces Aparición opcional *En las reglas de producción el no terminal de la izquierda se deja sin recuadro
Diagramas sintácticos (cont.) Sintaxis de los números enteros positivos en notación de diagramas sintácticos
¿Sintaxis de los números reales en notación de diagramas sintácticos?
+ Dígito Dígito 1 0 9 Nº entero positivo Dígito …
Página anterior | Volver al principio del trabajo | Página siguiente |