Está en la página 1de 8

Teoría

de autómatas
y lenguajes
formales I
Joan Vancells i Flotats (coordinador)

PID_00216108

Material docente de la UOC


© FUOC • PID_00216108 2 Teoría de autómatas y lenguajes formales I

Joan Vancells i Flotats Enric Sesa i Nogueras

Licenciado en Informática por la Licenciado en Informática por


Universidad Politécnica de Cataluña. la Universidad Politécnica de
Profesor y jefe del Departamento Cataluña y profesor de asignaturas
de Lenguajes y Sistemas de lógica en la Facultad de
Informáticos de la Escuela Informática de dicha universidad.
Politécnica Superior de la Actualmente es profesor y director
Universidad de Vic. Codirector del del Servicio Informático y
curso de posgrado “Orientación Telemático de la Escuela
a objetos, diseño de aplicaciones Universitaria Politécnica 
cliente/servidor e Internet” de Mataró.
de la citada universidad.

Tercera edición: septiembre 2014


 Joan Vancells i Flotats, Enric Sesa i Nogueras
Todos los derechos reservados
de esta edición, FUOC, 2014
Av. Tibidabo, 39-43, 08035 Barcelona
Diseño: Manel Andreu
Material realizado por Oberta UOC Publishing, SL
Depósito legal: B-14.599-2014

Ninguna parte de esta publicación, incluido el diseño general y la cubierta, puede ser copiada,
reproducida, almacenada o transmitida de ninguna forma, ni por ningún medio, sea éste eléctrico,
químico, mecánico, óptico, grabación, fotocopia, o cualquier otro, sin la previa autorización escrita
de los titulares del copyright.
© FUOC • PID_00216108 3 Teoría de autómatas y lenguajes formales I

Introducción

La informática teórica (que también recibe el nombre de teoría de la compu-


tación) es una disciplina que crea y explora fundamentos teóricos en busca de
las ideas que permitan el posterior desarrollo de los sistemas informáticos. Se
puede considerar una rama de las matemáticas, por el hecho de que utiliza sus
métodos, pero con un objetivo muy concreto: conseguir mejores sistemas de
computación y clasificar los problemas de acuerdo con su dificultad al ser com-
putados por diferentes modelos.

Se puede considerar que la informática teórica nace a partir de cuestiones que


se planteaban en la lógica matemática hacia principios de siglo. Es preciso des-
tacar que una buena parte de la teoría que engloba la informática teórica ya
estaba del todo establecida cuando aparecieron los primeros ordenadores.

Tradicionalmente, se distinguen dos grandes campos en la informática teóri-


ca: la teoría de lenguajes formales, por un lado, y las teorías de la calculabili-
dad y de la complejidad, por otro.

En esta asignatura presentamos una introducción a la teoría de lenguajes for-


males tal como quedó establecida en los años cincuenta por un grupo de ma-
temáticos, lógicos y lingüistas. Entre éstos debe destacarse a Noam Chomsky,
que propuso una clasificación de los lenguajes formales que todavía se man-
tiene vigente. De hecho, estudiaremos las dos clases de lenguajes formales que
ocupan el lugar más bajo en su jerarquía: los lenguajes regulares y los lengua-
jes incontextuales.

A pesar de que el objetivo inicial de Chomsky era el lenguaje “natural” (el len-
guaje que utilizamos para comunicarnos) y su formalización, enseguida se vio
que la teoría podía ser de gran valor para la informática. Las dos clases de len-
guajes citadas* se pueden usar para describir y definir la sintaxis de los lengua-
* Podríamos hablar sólo de los
lenguajes incontextuales, ya que
jes de programación. Esta teoría pasaba a ser el fundamento del diseño de incluyen los lenguajes regulares.
compiladores (traducción de lenguajes formales).

El lenguaje natural es el que ha evolucionado con el paso del tiempo para su


uso en la comunicación humana. Su evolución no tiene en cuenta reglas gra-
maticales formales, las reglas se desarrollan a posteriori en un intento de expli-
car y no determinar la estructura del lenguaje. En cambio, el lenguaje formal
está definido por reglas preestablecidas y, por tanto, se ajusta con rigor a di-
chas reglas.

Básicamente, hablaremos de formalización de lenguajes, de las máquinas


abstractas (o autómatas) que reconocen estos lenguajes (que determinan si
© FUOC • PID_00216108 4 Teoría de autómatas y lenguajes formales I

una palabra pertenece o no al lenguaje) y de las gramáticas que generan estos


lenguajes: como veremos, tres piezas que encajarán perfectamente en una teo-
ría redonda.

La asignatura se ha organizado en tres módulos didácticos:

• “Alfabetos, palabras y lenguajes”

• “Autómatas finitos y lenguajes regulares”

• “Gramáticas incontextuales y autómatas con pila”

El primer módulo didáctico introduce los conceptos y herramientas básicas


para poder trabajar con lenguajes formales. La base matemática utilizada en
estas definiciones será la teoría de conjuntos. Todas estas definiciones servirán
ya para el resto de los módulos.

