You are on page 1of 7

3.5.

1 DEFINICIN FORMAL DE GRAMTICA


Una gramtica es una cudrupla:
G = (VT, VN, S, P)
Donde:
VT= {conjunto finito de smbolos terminales}
VN={conjunto finito de smbolos no terminales}
S es el smbolo inicial y pertenece a VN
P= {conjunto de producciones o de reglas de derivacin}
Todas las cadenas del lenguaje definidas por la gramtica estn formadas con
smbolos del vocabulario terminal VT. El vocabulario terminal se define por
enumeracin de los smbolos terminales.
El vocabulario no terminal VN es el conjunto de smbolos introducidos como
elementos auxiliares para la definicin de la gramtica, y que no figuran en las
sentencias del lenguaje.
La interseccin entre el vocabulario terminal y no terminal es el conjunto vaco:
{VN} {VT} = {}
La unin entre el vocabulario terminal y no terminal es el vocabulario.
{VN} {VT} = {V}
En ocasiones es importante distinguir si un determinado vocabulario incluye o no
la cadena vaca, indicndose respectivamente con superndice + o superndice *,
tal como se muestra a continuacin:
V+ = V - {l}
V* = V + {l}

3.5.2 VOCABULARIO TERMINAL


Todas las cadenas del lenguaje definido por la gramtica estn formadas con
smbolos del vocabulario terminal VT.
El vocabulario terminal se define por enumeracin de los smbolos terminales.
El vocabulario no terminal VN es el conjunto de smbolos introducidos como
elementos auxiliares para la definicin de la gramtica, y que no figuran en las
sentencias del lenguaje.
El vocabulario no terminal se define por enumeracin de los smbolos no
terminales.
Los elementos del vocabulario terminal se representan por:

Letras minsculas de comienzo de abecedario: a, b, c, d,., g


Operadores tales como: +, - , *, /,
Caracteres especiales: #, %, &, @,.
Los dgitos: 0, 1,. . . . .,9
Las palabras reservadas de lenguaje de programacin con letras
minsculas y en negritas ; if, then , else, . . .

La interseccin entre el vocabulario terminal y no terminal es el conjunto


vaco:
{VN} {VT} = {}
La unin entre el vocabulario terminal y no terminal es el vocabulario:
{VN} U {VT} = {V}

3.5.2 VOCABULARIO NO TERMINAL


Los elementos del vocabulario no terminal se representan por:

Letras maysculas del abecedario: A, B, C, D,. . . . Z, La nica excepcin

puede suele ser el smbolo inicial que se representan con S.


Nombres en minsculas, pero encerrados entre parntesis angulares:
<expresin>, <operador>,. . . .

La unin entre el vocabulario terminal y no terminal es el vocabulario.


{VN} {VT} = {V}
En ocasiones es importante distinguir si un determinado vocabulario incluye o no
la cadena vaca, indicndose respectivamente con superndice + o superndice *,
tal como se muestra a continuacin:
V+ = V - {l}
V* = V + {l}
El smbolo inicial S es un smbolo no terminal a partir del cual se aplican las reglas
de la gramtica para obtener las distintas cadenas del lenguaje.
Las producciones P son las reglas que se aplican desde el smbolo inicial para
obtener las cadenas del lenguaje. El conjunto de producciones P se define por
medio de la enumeracin de las distintas producciones, en forma de reglas o por
medio de un metalenguaje.
Ej 1: Sea la gramtica: G=(VT,VN,S,P) donde VT={a,b}, VN={S} y el conjunto de
producciones es:
S ab
S aSb
Las cadenas de esta gramtica estn dadas por: ab, aabb, aaabbb, aa
anbb.bn
Ej 2. Sea la gramtica: G=({a,b,c,d}, {S,A,B},S,P) donde P son las producciones:
S ASB
Ab
aaA aaBB
Sd

A aA
B dcd
Las

cadenas

de

esta

gramtica

son:

bddcd,

abddcd,

aabddcd,

bbaddcddcddcd
Ej 3: Sea la gramtica: G = (VN, VT, S, P) donde:
VN = {<nmero>, <dgito>}
VT = {0, 1, 2, 3, 4,5 ,6 ,7 ,8 ,9}
S= <nmero>
3.5.4 VOCABULARIO
Los elementos indiferenciados del vocabulario terminal y no terminal se denotan
con:
Las letras maysculas al final del abecedario: U, V, W, X, Y, Z.
Los conceptos bsicos de smbolos, palabras, alfabetos y strings son comunes en
la mayora de las descripciones de los autmatas. Estos son:
Smbolo
Un dato arbitrario que tiene algn significado a o efecto en la mquina. A
estos smbolos tambin se les llama "letras" o "tomos".1
Palabra
Una cadena finita formada por la concatenacin de un nmero de smbolos.
Alfabeto

Conjunto finito de smbolos. Un alfabeto se indica normalmente con


es el conjunto de letras en un alfabeto.
Lenguaje

, que

Un conjunto de palabras, formado por smbolos en un alfabeto dado. Puede


ser infinito.
Clausura de Kleene
Un lenguaje se puede considerar como un subconjunto de todas las
posibles palabras. El conjunto de todas las palabras puede, a su vez, ser
considerado como el conjunto de todas las posibles concatenaciones de
cadenas. Formalmente, este conjunto de todas las cadenas se llama en
ingls free monoid. Se indica cmo

, y el superndice * se llama

la estrella de Kleene.

3.5.4 CADENAS TERMINALES


Las cadenas terminales compuestas totalmente por smbolo terminales se
representan como:

Las letras minsculas de final del abecedario: t, u, v, x, y, z,.

3.5.5 CADENAS

Una cadena es una secuencia finita de smbolos de un determinado alfabeto. As


como por ejemplo: abcd etc.
Una cadena es una secuencia finita de smbolos de un determinado alfabeto.
Ejm. Tomando en cuenta los alfabetos o vocabularios definidos anteriormente,
podemos decir que:
abcb es una cadena del alfabeto V2
a+2*b es una cadena del alfabeto V2
000111 es una cadena del alfabeto V3

If a>b then b=a; es una cadena del alfabeto V4

Las cadenas que contiene smbolos T y NT indiferenciados se representan por:


Letras minsculas griegas.

LONGITUD DE CADENA

La longitud de una cadena consiste en el nmero de smbolos pertenecientes a la


cadena. Ejm. Tomando en cuenta los ejemplos de cadena podemos decir que:
|abcb| es de longitud 4
|a + 2*b| es de longitud 5
|000111| es de longitud 6
|if a>b then a=b;| es de longitud 9

CADENA VACA

Se denomina cadena vaca, que no tiene smbolos y se denota con l, por lo que su
longitud es: | l | 0

CONCATENACIN DE CADENAS

Sean A y B dos cadenas cualesquiera, se denomina concatenacin de A y B a una


nueva cadena AB constituida por los smbolos de la cadena A seguidos por los de
la cadena B.
El elemento neutro de la concatenacin es l:
A l = lA = A

You might also like