Una gramática libre de
contexto es un conjunto finito de variables, cada una de las cuales representa
un lenguaje.
De la forma V → W
Donde V es un símbolo no Terminal y W es una cadena de terminales
y/o no terminales.
Tiene como origen la
descripción de lenguajes naturales tal como se expresa en las siguientes
reglas.
Dónde:
Variables: ,, ,,.
Terminales: niño, pequeño.
Notación: Como ocurre en toda gramática formal que se ha estado
estudiado en el curso se define mediante una cuádrupla de la siguiente manera.
G = (V, T, P, S)
V=El alfabeto de variables.
T=El alfabeto de símbolos terminales.
P=El conjunto de reglas de producción.
S=El símbolo inicial.
Las gramaticas libres de
contexto pueden describir a gran parte de los lenguajes de programación, en el
caso del lenguaje C, pongo el siguiente ejemplo que es la declaración de
variables.
Las variables enteras en C se
declaran de la siguiente manera.
chart a = 4 ;
lo que se puede traducir como
→=;
G=
(,{chart,=,;,n},P,})
C maneja entre otros los siguientes tipos básicos de datos
chart, short, int, enum,
long, float, double
por lo que la gramatica se puede definir de la siguiente manera
→;
o utilizando |
→;
n → 0,1,2,3,4,5....9
El árbol de derivación para
chart a = 4 ;
sería el siguiente
Nueva versión del arbol
El siguiente sería el atómata de pila para chart id = 44;
Fuente: http://blog.gsystem.org/gramatica-de-libre-contexto/
No hay comentarios:
Publicar un comentario