You are on page 1of 12

Autmatas y Lenguajes

Teora 1: Repaso General Alfabetos, Lenguajes, Automatas y Gramaticas Departamento de Informatica Facultad de Cs. Fco. Matematicas y Naturales

Universidad Nacional de San Luis San Luis - Argentina

Automatas y Lenguajes p.1/24

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.

Automatas y Lenguajes p.2/24

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.

Automatas y Lenguajes p.3/24

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.

Automatas y Lenguajes p.4/24

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.

Automatas y Lenguajes p.5/24

Deniciones bsicas (Cont.)


La cadena de longitud nula, denotada por (o ), es la cadena consistente de cero smbolos. Por consiguiente, || = 0. Denicin: para cualquier alfabeto , el conjunto de todas las posibles cadenas sobre es denotado por , y un lenguaje sobre es por lo tanto un subconjunto de . Ejemplo: Sea = {a, b}, luego = {a, b} = {, a, b, aa, ab, ba, bb, aaa, aab, ...} Entonces: L1 = {a} , L2 = {a, aa, aaa, aaaa} y L3 = {a, ab, abbb, abbbb} son lenguajes denidos sobre .

Automatas y Lenguajes p.6/24

Representacin de los lenguajes


Conjunto por extensin: es una forma muy limitada de representacin. Ejemplo: = {a, b}, L = {a, b, aa, ab} Conjunto por comprensin: La manera de hacerlo es especicando una propiedad que deben satisfacer las cadenas del lenguaje. Es decir, L = {x A|(x)}. Ejemplo: = {a, b}, L1 = {w | w no tiene aa ni bb como subcadena} L2 = {w | |w| = 10 w comienza con a} Es tambin comn reemplazar w por alguna expresin con parmetros, y describir las cadenas del lenguaje estableciendo condiciones sobre los parmetros. Ejemplo: = {0, 1}, L1 = {0n 1n 0m | n, m 0} L2 = {0i 1j | j = i + 2}
Automatas y Lenguajes p.7/24

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.
_

Automatas y Lenguajes p.8/24

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 = {}

Automatas y Lenguajes p.9/24

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

Automatas y Lenguajes p.10/24

Dispositivos descriptores de lenguajes


Si bien a travs de una notacin conjuntista es posible describir ciertos lenguajes e inclusive realizar algunas operaciones sobre los mismos, no es suciente para generar, reconocer o estudiar propiedades de lenguajes altamente estructurados como lo puede ser un lenguaje de programacin como Pascal, C o JAVA. Dispositivos generadores - Gramtica: Es un modelo matemtico que permite generar a travs de reglas sintcticas o gramaticales (tambin llamadas reglas de reescritura), cadenas miembros de un lenguaje especco. Dispositivos reconocedores - Autmata o Mquina Abstracta: Es un modelo matemtico que representa la idea de computacin o manipulacin de cadenas va la aplicacin de acciones preestablecidas. Tiene como objetivo (en general): determinar la pertenencia de una cadena a un lenguaje especco.

Automatas y Lenguajes p.11/24

Gramticas

Una gramtica (irrestricta) es una cudrupla G = (N, , P, S), donde:

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.

Automatas y Lenguajes p.12/24

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:

Automatas y Lenguajes p.13/24

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

Automatas y Lenguajes p.14/24

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 }

Pero, cul es el lenguaje generado por la gramtica G dada?

A partir de aqu es necesario establecer la manera en que las reglas gramaticales deberan ser usadas para generar cadenas o palabras vlidas.

Automatas y Lenguajes p.15/24

Lenguaje generado por una gramtica


Deniciones previas Sean , , , ( N ) , denimos la relacin deriva () sobre ( N ) como sigue: sii P Esto signica que es obtenida a partir de por la aplicacin de la regla o produccin P Si 0 1 ... n con n 0 y i (N ) para i {0, 1, ..., n}, luego decimos que 0 n , es decir la clausura r eexo- transitiva o que 0 deriva en 0 o ms pasos en n .

Si n ( N ) , luego n es denominado una forma sentencial. Si n , es una sentencia del lenguaje.

Automatas y Lenguajes p.16/24

Lenguaje generado por una gramtica (Cont.)


Denicin: El lenguaje generado por una gramtica G es el conjunto de sentencias o cadenas, L(G) = {x |S x}

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

y entonces, cul ser el lenguaje generado por G?

Automatas y Lenguajes p.17/24

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.

Automatas y Lenguajes p.18/24

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.

Automatas y Lenguajes p.19/24

Diferentes tipos de autmatas


Segn las caractersticas de un autmata, es el tipo de lenguaje que puede reconocer. Las diferencias que pueden existir son las siguientes: Cinta: Puede ser nita, innita (a ambos lados, a izquierda y a derecha). De slo lectura o lectura/grabacin. Tambin puede existir ms de una cinta, las que se denominan cintas de trabajo. Cabeza lectora/grabadora: Puede tener movimientos a ambos lados o implcitos a derecha. Unidad de Control: Las decisiones que toma pueden ser determinsticas o no determinsticas. Memoria Auxiliar: Puede no existir. Si existe, sta puede ser representada por alguna estructura de datos. Tambin posee su propio alfabeto, generalmente distinto al alfabeto de la cinta.

Automatas y Lenguajes p.20/24

Diferentes tipos de autmatas (Cont.)

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.

Automatas y Lenguajes p.21/24

Relacin entre gramticas y autmatas

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.

Automatas y Lenguajes p.22/24

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

Tipo 0 Tipo 1 Tipo 2 Tipo 3 Vinculados a los lenguajes de programacion

Automatas y Lenguajes p.23/24

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.

Automatas y Lenguajes p.24/24

You might also like