Gramaticas Lenguajes Automatas
Gramaticas Lenguajes Automatas
Gramaticas Lenguajes Automatas
com 1
1. Introducción
2. Conceptos y definiciones
3. Lenguajes y gramáticas
4. Jerarquía de las gramáticas
5. Ejercicios resueltos
6. Bibliografía
INTRODUCCIÓN
El universo de los sistemas automatizados, digital, virtual. Cada día absorbe más terreno y forma parte
ya de nosotros. Por ejemplo en el interior de nuestros hogares, encontramos lavadoras, hornos
microondas equipos de sonido, video, sistemas de calefacción/aire acondicionado etc. En el lugar
menos pensado, la cocina o el cuarto de lavado, usted posee tecnología de punta, sistemas
automatizados obras de ingeniería, pero que, por la familiaridad o uso frecuente parece algo normal y
parte de nosotros incluso nuestros niños interactúan cada día en Video Juegos, TV, DVD, Play Stations
y otros con la mayor familiaridad, sin imaginarse la complejidad de los sistemas que nos rodean en el
mundo real.
Hasta hace unos años atrás se empleaba la frase “Lento pero seguro” con el objetivo de buscar la
excelencia pensando que los trabajos realizados a la rápida no tenían buena calidad, empero con los
sistemas automatizados surge una nueva premisa “Rápido y muy seguro”. El universo tecnológico
cada día busca satisfacer las necesidades del ser humano, mejorar y optimizar la forma de hacer las
cosas, más rápido y mejor.
En lo que atañe a nuestro tema de estudio no es otra cosa que la comprensión y representación de
estos dos universos paralelos el real y el virtual, el tema de estudio abarca más allá de las cosas
tangibles o visibles, la expresión corporal, el lenguaje la forma de decir y comprender el significado y la
semántica de las palabras generando lenguajes de comunicación. Por ejemplo:
En el universo del lenguaje existen innumerables expresiones y formas de decir las cosas por lo que se
hace necesaria la estandarización o formalización de un lenguaje, de manera que pueda adquirir un
significado real para nosotros.
Si nos preguntamos qué significa lenguaje formal, probablemente lleguemos a analizar primeramente el
término lenguaje, que en palabras sencillas, viene a ser todo tipo de expresión que permite al ser
humano comunicarse con sus semejantes, con el cual podemos expresarnos y dar a conocer nuestras
opiniones, es sin duda importante aclarar, que para poder entendernos entre personas, debemos hablar
un mismo idioma.
Caso contrario podríamos caer en ambigüedades que ocasionaría malos entendidos, por ejemplo, el
movimiento de girar la cabeza de izquierda a derecha o viceversa significa para nosotros en este lado
del mundo “No”, para otros podría significar “Si”, otro ejemplo, es la forma de lectura/escritura lo normal
para nosotros es realizarlo de izquierda a derecha, esto parece obvio, sin embargo no lo es, si
consideramos que hay millones de personas que leen de derecha a izquierda, de arriba abajo o incluso
en diagonal. Si analizamos la forma de escritura en Arabia o China tendríamos que analizar la forma de
lectura, antes de realizarla, de lo contrario podríamos darle un significado muy diferente, como, sucedió
en una publicidad de analgésicos (pastillas) para calmar el dolor de cabeza, se trabajó con las
siguientes imágenes, bajo la premisa: “una imagen habla más que mil palabras”
Para ver trabajos similares o recibir información semanal sobre nuevas publicaciones, visite www.monografias.com
www.monografias.com 2
Para lo que emplearon un cuadro con tres fotografías dispuestas de manera horizontal, en la primera
aparece la imagen de una persona triste, en la segunda una persona tomando la pastilla, y en la tercera
una persona feliz, que si las leemos en este lado del mundo, el significado sería una persona enferma
toma la pastilla y se sana, parece normal que lo entendamos de esta manera, sin embargo no se
imaginaron los resultados devastadores en la comercialización de este producto y el fracaso total,
puesto que en Arabia lo normal es leer de derecha a izquierda, por lo tanto, ellos leyeron en la primera
imagen una persona feliz, luego toma la pastilla, y se pone triste o se enferma. Este problema se dio,
debido a que no se tomaron las previsiones concernientes al contexto donde se realizaría la campaña
publicitaria.
Por lo que intentar llegar a formalizar un lenguaje nos ayudará a su mejor comprensión, consigna o
instrucción a resolver/.
Uno de los pioneros sobre lenguajes y gramáticas fue Avram Noam Chomsky, sin duda la figura más
destacada de la lingüística moderna, tanto por sus fundamentos matemáticos como por sus teorías
sobre el origen y la naturaleza de los lenguajes naturales.
En el campo de la informática, el concepto de Gramática Formal adquirió gran importancia para el
desarrollo de lenguajes de programación, consiguientemente el desarrollo de autómatas y maquinas de
Turing cobró vida en las últimas décadas, fortaleciendo el vínculo entre Electrónica e Informática,
creando máquinas cada vez mas sofisticadas y menos complicadas para el usuario final.
El propósito de este material está dirigido a introducir a los estudiantes universitarios de las ramas de la
Informática, en el fascinante mundo de los lenguajes y la lógica implícita en las máquinas del siglo XXI.
Proporcionando una guía práctica con ejercicios resueltos que pretenden fortalecer el conocimiento de
la teoría de gramáticas y lenguajes formales, en el entendido que cada solución propuesta en este
material, no representa la única solución, existiendo muchas maneras de resolver el mismo ejercicio.
CAPÍTULO I
CONCEPTOS Y DEFINICIONES
Veamos algunos conceptos que nos permitirán conceptualizar la gramática
SÍMBOLO
Es una entidad abstracta, que no se va a definir. Normalmente los símbolos son letras (a,b,c,…z),
dígitos (0,1,2…9) y otros caracteres (+,*,/,-,?...).
Un símbolo también puede estar formado por varias letras o caracteres, como las palabras reservadas
de un lenguaje de programación son símbolos de dicho lenguaje. Ejemplo:
– a,b,c,#,+,-,*, then, begin, end, else, …
VOCABULARIO O ALFABETO
Un vocabulario o alfabeto es un conjunto finito de símbolos, no vacío. Para definir que un símbolo a
pertenece a un alfabeto V, se utiliza la siguiente notación aV.
Los alfabetos se definen por enumeración de los símbolos que contienen, podemos ver los siguientes
ejemplos:
V1={A,B,C,D,E,F,…..,X,Y,Z}
V2={a,b,c,d,0,1,2,3,4,*,#,+}
V3={0,1}
V4={if, then, begin, end, else, a,b,;,=,>}
También se pueden definir las tablas ASCII y EBCDIC como los alfabetos de distintos
ordenadores.
CADENA
Para ver trabajos similares o recibir información semanal sobre nuevas publicaciones, visite www.monografias.com
www.monografias.com 3
Para ver trabajos similares o recibir información semanal sobre nuevas publicaciones, visite www.monografias.com
www.monografias.com 4
cadena vacía, es decir {}, ya que el número de elementos (cardinalidad) de estos dos conjuntos es
diferente.
Cardinal ({ Ø }) = 0
Cardinal ({ }) = 1
PALÍNDROMOS
Cadenas que se leen igual hacia delante, que hacia atrás. Por ejemplo, ORURO
CAPÍTULO II
LENGUAJES Y GRAMÁTICAS
LENGUAJE
Se denomina lenguaje a un conjunto de palabras de un determinado alfabeto.
También un lenguaje es un conjunto de cadenas de símbolos (palabras, oraciones, textos o frases).
Un lenguaje está compuesto por Sintaxis: (gramática), que define las secuencias de símbolos que forman
cadenas válidas de un lenguaje. Y por Semántica, que es el significado de las cadenas que componen un
lenguaje.
Ejemplo 1:
Sintaxis: A
Semántica: es un número natural.
Diferente sintaxis en diferentes lenguajes:
A: natural
A: es un número que pertenece al conjunto de |N={1,2,3..N}
Ejemplo 2:
Sintaxis:
if a=b then write(a, ‘ es igual a ’, b )
else write(a, ‘ es distinto a ’, b )
Semántica:
Si se cumple la condición entonces se muestra un mensaje que ambos números son
iguales.
Caso contrario, se escribe los número son distintos.
Gramática
Chomsky la define como: “Descripción formalizada de las oraciones de un lenguaje. Una gramática genera
o describe un lenguaje.”
DEFINICIÓN FORMAL DE GRAMÁTICA
Una gramática es una cuádrupla:
G = (VT, VN, S, P)
donde:
VT= {conjunto finito de símbolos terminales}
VN={conjunto finito de símbolos no terminales}
S es el símbolo inicial y pertenece a VN
P= {conjunto de producciones o de reglas de derivación}
Todas las cadenas del lenguaje definidas por la gramática están formadas con símbolos del vocabulario
terminal VT. El vocabulario terminal se define por enumeración de los símbolos terminales.
El vocabulario no terminal VN es el conjunto de símbolos introducidos como elementos auxiliares para la
definición de la gramática, y que no figuran en las sentencias del lenguaje.
La intersección entre el vocabulario terminal y no terminal es el conjunto vacío:
{VN} {VT} = {Ø}
El símbolo inicial S es un símbolo no terminal a partir del cual se aplican las reglas de la gramática para
obtener las distintas cadenas del lenguaje.
Para ver trabajos similares o recibir información semanal sobre nuevas publicaciones, visite www.monografias.com
www.monografias.com 5
Las producciones P son las reglas que se aplican desde el símbolo inicial para obtener las cadenas del
lenguaje. El conjunto de producciones P se define por medio de la enumeración de las distintas
producciones, en forma de reglas o por medio de un metalenguaje.
Ej 1: Sea la gramática: 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 gramática están dadas por: ab, aabb, aaabbb, aa…anbb….bn
Por consiguiente el lenguaje que genera esta gramática es el conjunto infinito de instrucciones que se indica
a continuación:
L(G2)={0(3n)1(3n)/n>=1}
Para ver trabajos similares o recibir información semanal sobre nuevas publicaciones, visite www.monografias.com
www.monografias.com 6
SOLUCIÓN
L(G2)={0(3n+1)1(3n+1)/ n>=0}
EJERCICIOS RESUELTOS
1. Sea la gramática definida por
G1= ({S},{a,b},S,P)
Donde:
P={(S aSb), (S ab)}
Determinar el lenguaje que genera.
SOLUCIÓN
L(G1)={anbn/ n>=1}
2. Dadas las siguientes palabras del lenguaje determinar las reglas de producción que las genera.
yxxyx
x
xyyx
(xyy)nx
(yxxy)nx
SOLUCIÓN
G2= ({S,A}, {x,y},S,P)
L(G2)={cadenas que contienen xyy y yxxy intercambiándose y reproduciéndose cualquier número de veces,
y terminado siempre con el símbolo x}
CAPÍTULO III
JERARQUÍA DE LAS GRAMÁTICAS
Para una mejor comprensión las gramáticas han sido clasificadas de acuerdo a particularidades y
restricciones propias, una de ellas y la más acertada es la formulada por Avram Noam Chomsky, quien
clasificó las gramáticas de acuerdo a cuatro tipos, dando origen a la Jerarquía de Chomsky en función de
la forma de reglas de derivación o producción.
Las gramáticas no restringidas Tipo 0
Sensibles al contexto Tipo 1
Independientes del contexto Tipo 2
Gramáticas regulares Tipo 3
La clasificación comienza con un tipo de gramáticas que pretende ser universal, aplicando restricciones a
sus reglas de derivación, se van obteniendo los otros tres tipos de gramáticas. Esta clasificación es
jerárquica, es decir cada tipo de gramática incluye a todos los tipos siguientes.
Los lenguajes que resultan de dichas gramáticas también se identifican con lenguajes de tipo cero, uno, dos
y tres.
A esta jerarquía de lenguaje se le conoce como la jerarquía de chomsky.
Para ver trabajos similares o recibir información semanal sobre nuevas publicaciones, visite www.monografias.com
www.monografias.com 7
GRAMÁTICAS TIPO 0
También llamadas gramáticas no restringidas con estructura de frase. Se caracterizan por:
En la parte izquierda tiene que haber al menos un símbolo no terminal.
Respecto a sus partes derechas de producciones no hay ningún tipo de restricción.
Las reglas de derivación son de la forma:
Siendo (VN VT)+ y (VN VT), es decir la única restricción es que no puede haber reglas
de la forma
donde es la cadena vacía.
Ejemplos de estas gramáticas son todos los ejercicios que hemos visto hasta ahora.
EJEMPLO
Sea la gramática definida por: G= ({S}, {0,1},S,P)
donde
P={(S 000S111), (0S1 01)} .
Determinar el lenguaje que genera.
SOLUCIÓN
L(G)={0(3n+1)1(3n+1)/ n>=0}
GRAMÁTICAS TIPO 1
También llamadas gramáticas sensibles al contexto. Es decir que es importante tomar en cuenta la
ubicación de los símbolos no terminales en la regla de derivación (que preceden y suceden a cada símbolo
Terminal, deben mantener su ubicación en el lado derecho de la regla de producción tal como aparece en la
parte izquierda de la regla de producción).
En este tipo de gramática sus reglas de producción son de la forma:
A
Siendo A VN
, (VN VT) * y
(VN VT)*
Estas gramáticas se llaman sensibles al contexto, pues se puede reemplazar A por siempre que estén en
el contexto …..
EJEMPLOS
La gramática G=({S,A,B}, {a,b}, S, P) cuyas producciones P se muestran a continuación:
S aB
B bAb
bAbcD
cD cAA
A aaA
A b
PROPIEDADES DE LAS GRAMÁTICAS TIPO 1
Propiedad de no decrecimiento.- Las cadenas que se obtienen en cualquier derivación de una
gramática de tipo 1 son de longitud no decreciente, es decir:
Y se puede enunciar como la longitud de la parte derecha de la producción es mayor o igual a la
parte izquierda. Es decir no tiene reglas compresoras.
Se puede demostrar de la siguiente manera:
A
Siendo (VNVT)+, es decir nunca puede ser la cadena vacía, lo que implica que 1 y como |A|
como mínimo vale 1, queda demostrada la propiedad:
A| <= |
Para ver trabajos similares o recibir información semanal sobre nuevas publicaciones, visite www.monografias.com
www.monografias.com 8
Ejercicio 1.
Dado el siguiente lenguaje elabora las reglas de producción
L(G) = { 0n1n / n ≥ 1}
Solución
G = { {S, A}, {0, 1}, S, P }
Reglas de producción:
S → 0SA / 01
1A → 11
Ejercicio 2
Construye una gramática tipo 1 que genere el lenguaje
L = {a(bc)n / n > = 1}
Solución
S→ aB
B → bc B / bc
GRAMÁTICAS TIPO 2
También se denominan gramáticas de contexto libre o libres de contexto.
Sus reglas de producción tan sólo admiten tener un símbolo no terminal en su parte izquierda, es
decir son de la forma:
A
Siendo A VN y (VN VT) +
Si cada regla se representa como un par ordenado (A, ), el conjunto P es un subconjunto del conjunto
producto cartesiano VN x ({VN VT}) +, es decir:
P x ({VN} {VT)+}
La denominación contexto libre se debe a que se puede cambiar A por , independientemente del contexto
en que aparezca A.
EJEMPLOS
Ejemplo 1
La gramática G=({S,A,B}, {a,b}, S, P) cuyas producciones P se muestran a continuación es de tipo
2:
S aB
S bA
Aa
A aS
A bAA
B b
B bS
B aBB
Ejemplo 2
La gramática G=({a,b}, {A,S}, S,P) donde P son las producciones que se muestran a continuación
es de tipo 2.
S aS
S aA
A bA
A b
Ejercicio 1.
Dado el siguiente lenguaje L(G) = { 0n1n / n ≥ 1}
Con las siguientes reglas de producción tipo 1. Convertir a tipo 2
Reglas de producción:
S → 0SA / 01,
1A → 11
Solución
S → 0S1 / 01
Ejercicio 2
Para ver trabajos similares o recibir información semanal sobre nuevas publicaciones, visite www.monografias.com
www.monografias.com 9
L = {a(bc)n / n > = 1}
Solución
S→ aB
B → bc B / bc
GRAMÁTICAS TIPO 3
También denominadas regulares o gramáticas regulares a la derecha comienzan sus reglas de
producción por un símbolo terminal que puede ser seguido o no por un símbolo no terminal, es decir
son de la forma:
A aB
Aa
Donde A, B VN y VT
EJEMPLO
Sea la gramática:
G=({a,b}, {A,S}, S, P)
donde P son las producciones formuladas por:
S aS
S aA
A bA
Ab
Ejercicio 1
Construye una gramática tipo 2 que genere el lenguaje:
L = {a(bc)n / n > = 1}
Solución:
S aB/a
B bC/bc
C cB
CAPÍTULO IV
EJERCICIOS RESUELTOS
1. Construye una gramática tipo0 que genere las cadenas V* que no contengan la secuencia “abc”
Solución:
S aB/bB/cB/dB
B bB/dB/
B aC/dC/
C dD/aC/aD/
D cD/dD/aD/
B bbC
3. Construye una gramática para el vocabulario V= {a,b,c,d} donde todas las cadenas generadas contengan
una única a.
Solución:
S aB/Ba
S bC/cC
B bB/cB/
C bC/cC/a/Cb/Cc
Para ver trabajos similares o recibir información semanal sobre nuevas publicaciones, visite www.monografias.com
www.monografias.com 10
10. Construye una gramática que genere cadenas del alfabeto V=(a,b) que finalicen con b y que no tengan
2 b’s consecutivas.
Solución:
S b/ baAb/aAb
A aA /abA/a/
11. Construye una gramática que genere cadenas del alfabeto {a,b} que finalicen con ba
Solución:
S Aba
A aA/ bA /
12. Construye una gramática que genere cadenas del alfabeto V=(a,b) que no tengan 2 a’s consecutivas.
Solución:
S abA/bAB
A abA/bA/a/b/
A baB
Para ver trabajos similares o recibir información semanal sobre nuevas publicaciones, visite www.monografias.com
www.monografias.com 11
B baB/b
13. Construye una gramática que genere cadenas del alfabeto V=(a,b) que genere el lenguaje:
L(G)={an b n /donde n sea múltiplo de 4}
Solución:
S aaaaAbbbb
A aaaaAbbbb/
14. Construye una gramática que genere cadenas del alfabeto V=(a,b) que genereun número par de aes
Solución:
S aaAbB/ bBAaa/baAaB/abBaA
A aaA/
B bB/
15. Construye una gramática que genere cadenas del alfabeto V=(a,b) que genere un número par de aes y
un número impar de bes.
Solución:
S aaAbB
A Aaa
B bbB/ C
C
16. Construye una gramática que genere cadenas del alfabeto V=(a,b) donde a sea siempre par
Solución:
S AB/ BA
A aaA/ bA/
17. Construye una gramática que genere cadenas del alfabeto V=(a,b) que genere un número impar de aes.
Solución:
S AB/BA
A aC
C aaC/
B bB
18. Construye una gramática que genere cadenas del alfabeto V=(a,b) en la que cada instancia del símbolo
a esté precedida y seguida de al menos una instancia de b. Ejm: bab, babab, bbabbbabbbb.
Solución:
S BaB/ ABaB/ B
B bB/ b
A baA/ b
19. Sea el vocabulario V=(a,b) y la expresión aa*bb*. Indicar el lenguaje que denota y algunas cadenas de
dicho lenguaje.
ab
aab
aaaab
abbbb
abb
aaab
Solución:
L={cadenas que comienzan por una a y continúan con varias o ninguna a, y siguen con una b y
continúan con varias o ninguna b}
20. Construye una gramática tipo 0 y tipo 1 que genere el siguiente lenguaje:
L(G)={cn+2 a n+1 c n /n>=1}
Solución Tipo 0
S ccAaBc
Para ver trabajos similares o recibir información semanal sobre nuevas publicaciones, visite www.monografias.com
www.monografias.com 12
B a/AaBc
aAa Aaa
Ca cc
aA Aa
Solución Tipo 1
S ccCaAD/ cccaac
C cCAD
DA XA
XA XY
XY AY
AY AD
aA aa
Da DZ
DZ DN
DN NM
NM ZD
ZD aD
CA ca
DD cc
CD cc
22. Construye una gramática que genere cadenas de V=(a,b) que no contengan 3 aes consecutivas
Solución:
S AB/BA
A aB/aaB/a
B bB/bA/b
24. Para cada una de los siguientes incisos, proporcione, si es posible, una gramática tipo 3 que defina el
mismo lenguaje. Si en algún caso no es posible justifique.
a) ab* / ba*
Solución:
S a / b / aA/ bB
A bA/ b
B aB/ a
b) (a | b)*c
Solución:
S c/ aS/ bS
c) b*a / a*b
Solución:
S a / b / bA/ aB
A bA/ a
Para ver trabajos similares o recibir información semanal sobre nuevas publicaciones, visite www.monografias.com
www.monografias.com 13
B aB/ b
27. Dado el conjunto de palabras, determine la gramática y el lenguaje que las genera.
bcc, abccc, abbccccc, aabcccc, aabbcccccc, aaaaabccccccc,........
Se pide:
a) Definir un lenguaje mediante reglas de producción.
b) Demostrar con ejemplos las posibles derivaciones de S.
Solución:
V= {a, b, c}, L = {an bm cn+2m | n >=0, m >= 1}
S aSc | A
A bAcc | bcc
29. Escribe la gramática tipo 1 del alfabeto {a, b} que contengan como subcadena 3 aes consecutivas.
Solución:
S aaaA/AaaaA/aaa/Aaaa
A aA/a/ b/ bA
30. Dado el vocabulario V= {a, b}, escribe la gramática tipo 2 que genere el siguiente lenguaje:
L = { anbm m <= n <= 2m ; n, m >=0}
Solución:
S aSb | aaSb | ab
31. Escribe la gramática o reglas de producción tipo 0 que generen el siguiente lenguaje:
L = { anbm n <> m ; n, m >0}
Para ver trabajos similares o recibir información semanal sobre nuevas publicaciones, visite www.monografias.com
www.monografias.com 14
Bibliografía
Alfonseca, M., J. Sancho, M. A. Orga, Teoría de Lenguajes, Gramáticas y Autómatas, Promosoft, 1997.
Cueva L., Juan Manuel, Lenguajes Gramáticas y Autómatas, Segunda Edición, 2001, Universidad de
Oviedo.
Díaz Víctor, Cañete José Miguel, Lenguajes Formales y autómatas, Universidad de Sevilla, 2006
Ferreiro, Emilia y Margarita Gómez Palacio (Comp.) Nuevas perspectivas sobre los procesos de lectura
y escritura. Siglo XXI. Buenos Aires.
H. Contreras, Los fundamentos de la gramática transformacional, México, siglo XXI, 1971.
Hopcroft, J.E., R. Motwani, J. D. Ullman, Introducción a la teoría de autómatas, lenguajes y computación
(2ª Edición), Prentice-Hall, 2000.
J. Nivette: Principios de gramática generativa. Madrid, Fragua, 1973.
Vidal Lamiquiz, Lingüística Española. Publicaciones de la Universidad de Sevilla, 1973.
Autores
Jhenny Castillo Tapia Ronald Yeber Cruz Delgado
Licenciada en Informática Ingeniero en Informática
Especialista en Docencia Universitaria Consultor en Ingeniería Informática
Docente en la carrera de Ingeniería Desarrollo de Software, Sistemas, Redes de
Informática Computadoras y Sistemas Telemáticos.
Facultad del Gran Chaco Tarija- Bolivia
Yacuiba- Tarija- Bolivia
Autores:
Lic. Jhenny Castillo Tapia
jhennyct@yahoo.es
Ing. Ronald Yeber Cruz Delgado
Bolivia 2008
Para ver trabajos similares o recibir información semanal sobre nuevas publicaciones, visite www.monografias.com