En el segundo módulo se caracteriza completamente la clase más simple de la


jerarquía de lenguajes de Chomsky: los lenguajes regulares. Se presentan los
autómatas finitos como la máquina abstracta que reconoce este tipo de len-
guajes, se observan sus diferentes modalidades y las relaciones que se estable-
cen entre ellas, y se dan las pautas necesarias para obtener cualquier tipo de
autómata finito. Es preciso destacar una propiedad importante que es exclusi-
va de este nivel de jerarquía: la existencia de un único autómata mínimo para
todo autómata (con las repercusiones que este hecho comporta).

En este módulo también estudiaremos la equivalencia entre autómatas finitos,


lenguajes regulares y expresiones regulares. Y para terminar, se dan herramien-
tas para demostrar la no pertenencia de un lenguaje a esta clase, ya que se evi-
dencia que hay lenguajes que quedan fuera de la misma.

En el tercer y último módulo caracterizamos la clase que se sitúa justo por en-
cima de los lenguajes regulares: los lenguajes incontextuales. Se introduce el
concepto de gramática generativa y, en concreto, de gramática incontex-
tual, como aquella que genera los lenguajes de esta clase. Se proporcionan mé-
todos para transformar las gramáticas en formatos diversos con diversas
finalidades. De forma paralela a la clase de los lenguajes regulares, se introduce
la máquina abstracta que reconoce lenguajes incontextuales: el autómata con
pila. Acabamos con un repaso de las propiedades de los lenguajes incontex-
tuales, entre las cuales contamos con una que nos permite demostrar la incon-
textualidad de un lenguaje.

Hemos intentado introducir todas las ideas desde una doble vertiente: intuitiva
y formal, con numerosos ejemplos y ejercicios, para hacerlas más claras y com-
prensibles. Esperamos que todas estas enseñanzas os sean de provecho.
© FUOC • PID_00216108 5 Teoría de autómatas y lenguajes formales I

Objetivos

En los materiales didácticos de esta asignatura, el estudiante encontrará las he-


rramientas indispensables para alcanzar los siguientes objetivos:

1. Expresar lenguajes de manera formal.

2. Construir autómatas finitos deterministas y mínimos que reconozcan len-


guajes regulares, y autómatas con pila que reconozcan lenguajes incontex-
tuales.

3. Saber identificar y razonar si un lenguaje determinado pertenece a la clase de


los lenguajes regulares, a la clase de los lenguajes incontextuales o bien a nin-
guna de las dos.

4. Conocer la relación entre lenguajes, gramáticas y autómatas, tanto en la clase


de los lenguajes regulares como en la clase de los lenguajes incontextuales, y
saber pasar de la una a la otra.

5. Saber expresar una gramática en cualquiera de las formas simplificadas y nor-


males más habituales.

6. Tener una idea clara de las propiedades principales que caracterizan los len-
guajes regulares y los lenguajes incontextuales.
© FUOC • PID_00216108 6 Teoría de autómatas y lenguajes formales I

Contenidos

Módulo didáctico 1
Alfabetos, palabras y lenguajes
Enric Sesa i Nogueras
1. Elementos básicos: alfabetos, palabras y lenguajes
2. Operaciones sobre palabras
3. Operaciones sobre lenguajes
4. Definición de lenguajes

Módulo didáctico 2
Autómatas finitos y lenguajes regulares
Enric Sesa i Nogueras
1. Autómatas finitos deterministas y lenguajes regulares
2. Autómatas finitos indeterministas
3. Operaciones con autómatas finitos
4. Minimización de autómatas finitos
5. Expresiones regulares
6. Determinación de la no-regularidad de un lenguaje: el lema del bombeo

Módulo didáctico 3
Gramáticas incontextuales y autómatas con pila
Joan Vancells i Flotats
1. Conceptos introductorios
2. Árbol de derivación y ambigüedad
3. Verificación de gramáticas
4. Simplificación de una gramática
5. Formas normales
6. Autómatas con pila
7. Propiedades de los lenguajes incontextuales
© FUOC • PID_00216108 7 Teoría de autómatas y lenguajes formales I

Bibliografía

Brookshear, J.G. (1993). Teoría de la computación. Lenguajes formales, autó-


matas y complejidad. Addison-Wesley Iberoamericana.

Hopcroft, J.E.; Ullman, J.D. (1979). Introduction to Automata Theory,


Languages and Computation. Wilmington: Addison-Wesley.
Traducción castellana: Introducción a la teoría de autómatas, lenguajes y compu-
tación. 2ª edición (2002). Addison-Wesley Iberoamericana.

Isasi, P.; Martínez, P.; Borrajo, D. (1997). Lenguajes, gramáticas y autóma-


tas. Un enfoque práctico. Madrid: Addison-Wesley Iberoamericana.

Kelley, D. (1995). Teoría de autómatas y lenguajes formales. Madrid: PrenticeHall.

Linz, P. (2001). An introduction to formal languajes and automata. EUA: Jones


and Barlett Publishers.

También podría gustarte