Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Compiladores
Gramticas
La gramtica es el estudio de las reglas y principios que
regulan el uso de las lenguas y la organizacin de las
palabras dentro de una oracin. Tambin se denomina
as al conjunto de reglas y principios que gobiernan el
uso de un lenguaje determinado; as, cada lenguaje
tiene su propia gramtica.
Permite definir un lenguaje mediante reglas que nos
permiten generar o producir cadenas de un lenguaje.
Gramticas
Un ejemplo de regla de una gramtica:
Oracin
Sujeto predicado
Estas reglas se suelen llamar reglas de reescritura: el
smbolo Oracin se puede reescribir por el smbolo
Sujeto seguido del smbolo Predicado.
Una gramtica libre de contexto es una gramtica
formal en la que cada regla de produccin es de la
forma:
Vw
Gramticas
Donde V es un smbolo no terminal y w es una cadena
de terminales y/o no terminales. El trmino libre de
contexto se refiere al hecho de que el no terminal V
puede siempre ser sustituido por w sin tener en cuenta
el contexto en el que ocurra.
Las gramticas libres de contexto permiten describir la
mayora de los lenguajes de programacin, de hecho, la
sintaxis de la mayora de lenguajes de programacin
est definida mediante gramticas libres de contexto.
Unidad Acadmica de Ingeniera
Gramticas
Por ejemplo, una proposicin if-else
forma
en C tiene la
Gramticas
Gramticas
Una gramtica G es una cudrupla (N, , P, S) donde:
N es un conjunto finito y no vaco de smbolos llamados
no terminales o auxiliares, permiten representar estados
intermedios de la generacin de las palabras del lenguaje.
es un conjunto finito y no vaco de smbolos llamados
terminales, que forman las palabras del lenguaje.
S N, smbolo especial llamado smbolo inicial o axioma a
partir del que se aplican las reglas de la gramtica para
obtener las distintas palabras del lenguaje.
P es un subconjunto finito de V*NV* x V*. A los elementos
de P se les denomina reglas de produccin o simplemente,
producciones. permiten generar las palabras del lenguaje.
Unidad Acadmica de Ingeniera
Gramticas
Un ejemplo para ciertas expresiones aritmticas
G = (VN, VT, S, P)
VT={ +, -, \, *, ( , ), id }
VN= { E}
S=E
P:
1. EE+E
4. E E * E
2. EE- E
5. E E / E
3. E(E)
6. E id
Nota: Tambin los podemos ponerlo como una sola
produccin con alternativas
E E + E | E - E | E \ E | E * E | ( E) | id
Unidad Acadmica de Ingeniera
Gramticas
UN EJEMPLO
ORACIN SUJETO PREDICADO | PREDICADO
SUJETO ARTCULO NOMBRE
ARTICULO el | la
NOMBRE casa | nio
PREDICADO VERBO COMPLEMENTO
VERBO corre | es
COMPLEMENTO bien | obediente | bonita
Gramticas
Notacin BNF (Backus-Naur-Form).
Esta notacin se utiliza para representar la gramtica
libre de contexto de un lenguaje de programacin.
Smbolos no terminales entre <>
Sustitucin de por ::=
Ejemplo:
<sentenciafor>::=for<condicion><sentencia>
Unidad Acadmica de Ingeniera
Gramticas
Lenguaje Libre de Contexto (LLC)
Es el lenguaje generado por una gramtica GLC.
L(G)={w / w VT* y S * w}
es decir w L(G) si w est formado cadenas de cero o
ms terminales y puede ser derivada desde el axioma.