Professional Documents
Culture Documents
Teora 1: Repaso General Alfabetos, Lenguajes, Automatas y Gramaticas Departamento de Informatica Facultad de Cs. Fco. Matematicas y Naturales
Bibliografa Hopcroft - Ullman - Motwani. "Introduction to automata theory, languages and computation". Addison Wesley. Segunda edicin. Hopcroft - Ullman. "Introduction to automata theory, languages and computation". Addison Wesley. Sipser, Michael. Introduction to the Theory of Computation, PWS Publishing Company, 1997. Sudkamp, Thomas A. Languages and Machines (An Introduction to the Theory of Computer Science). Addison Wesley. Aho - Ullman. "The theory of parsing, translation and compiling". Vol. I. Prentice Hall. Hopcroft - Ullman. "Formal languages and their relation to automata". Addison Wesley.
Objetivos
Aspectos tericos de las Cs. de la Computacin. Teora de lenguajes formales, autmatas y gramticas. Bsqueda de descripciones nitas para lenguajes innitos. Anlisis sintctico. Gramticas LR.
Principales tpicos
Repaso: Conjuntos, relaciones y funciones. Mtodos de prueba: induccin matemtica, contradiccin o mtodo del absurdo y prueba directa. Lenguajes. Generacin, reconocimiento y propiedades. Anlisis lexicogrco y sintctico. Modelos de Computacin avanzados, una breve introduccin.
Deniciones bsicas
Cadenas, alfabetos y lenguajes Un smbolo es una entidad abstracta a la que no deniremos formalmente, tal como lo son lnea o punto en geometra. Letras y dgitos son ejemplos de smbolos frecuentemente usados. Una cadena o palabra es una secuencia nita de smbolos. Por ejemplo, a, b y c son smbolos y bbac es una cadena. El conjunto de smbolos usados para formar las cadenas se denomina alfabeto. Por lo tanto, denimos como lenguaje al conjunto de cadenas formadas a partir de un determinado alfabeto (: smbolo usual para denotar un alfabeto). Sea w una cadena, se dene la longitud de w, |w| como la cantidad de smbolos que conforman w. As, w = bbac tiene longitud 4.
Operaciones
Dado que los lenguajes son conjuntos de cadenas, estos admiten una serie de operaciones tales como: complemento, unin, interseccin y diferencia, entre otras. El complemento de un lenguaje L denido sobre es, L= L. Es decir que es el conjunto referencial. La concatenacin de los lenguajes L1 y L2 se dene como el conjunto: L = L1 L2 = {vw|v L1 y w L2 }. Ejemplo: Sean L1 = {an |n es par} y L2 = {abm |m > 0}, luego L = L1 L2 = {an bm |n es impar y m > 0} Exponenciacin: Operacin para indicar el nmero de items a ser concatenados. Tales items pueden ser smbolos, cadenas o lenguajes.
_
Operaciones (Cont.)
Ejemplo: Sean un alfabeto, a , x y L , luego
ak = aa...a xk = xx...x k = ... = {x | |x| = k} Lk = LL...L donde el nmero de factores involucrados en cada concatenacin es k. Para el caso especial con k = 0 tenemos lo siguiente: a0 = 0 = {} x0 = L0 = {}
Operaciones (Cont.)
En funcin de las deniciones previas, podemos denir la clausura transitiva y reexo-transitiva para un determinado lenguaje L como,
L =
[ k=0
y L
[ k=1
Gramticas
N : conjunto de smbolos no terminales, : conjunto de smbolos terminales o alfabeto, S : smbolo distinguido o de comienzo, P (N ) N (N ) (N ) , es el conjunto de producciones o reglas.
Gramticas (Cont.)
Algunas convenciones y observaciones Los no terminales son representados por letras maysculas (A,B,C,...) Los terminales por las primeras letras minsculas (a,b,c, ...) Una cadena de , por las ltimas letras minsculas (..., u, v, w, z) Una cadena de ( N ) , por letras griegas (, , ...) Los elementos del conjunto P son pares ordenados (, ), donde la cadena de la primera componente debe incluir, segn la denicin, al menos un smbolo no terminal. La notacin usual para un elemento (, ) P es la siguiente:
Tipos de Lenguajes
Importante: Las restricciones impuestas sobre el conjunto P de producciones, determinan el tipo de gramtica y por ende el tipo de lenguaje que dicha gramtica puede generar.
Tipos de lenguajes: Tipo 0 o Recursivamente enumerables Tipo 1 o Dependientes del contexto Tipo 2 o Independientes (Libres) del contexto Tipo 3 o Regulares
Ejemplo de gramtica
A modo de ejemplo se muestra una gramtica Tipo 2 (ms adelante veremos en detalle sus caractersticas, es decir, las restricciones que se imponen al conjunto P ). La cudrupla es G = ({S}, {a, b, #}, P, S) con el siguiente conjunto de producciones:
P :{
S aSa, S bSb, S }
A partir de aqu es necesario establecer la manera en que las reglas gramaticales deberan ser usadas para generar cadenas o palabras vlidas.
Veamos algunas derivaciones para la gramtica de nuestro ejemplo y el lenguaje que sta genera. Identicar sentencias y formas sentenciales.
1. 2. 3. 4.
S aSa aaSaa aabSbaa aabbaa S bSb bbSbb bbbb S aSa abSba abaSaba abaaba S
Autmatas
En principio, un modelo general de autmata puede ser visualizado como una mquina que recibe como entrada una cadena x y emite como salida una respuesta indicando si la cadena fue reconocida (aceptada) o rechazada. Estructura general de un autmata:
...
Cabeza L/G
Cinta
UC
Memoria Aux.
Autmatas (Cont.)
Componentes de un autmata: Cinta de Entrada/Salida: est dividida en celdas capaces de almacenar un smbolo por vez. Tales smbolos pertenecen a un conjunto denominado alfabeto de la cinta. Cabeza Lectora/Grabadora: permite leer o grabar smbolos en la cinta. Puede realizar movimientos de a una celda a la derecha o una a la izquierda, desde la posicin corriente. Unidad de Control: Es un conjunto nito de posibles estados de la mquina. Es una componente importante en la toma de decisiones, pero no la nica. Memoria Auxiliar: Permite extender la capacidad de cierto tipo mquinas.
El lenguaje aceptado por un autmata en general, es expresado a travs de conguraciones es decir, descripciones del estado global del autmata: estado corriente de la UC, contenido de la cinta, smbolo corriente de la entrada y si existe, el contenido de la memoria auxiliar. La formalizacin de estos conceptos sern dados en forma particular para cada tipo de autmata.
L es de Tipo 0 L es generado por una gramtica irrestricta L es reconocido por una Mquina de Turing. L es de Tipo 1 L es generado por una gramtica dependiente del contexto L es reconocido por un Autmata Linealmente Acotado. L es de Tipo 2 L es generado por una gramtica independiente del contexto L es aceptado por un Autmata Push-Down L es de Tipo 3 L es generado por una gramtica regular L es reconocido por un Autmata Finito.
Clasicacin de Chomsky
Segn la clasicacin de Chomsky, tenemos la siguiente jerarqua de lenguajes, donde L i denota la familia de lenguajes Tipo i: L3 L2 L1 L0
Ejercicios Propuestos
Establecer en forma intuitiva las principales semejanzas y diferencias entre gramticas y autmatas. Qu signica que la UC de un autmata sea de estado nito y que la misma se comporte de manera determinstica? En una gramtica cualquiera, Por qu considera necesario existencia de un nico smbolo distinguido y no un conjunto? Intuitivamente, qu diferencias encuentra entre un lenguaje natural cualquiera (por ejemplo, Espaol, Ingls, Frances, etc.) y un lenguaje de programacin (C, Java, C++, Pascal, PHP, etc)? Idem a la pregunta anterior pero slo considerando lenguajes de programacin.