lenguajes y autómatas 1 - apuntes unidad 02
DESCRIPTION
Apuntes de la Unidad 02 de la asignatura Lenguajes y Autómatas 1 impartido en el Instituto Tecnológico de Tuxtla Gutiérrez, Chiapas. México.TRANSCRIPT
-
Lenguajes y Autmatas 1 SCD-1015
Mtro. Christian Mirsha Velasco Castilla 24
Unidad 2. Expresiones Regulares.
Lenguajes1 Regulares.
Continuando con la Jerarqua de Chomsky vista en la figura 3, los Lenguajes Regulares son
interesantes desde el punto de vista prctico porque pueden ser usados para especificar la
construccin de Compiladores e Intrpretes, especialmente el componente denominado
Analizador Lxico (ver figura 9) programas que analizan un texto y extraen los lexemas (o
unidades lxicas) que hay en el mismo.
Los lenguajes regulares se llaman as porque sus cadenas de texto que las integran contienen
regularidades o repeticiones de ciertos componentes, por ejemplo, el lenguaje L siguiente:
L = {ab, abab, ababab, abababab,}
En este ejemplo se aprecia que las palabras de L son simplemente repeticiones de ab cualquier
nmero de veces. Aqu la regularidad consiste en que las palabras contienen ab algn nmero
de veces. Otro ejemplo sera el lenguaje M siguiente:
M = {abccc, abab, abccc, ababc,}
La regularidad en el lenguaje M consiste en que sus palabras comienzan con repeticiones de ab
seguidas o no de repeticiones de c. Similarmente es posible definir muchos otros lenguajes
basados en la idea de repetir esquemas simples. Esta es la idea bsica en la formacin de
lenguajes regulares.
Adicionalmente a las repeticiones de esquemas simples, tambin se consideran que los lenguajes
finitos son regulares. Por ejemplo, el lenguaje N = {anita, lava, la, tina} es regular.
Finalmente, al combinar lenguajes regulares (unindolos o concatenndolos), tambin se obtiene
otro lenguaje regular. Por ejemplo, el lenguaje O = {a, b, c} unindolo con el lenguaje P = {x, y, z}
hace que se forme un nuevo conjunto ; concatenndolos forman un nuevo
conjunto .
Definicin formal de un lenguaje regular.
Un lenguaje L es regular si y slo si se cumple al menos una de las condiciones siguientes:
L es finito.
L es la unin o la concatenacin de otros lenguajes regulares R1 y R2, o L =
R1R2 respectivamente.
1 Vea la seccin 1.3. Lenguajes.
-
Lenguajes y Autmatas 1 SCD-1015
Mtro. Christian Mirsha Velasco Castilla 25
L es la Cerradura de Kleene2 de algn lenguaje regular, L = R*.
Esta definicin permite construir expresiones regulares en la notacin de conjuntos que
representan a los lenguajes regulares. Tambin esta definicin permite conocer las operaciones
fundamentales a las que se hace referencia en la seccin 2.2 del presente documento.
2.1 Definicin formal de una expresin regular.
Las expresiones regulares denotan lenguajes. Las expresiones regulares sirven para describir
lenguajes regulares, es decir, son un metalenguaje3 y la notacin de conjuntos es la herramienta
para hacerlo.
Las expresiones regulares para la construccin de compiladores e intrpretes proveen una manera
muy flexible de buscar o reconocer cadenas de texto. Numerosos editores de texto y otras
utilidades dentro de ellas utilizan las expresiones regulares para buscar y reemplazar patrones en
un texto.
Qu es un Patrn? Un patrn es un tipo de sucesos recurrentes, es decir, que tienen el mismo
comportamiento un nmero casi ilimitado de veces. Por ejemplo, los patrones de comportamiento
de las personas para cuando se levantan luego de dormir primero se asean, desayunan, van al
trabajo, comen, siguen trabajando, salen de trabajar, van a casa, se asean, cenan y a dormir. Esta
son una serie de actividades que se realizan de manera cotidiana. Son elementos que se repiten de
manera predecible. Puede ser una plantilla de documentos, una plantilla de corte y confeccin que
se utilizan para generar objetos o partes de ellos. Los patrones ms bsicos se basan en
repeticiones y periodicidad. Una expresin regular define un patrn; una palabra o cadena de
texto pertenece a un lenguaje definido por esa expresin regular si y solo si se sigue el patrn.
Una expresin regular que represente un lenguaje debe cumplir dos condiciones:
1. Correcta. Todas las palabras representadas por la expresin regular deben ser parte del
lenguaje.
2. Completa. Toda palabra del lenguaje debe ser representada por la expresin regular.
Para definir expresiones regulares se requiere del conocimiento de ciertas operaciones que
afectan a los conjuntos que representan a los lenguajes. Vea la seccin 2.2.
Las expresiones regulares son simplemente frmulas cuyo propsito es representar cada una de
ellas a un conjunto de cadenas de caracteres que se forman con respecto al lenguaje y alfabeto en
que se basan.
2 Vea la seccin 1.3. Lenguajes.
3 Un lenguaje para hablar acerca de otro lenguaje. El lenguaje que se describe es llamado el lenguaje objeto
y el metalenguaje puede ser el mismo lenguaje objeto. Por ejemplo, se utilizan los elementos del espaol para describir al espaol mismo.
-
Lenguajes y Autmatas 1 SCD-1015
Mtro. Christian Mirsha Velasco Castilla 26
La expresin regular ms bsica est sealada por el smbolo representa al conjunto
vaco .
Para comprender intuitivamente la manera en que las expresiones regulares representan
lenguajes, considere el proceso de verificar si una palabra dada pertenece o no al lenguaje en
cuestin. Se usar la palabra empata como una manera simple de indicar este escenario.
La palabra vaca empata con la expresin regular .
La palabra vaca no debe confundirse con un lenguaje vaco ya que el nmero de
elementos o cardinalidad de estos dos elementos es diferente. Para el primero, la cardinalidad es
uno, mientras que para el segundo es cero.
Una palabra de una letra como {a} empata con una expresin regular consistente en la
misma letra, en este caso a.
Luego, una palabra = , esto es, que se encuentra formada por los caracteres que
representan tanto como empatan con la expresin
Cuando la expresin regular es de la forma , puede empatar con una palabra
cuando sta empata con algn elemento dentro del conjunto resultado de la unin entre
ambos conjuntos, la expresin + denota tal cuestin.
Una palabra empata con una expresin P* cuando tal puede ser dividida en segmentos
= 12n de manera tal que cada una de tales partes empata con el objeto de estudio
en cuestin.
Por lo tanto, se generan los siguientes teoremas:
1. (el conjunto vaco)
2. = {} (la palabra vaca)
3.
4.
5.
6.
Para calcular el significado de una expresin regular, se aplica en ella las funciones anteriores y
eliminando parntesis para darle ms legibilidad al programa.
Ejemplo. Para obtener el significado de una expresin, se aplica siempre la funcin J. La expresin:
.
, es una parte de esta expresin.
, es una parte de esta expresin.
= , usando la ecuacin 4.
, usando la ecuacin 3 y 6.
, usando la ecuacin 5.
, usando la ecuacin 3 y simplificando.
-
Lenguajes y Autmatas 1 SCD-1015
Mtro. Christian Mirsha Velasco Castilla 27
Por lo tanto, ste es el lenguaje que permite que las palabras sobre {a, b} que terminan en a.
Con el objeto de hacer la notacin menos pesada puede simplificar las expresiones regulares
siguiendo estos lineamientos:
Omita las comillas dobles que denotan los conjuntos regulares.
Elimine las llaves y convierta a parntesis.
Elimine los parntesis innecesarios. Se supone que la precedencia de operadores en el
orden establecido en la seccin 2.2 es vlido.
Eventualmente elimine el operador de concatenacin suponiendo que ste se encuentra
explcito entre dos subexpresiones continuas.
2.2 Operaciones.
Para comprender la notacin de las expresiones regulares, es necesario que repase las tres
operaciones sobre lenguajes que representan a los operadores de las expresiones regulares. Las
operaciones bsicas que pueden hacerse sobre los lenguajes son:
La UNIN de dos conjuntos regulares L y M se designa como que muestra al
conjunto resultante de la unin de todas las cadenas de texto del conjunto regular L con
todas las cadenas de texto del conjunto regular M. Para las expresiones regulares
ALTERNATIVA es el nombre utilizado para esta operacin.
Ejemplo: Si el conjunto regular L = {001, 10, 111} y el conjunto regular M = {, 001}, entonces la
UNIN entre estos forman a un nuevo conjunto regular = {, 001, 10, 111}. Su segundo
modo de funcionamiento es que si y son expresiones regulares, | es una expresin regular
de manera tal que | = , es decir, puede aparecer como resultado o indistintamente.
De ah lo de ALTERNATIVA.
La CONCATENACIN de dos conjuntos regulares L y M es el conjunto de cadenas de texto
que pueden formarse tomando cualquier cadena de L y concatenndola con cualquier
cadena de M resultando en una cadena de L seguida inmediatamente de una cadena de M
como si fuesen una sola. Para designar esta operacin el smbolo () es utilizando para
representar esta operacin. Sin embargo, en las expresiones regulares, el smbolo no se
utiliza. Si y son expresiones regulares entonces es una expresin regular
concatenada.
Ejemplo: Si el conjunto regular L = {001, 10, 111} y M = {, 001}, entonces la CONCATENACIN
entre estos conjuntos forman uno nuevo L M = {001, 10, 111, 001001, 10001, 111001}. El
smbolo significa vaco por lo que cualquier elemento concatenado con l da como resultado el
mismo elemento. Vea la tabla 1.
-
Lenguajes y Autmatas 1 SCD-1015
Mtro. Christian Mirsha Velasco Castilla 28
Tabla 1. Concatenacin de conjuntos y sus elementos.
Elemento de L Elemento de M Elemento resultante de L M
001 001
10 10
111 111
001 001 001001
10 001 10001
111 001 111001
La CLAUSURA o CERRADURA DE KLEENE de un conjunto regular N se designa mediante N*
y representa el total de cadenas de texto que se pueden formar tomando cualquier
nmero de cadenas de N, posiblemente con repeticiones (es decir, la misma cadena se
puede seleccionar ms de una vez) y concatenando todas ellas. Por ejemplo, si N = {0, 1},
entonces N* es igual a todas las cadenas de 0 y 1 repitindose de manera infinita, es decir,
N* = {, 0, 1, 00, 01, 10, 11, 000, 001, 010, 011, 100, 101, 110, 111,} De igual manera, si O
= {a, bc} entonces O* = {, a, bc, abc, aabcbc, aaabcbcbcbc, aaaabcbcbcbcbcbc,} Observe
una particularidad, dentro de los elementos de O existe una palabra denominada bc.
Para formar la cerradura se utiliza bc como un elemento indivisible, es decir, b y c no
son elementos independientes, son uno slo. De manera tal que si se utilizan deben serlo
de manera conjunta. Concatenar a y bc cinco veces cada uno da como resultado:
aaaaabcbcbcbcbc bcbcbcbcbcaaaaa abcabcabcabcabc bcabcabcabcabca.
Observe que adems de las cadenas de texto formadas, tambin se agrega a la palabra
vaca como parte del conjunto.
Existe un caso muy particular que realmente no es una operacin sino una derivacin de la
Cerradura de Kleene. Se le denomina POTENCIA. La potencia de un conjunto regular consiste en la
concatenacin de los elementos del conjunto consigo mismos i veces}. Observe que si L0 dado L =
{0, 1}, el resultado de esta accin es una cadena vaca . Si L1 el resultado es {0, 1}. Si L2 el
resultado es {00, 01, 10, 11}, si L3 el resultado es {000, 001, 010, 011, 100, 101, 110, 111}. En
ocasiones se requiere excluir la cadena vaca del conjunto de cadenas de texto resultante. El
conjunto de cadenas no vacas de un conjunto regular L se denota como L+ o CIERRE POSITIVO.
Las expresiones regulares sirven para abreviar la descripcin completa de los conjuntos regulares:
El conjunto regular {} es representado simplemente por , es decir, denota al lenguaje
de la cadena .
Las operaciones que se ejecutan sobre los conjuntos regulares: Unin, Concatenacin y
Cerradura de Kleene tambin se aplican sobre las expresiones regulares con los
-
Lenguajes y Autmatas 1 SCD-1015
Mtro. Christian Mirsha Velasco Castilla 29
operadores + (en otros estudios se utiliza el smbolo |), yuxtaposicin4 (representado con
el smbolo o no) as como *, respectivamente.
Por ejemplo, la siguiente relacin muestra los equivalentes que existen entre los conjuntos
regulares que definen lenguajes y sus expresiones regulares que las norman. Vea la tabla 2.
Tabla 2. Equivalencias entre las operaciones sobre conjuntos y expresiones regulares.
Conjunto regular original Expresin regular equivalente
{}
{0} 0
{01} = {0}{1} 001
{0, 1} = 0 + 1 0|1
{1, 2}{001} = (1 + 2)001 (1|2)001
{110}* {0, 1} (110)*(0 + 1) (110)*(0|1)
{10, 111, 111010}* =
(10 + 111 + 111010)* (10|111|111010)*
En la construccin de expresiones regulares se permite el uso de parntesis para indicar la
precedencia de operadores, pero cuando no se utilizan hay que tener en cuenta el orden de
precedencia de los operadores. Sin embargo, en ocasiones las expresiones regulares a menudo
contienen pares innecesarios de parntesis. Tal vez sea necesario eliminar ciertos pares de
parntesis, si se adoptan las siguientes convenciones:
El operador unario * tiene la precedencia ms alta y es asociativo a la izquierda, ya sea
cerradura completa como nicamente positiva.
La concatenacin tiene la segunda precedencia ms alta y es asociativa a la izquierda.
Por ltimo, se aplican todos los operadores de unin + (alternativa con el smbolo barra
vertical |). Tiene la precedencia ms baja y es asociativo a la izquierda. Su significado es O,
por ejemplo: a|b permite seleccionar entre la letra a o la letra b.
2.2.1 Ejemplos de alfabetos, lenguajes y expresiones regulares.
Ejemplo: Encontrar una expresin regular para el lenguaje en {a, b}* en el que inmediatamente
antes de toda b aparezca una a.
Solucin: Si construimos cadenas de texto en donde antes de toda b aparezca una a entonces
las siguientes cadenas son vlidas:
4 Yuxtaposicin proviene de la palabra en latn iuxta que significa junto a. No utiliza ningn operador
visible. Si el elemento HO se yuxtapone con LA se forma el elemento HOLA.
-
Lenguajes y Autmatas 1 SCD-1015
Mtro. Christian Mirsha Velasco Castilla 30
abababab.
ababab.
abab.
a.
ab.
aab.
aabaab.
aaab.
aaabaaab.
aaaab.
aaaabaaaab.
abaabaaabaaaababaabaaabaaaab.
Como puede observar, la letra a puede repetirse muchas veces pero b slo aparece una sola
vez despus de aparecer una letra a. Esto quiere decir que la palabra bb para este lenguaje no
es posible construirla. La regla indica que nicamente b aparece luego de una a.
La expresin regular entonces queda como (a + ab)*, que indica que a puede aparecer muchas
veces (el asterisco permite ello) que pueda aparecer ab muchas veces que la combinacin
entre muchas a y muchos ab pueda surgir. Estas alternativas son sealadas por el smbolo +.
Una solucin aceptable de las expresiones regulares debe de tener dos caractersticas:
Correcta. Las palabras que represente la expresin regular propuesta deben satisfacer la
descripcin del problema (por ejemplo, una solucin a*(a + b)* no es adecuada porque
representa algunas palabras, como abb, que no satisfacen la condicin de que toda b
est inmediatamente precedida por una a.
Completa. La expresin regular propuesta debe representar a todas las palabras que
satisfagan a una condicin. As para el problema del ejemplo, la solucin (ab)* no es
adecuada porque hay palabras tales como aab pertenecientes al lenguaje, que no son
representadas por dicha expresin regular.
Ejemplo: Obtener una expresin regular que represente al lenguaje en {a, b, c} en el que las
palabras contienen exactamente una vez dos b contiguas. Por ejemplo, las palabras aabb y
babb pertenecen a este lenguaje, pero no aaba, abbba ni bbabb.
Solucin: Para resolver este problema se expresa primero la estructura de la expresin regular de
la manera siguiente:
-
Lenguajes y Autmatas 1 SCD-1015
Mtro. Christian Mirsha Velasco Castilla 31
Se puede ver que aparecen de entrada las dos b contiguas solicitadas por el ejercicio. Ahora, el
subproblema es determinar que expresiones regulares les competen a los contextos sealados.
El lenguaje del contexto 1 comprende a las palabras que no contienen bb y adems no terminan
en b. Si eso pasa, entonces quedaran bbb lo cual ya no cumple el objetivo del problema. Esto
es equivalente a decir que toda b est seguida de una a o de una c. La expresin regular del
contexto 1 puede ser entonces:
Los detalles se representan por los puntos suspensivos. Lo que falta por considerar es que puede
haber cualquier cantidad de a o c en el contexto 1, por lo que dicho contexto queda as:
Similarmente se pueden obtener la expresin para contexto 2, que unindola con la anterior da la
solucin del problema:
Un importante elemento de metodologa consiste en transformar los enunciados de lenguajes de
manera que sean ms fcilmente representables por una expresin regular. En particular, los
enunciados negativos del tipo las palabras que no contengan bb son un poco complejas en su
estructuracin, porque en las expresiones regulares no hay ningn operador para representar tal
cuestin. En consecuencia, es necesario convertir un enunciado sobre lo que no se permite en otro
enunciado sobre lo que s se permite. Por ejemplo, si en un lenguaje las palabras no deben
contener la cadena bb, qu es lo que s pueden contener? Aqu se puede hacer un anlisis
considerando que se puede tener una b sola, o tambin seguida de una a. Como hay dos
casos, se puede pensar en utilizar el operador + para combinar esos casos y as en adelante.
Ejemplo: Obtener una expresin regular que represente el lenguaje en {a, b} tal que si una palabra
contiene la subcadena aa, entonces no debe tener bb.
Solucin: Para iniciar esta solucin se establece la siguiente estructura:
Para que las palabras no contengan aa, pueden contener cualquier secuencia con b, o bien
secuencias en que toda a est separada de otra a por lo menos con una b. Como la cantidad
de a es cualquiera, necesariamente se debe hacer intervenir a una Cerradura de Kleene. Esto
dar la siguiente estructura:
-
Lenguajes y Autmatas 1 SCD-1015
Mtro. Christian Mirsha Velasco Castilla 32
Una idea para precisar ms esta estructura sera pensar que antes y despus de la a debe haber
una b, como en la expresin (b + bab)*. Aunque esta expresin regular es correcta, no es
completa pues hay palabras como ab que no son representadas por ella. Entonces se puede
analizar que despus de la a est la b que la separa de otras eventuales a definiendo as una
nueva estructura:
Ahora bien, si se analiza en qu puede aparecer al inicio y al final de una palabra, la subexpresin
(b + ab)* por s misma ya es capaz de representar palabras que comiencen ya sea con a o con
b por lo que se puede omitir el lado izquierdo, en cambio no es capaz de representar palabras
terminadas con a como por ejemplo, la palabra ba. Hay que aadir esta posibilidad pero si se
hace que el contexto derecho sea a se excluyen palabras tales como ab. Entonces, el contexto
derecho puede ser a o b, que se resuelve con una expresin a + b, dando como resultado:
Pero an esta expresin presenta un problema, que es el no poder representar a la palabra vaca.
Esto puede resolverse de manera tal que si se observa que la expresin (b + ab)* ya representaba
palabras que terminen en b entonces completar la solucin consiste en agregar una a o nada
en absoluto, quedando la expresin regular como:
Con esta expresin las siguientes cadenas son vlidas:
b
bbbbb
ab
ababababab
bab
bbbbbababababab
ba
bbbbba
abababababa
baba
bbbbbabababababa
a
Para complementar la expresin regular y de manera similar, el contexto de no bb es formulado:
-
Lenguajes y Autmatas 1 SCD-1015
Mtro. Christian Mirsha Velasco Castilla 33
Ejemplo: Sea el vocabulario {a, b} y su expresin regular aa*bb*, indique el lenguaje que denota y
algunas cadenas de dicho lenguaje.
Solucin: Algunas cadenas que pueden formarse son:
ab
aab
abb
aaaaaab
abbbbbb
Esto quiere decir que el lenguaje que describe es: cadenas que inician con una a y continan
con varias o ninguna de ellas para terminar con una o varias b.
Ejemplo: Sea el vocabulario {0, 1}, la expresin regular 1(01)* denota el conjunto de cadenas que
empiezan por 1 y van o no seguidas de una o varias cadenas 01. Obtenga algunas cadenas.
Solucin: Las cadenas que pueden producirse con esta expresin regular son:
1
101
10101010101
Ejemplo: Sea el vocabulario {0, 1}, la expresin regular (0 + 1)+ denota el conjunto de nmeros
base 2. Genere algunas cadenas.
Solucin: Las cadenas que pueden producirse con esta expresin regular son:
0
1
01
000111
010101
111000
101010
000000
111111
Ejemplo: Sea el vocabulario {0, 1, 2}, la expresin regular (0 + 1 + 2)+ denota el conjunto de
nmeros base 3. Genere algunas cadenas.
-
Lenguajes y Autmatas 1 SCD-1015
Mtro. Christian Mirsha Velasco Castilla 34
Solucin: Algunas de las cadenas que pueden producirse con esta expresin regular son:
000
001
002
010
011
012
020
021
022
100
100
101
102
110
111
112
120
121
122
Ejemplo: Se requiere una expresin regular para el conjunto de cadenas que constan de 0 y 1
alternos.
Solucin: Primero se desarrolla una expresin regular para el lenguaje formado por una sola
cadena 01. Se puede luego emplear al operador asterisco para obtener una expresin para todas
las cadenas 01010101.
La regla bsica de las expresiones regulares dice que 0 y 1 son expresiones que representan
los lenguajes {0} y {1}, respectivamente. Si se concatenan las dos expresiones, se obtiene una
expresin regular para el lenguaje {01}, esta expresin es 01. Como regla general, se requiere
una expresin regular para el lenguaje formado por una sola cadena , utilizando la misma
cadena como una expresin regular.
Ahora se obtienen todas las cadenas formadas por cero o ms ocurrencias de 01 utilizando la
expresin regular (01)*, el asterisco afecta a ambos caracteres. Sin embargo, no es an el lenguaje
buscado ya que slo incluye aquellas cadenas formadas por 0 y 1 alternos que comienzan por
0 y terminan con 1. Tambin se necesita considerar la posibilidad de que exista un 1 al
principio y un 0 al final de cada cadena. Un mtodo sera construir tres expresiones regulares
que manejasen estas opciones. Es decir 0(10)* se puede emplear para las cadenas que comienzan
-
Lenguajes y Autmatas 1 SCD-1015
Mtro. Christian Mirsha Velasco Castilla 35
y terminan con 0 y 1(01)* para las cadenas que comienzan y terminan con 1. La expresin
regular completa es:
Observe que se utiliza el operador + para obtener la unin de los cuatro lenguajes que
proporcionan todas las cadenas con ceros y unos alternos. Una manera alterna de especificar tal
expresin regular es:
2.3 Aplicaciones con problemas reales.
Las expresiones regulares son la base o la materia prima de los Autmatas5. Estas expresiones
algebraicas proporcionan algo que los Autmatas no pueden ofrecer: una manera declarativa para
expresar las cadenas de texto que se desean aceptar luego de ser procesadas. Las expresiones
regulares sirven como lenguaje de entrada de muchos sistemas que manipulan cadenas de texto.
Por ejemplo, el comando de bsqueda de informacin grep de UNIX o comandos equivalentes
para localizar cadenas en los exploradores web o en los sistemas de formato de texto. Estos
sistemas utilizan una notacin de tipo expresin regular para describir los patrones que el usuario
desea localizar en los archivos.
Generadores de analizadores lxicos. LEX o FLEX son programas de distribucin gratuita. Un
analizador lxico es el componente de un compilador que divide el programa fuente en unidades
lgicas o sintcticas formadas por uno o ms caracteres que tienen un significado. Entre las
unidades lgicas o sintcticas se incluyen las palabras clave, identificadores, y signos matemticos,
por ejemplo. Un generador de analizadores lxicos acepta descripciones de las formas de unidades
lgicas, que son principalmente expresiones regulares.
Un problema comn en la programacin de computadoras es el de tener la seguridad de que los
datos de entrada de un programa son correctos. Por ejemplo, si se espera tener un entero sin
signo como dato de entrada y el usuario confunde uno de los dgitos con un carcter no numrico,
se puede dar todo tipo de datos impropios, desde una terminacin abnormal hasta el clculo de
resultados incorrectos. La programacin cuidadosa pretende construir un programa a prueba de
balas, incluyendo unas rutinas de entrada que analicen la informacin introducida por el usuario
y, de alguna forma, prevenir que se aplique informacin incorrecta al programa.
La Teora de la Gramtica y Lenguajes Formales son una herramienta matemtica que permite
abordar con rigor el diseo de lenguajes de programacin. Gracias a ellos existen tales
generadores de programas que normalmente la industria de Tecnologas de la Informacin utiliza
para automatizar procesos. Es tal su utilidad que la Inteligencia Artificial la necesita para crear las 5 Consulte la unidad 3 del presente documento.
-
Lenguajes y Autmatas 1 SCD-1015
Mtro. Christian Mirsha Velasco Castilla 36
aplicaciones de Procesamiento de Lenguajes Naturales (comprensin, generacin y traduccin) as
como el Reconocimiento del Habla. Junto con la Teora de Autmatas (sistemas que reciben
informacin, la transforman y producen otra que se transmite al entorno) se tiene un amplio
campo de aplicacin:
Lgica de Circuitos Electrnicos Secuenciales.
Teora de Control de Sistemas.
Teora de la Comunicacin.
Arquitectura de Computadoras.
Redes Conmutadas y Codificadas.
Reconocimiento de Patrones.
Redes Neuronales.
Reconocimiento y Procesado de Lenguajes de Programacin.
Traduccin de Lenguajes.
Teora de Lenguajes Formales.
En esta asignatura, los Lenguajes y Autmatas son los elementos necesarios para la creacin de
traductores, procesadores de texto, compiladores e intrpretes; herramientas necesarias para la
formulacin de lenguajes de programacin.