LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS...

130
LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA

Transcript of LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS...

Page 1: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

LENGUAJES Y AUTOMATAS

DR. RAMON ZATARAIN CABADA

Page 2: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

INDICE

1. INTRODUCCION

2. GRAMATICAS

3. AUTOMATAS FINITOS

4. MAQUINAS DE TURING

5. GRAMATICAS Y AUTOMATAS

6. APLICACIONES A LENGUAJES

Page 3: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

1. INTRODUCCION

1.1 CONJUNTOS FINITOS E INFINITOSLos conjuntos

X={1,2,3}Y={a,b,c,d}

se definen de una manera explícita. Los conjuntos que contienen un número finíto muy largo de miembros o un número infiníto de miembros se definen de manera implícita.

Ejemplo: El conjunto de todos los cuadrados perfectos es definido como:

{n | n=m2 para algún número natural m}

Page 4: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

El conjunto vacío se representa por 0, y es el conjunto que no tiene miembros, o sea que 0 = { }

Page 5: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

Una cadena de un conjunto X es una secuencia finíta de elementos de X. Las cadenas son objetos fundamentales usados en la definición de lenguajes. El conjunto de elementosde donde las cadenas son producidas son llamados alfabetosde el lenguaje. Un alfabeto consiste de un conjunto finíto deobjetos no divisibles. El alfabeto de un lenguaje se representapor El alfabeto de un lenguaje natural como el español consiste de las palabras de el lenguaje.

Ejemplo: Sea ={a,b,c}. Las siguientes son cadenas de ese alfabeto: abc, ccb, cab,aaaabbbccc

Page 6: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

Comúnmente los elementos de un alfabeto se representan por caracteres únicos como letras (a,b,c) o dígitos (1,2,3).La cadena que contiene cero elementos es llamada cadenanula o vacía y se representa por La concatenación de dos cadenas u y v, escrita uv, es “pegar”las dos cadenas para formar una nueva.

Ejemplo: Sea u=ab , v=ca y w=bb. Entoncesuv=abca vw=cabb(uv)w=abcabb u(vw)=abcabb

El resultado de la concatenación de u,v y w es independientede el orden en que las operaciones son ejecutadas. Matema-ticamente esta propiedad es conocida como asociatividad.

Page 7: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

La longitud o tamaño de una cadena w es el número de elementos que contiene la cadena.

Ejemplo: La cadena abcdef tiene una longitud de 6.

Una subcadena u de la cadena v existe si existen las cadenas x y y de tal forma que v = xuy. Esto quiere decir Que u “ocurre dentro de” v.Un prefijo de v es una subcadena u en donde x es la cadena vacía en la descomposición de v. Eso quiere decir que v=uy. Similarmente, u es un sufijo de v si v=xu.

Ejemplo: ab es un prefijo de la cadena abcdef y ef es un sufijo de la misma cadena.

Page 8: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

1.2 Representación finíta del lenguaje

Un lenguaje consiste de un grupo de cadenas de un alfabeto.Usualmente ciertas restricciones se aplican a las cadenas de el lenguaje. Por ejemplo el lenguaje Español consiste de todas las cadenas de palabras que nosotros llamamos oraciones.No todas las combinaciones de palabras forman oraciones. Dealli que un lenguaje consiste de un subconjunto de el conjuntode todas las posibles cadenas que se pueden formar de elalfabeto.

Ejemplo: El lenguaje L de cadenas de el alfabeto {a,b} en donde cada cadena comienza con una a y tiene longitud par.Las cadenas aa, ab, aaaa, abbb, abab, abbbaaba forman partede ese lenguaje.

Page 9: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

El lenguaje anterior se puede definir recursivamente como:

i) Base: aa, ab son miembros de L.ii) Paso recursivo: Si u es miembro de L, Entonces

uaa, uab, uba, ubb son miembros de L.iii) Cierre (Closure): Una cadena u es miembro de L solo si puede

ser obtenida de los elementos base por un número finíto de aplicaciones del paso recursivo.

Page 10: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

Ejemplo: El lenguaje L consiste de cadenas del alfabeto {a,b}en donde cada ocurrencia de b es inmediatamente precedida por una a. Por ejemplo, a, abaab estan en L y bb, bab, abb no estan en L.

i) Base: es miembro de L.ii) Paso recursivo: Si u es miembro de L, Entonces

ua, uab son miembros de L.iii) Cierre (Closure): Una cadena u es miembro de L solo si puede

ser obtenida de los elementos base por un número finíto de aplicaciones del paso recursivo.

Definiciones recursivas como la anterior son una herramientapara definir las cadenas de un lenguaje. Sin embargo esta técnica no es suficiente para definir lenguajes complejos como los Lenguajes de Programación.

Page 11: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

Otra técnica para construír lenguajes es usar operaciones de conjuntos (sets) para construír, desde conjuntos mas simples conjuntos complejos de cadenas.

Por ejemplo La concatenación de los lenguajes X y Y, denotadaXY, es el lenguaje

XY = {uv | u es miembro de X y v es miembro de Y}

La concatenación de X consigo mismo n veces es denotada como Xn. X0 es definida como {

Page 12: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

Ejemplo: Sea X = {a,b,c} y Y = {abb, ba}. Entonces

XY = {aabb,babb,cabb,aba,bba,cba}X0 = {

X1 = X = {a,b,c}X2 = XX = {aa,ab,ac,ba,bb,bc,ca,cb,cc}X3 = X2X = {aaa,aab,aac,aba,abb,abc,aca,acb,acc,

baa,bab,bac,bba,bbb,bbc,bca,bcb,bcc,caa,cab,cac,cba,cbb,cbc,cca,ccb,ccc}

Una operación importante es el “Kleene Star”, denotada para un conjunto X como X*, que no es otra cosa que la concate-Nación de del mismo lenguaje.

Page 13: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

Lo anterior también es representado como

X* = U Xi

i=0Contien todos loas cadenas construídas desde X incluyendo lacadena nula.

Si no se incluye la cadena vacía entonces tenemos a

X+ = U Xi

i=1El conjunto de cadenas no nulas construídas desde X.

Page 14: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

Ejemplo: El lenguaje L = {a,b}*{bb}{a,b}* consiste de lascadenas del alfabeto {a,b} que contiene la subcadena bb. Laconcatenación de el conjunto {bb} asegura la presencia debb en cualquier cadena en L. Los conjuntos {a,b}* permitencualquier número de a’s y b’s, en cualquier orden, y que preceden y siguen la ocurrencia de bb.

Las cadenas bb, abba, ababbbabab, bbaaaa, aaaabb son ejemplos de cadenas de el lenguaje L.

Page 15: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

Ejercicios.

• Sea X = {aa,bb} y Y = {b,ab}• Lista las cadenas en el conjunto XY.• Lista las cadenas de el conjunto Y* de longitud tres o menos.• ¿Cuántos cadenas de longitud 6 existen en X* ?

• Dar un lenguaje L sobre el alfabeto {a,b} que contenga todas las cadenas que comienzan con aa y terminan con bb.

• Sea L1= {aaa}*, L2= {a,b}{a,b}{a,b}{a,b} y L3= L2*. Describe las cadenas que estan en los lenguajes L2, L3 y L1 L3

Page 16: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

2. GRAMATICAS

1.1 Introducción a las GramáticasUna gramática es una herramienta o notación que nos permite definir un lenguaje por medio de una serie de reglasque nos dicen como construír cadenas v´alidas (oraciones)para el lenguaje. Chomski formalizó el concepto de una gramatica, al hacerobservaciones importantes en la complejidad de unagramática que a su vez establece la complejidad de el lenguajeComo se estableció antes, un lenguaje es un conjunto finítode cadenas desde un alfabeto. Una gramática es una forma dedescribir al lenguaje.

Page 17: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

2.2 Estructuras de las gramáticasUna gramática G consiste de:• Un alfabeto de símbolos terminales • Un conjunto finíto de variables (símbolos no-terminales) V• Un conjunto de reglas de substitución o producciones P• Un símbolo inicial S

G = (V, P, S)

Una regla de substitución o producción está formada por una parte izquierda y una parte derecha : Su significado es reemplazar con

Page 18: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

La parte izquierda son cadenas desde V , que contienen al menos una variable desde V: es un miembro de

(V * V (V *

Mientras que el lado derecho son cadenas desde V esun miembro de

(V *

La gramática produce cadenas de * al aplicar las producciones einiciando con el símbolo inicial hasta que no existan variables.Cada vez que una producción o regla es aplicada, una forma de sentencia (cadenas de variables de V y terminales de esproducida.

Page 19: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

El lenguaje generado por la gramática, L(G), es el conjunto de cadenas que pueden generarse aplicando las reglas anteriormentedescritas.

Ejemplo: Consideremos la siguiente gramática G = (V, P, S)

V= {S, A}

a, m, o, t}

P={ (1) S toAto, (2) A ma, (3) A maA }Que genera el lenguaje

L(G)= {tomato, tomamato, tomamamato,...}Usando las siguientes reglas para la cadena tomamato

S(1) toAto(3) tomaAto(2)tomamato

Page 20: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

Ejercicios:Construír una gramática con alfabeto {a,b,c} para los Siguientes lenguajes:• {anb2ncm | n,m > 0}• {anbmc 2n+m | n,m>0}

Construír una gramática con alfabeto {a,b} cuyo lenguaje contiene Precisamente cadenas con el mismo numero de a’s y b´s.

Page 21: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

2.3 Clasificación de las GramáticasN. Chomsky en 1959 en su famoso artículo “On certain formalproperties of grammars” definió cuatro familias de gramáticas(y lenguajes) que forman lo que se llama la jerarquía deChomsky. Estas son: gramáticas sin restricciones, de contextosensitivo, de contexto libre y regulares (tipo 0, 1, 2 y 3).La restricciones puestas en cada regla aumentan con el númerode la gramática.

• Gramáticas sin Restriciones.Son el tipo de gramática mas generales. Una producción uvindica que una ocurrencia de una subcadena u en una cadena puede ser reemplazada con la cadena v. La única reestricciónen una producción es que el lado izquierdo no sea cadena nula.

Page 22: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

Una definición formal de una gramática sin restricciones esla siguiente:Un cuadruplo (V, P, S) donde V es un conjunto finíto de variables, el alfabeto) es un conjunto de símbolos terminales(del alfabeto), P es un conjunto de producciones y S es el símbolo inicial de V. Una producción de esta clase de gramáticatiene la forma uv, donde u es miembro de (V + y v esmiembro de (V .

Ejemplo: La gramática sin restriccionesV= {S, A, C}a,b,c}S aAbc |

aAbC | Cb bC

Cc ccCon símbolo inicial S genera el lenguaje {ai bi ci | i>=0}.

Page 23: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

• Gramáticas de Contexto SensitivoEstas gramáticas representan un paso intermedio entre lasgramáticas de contexto libre y las gramáticas sin restricciones. Para estas gramáticas no existe restricción alguna en la parte izquierda de la producción, pero la longitud de la parte derechadebe ser al menos la longitud de la parte izquierda.Una definición formal de una gramática de conexto sensitivo esla siguiente:Un cuadruplo G= (V, , P, S) donde cada producción tiene la forma u v, donde u es un miembro de (V + , v es miembrode (V + y longitud(u) >= longitud (v). Un lenguaje generado por una gramática de contexto sensitivo es llamado lenguajede contexto sensitivo (en gramáticas sin restricciones el lenguaje también es llamado sin restricciones).

Page 24: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

Si eliminamos las producciones de cadena vacía de la anterior gramática sin restricciones, tenemos una gramática de contextosensitívo.

S aAbc | abcA aAbC | abC

que produce un lenguaje similar al ejemplo anterior.

• Gramáticas de Contexto LibreLa flexibilidad proporcionada por las gramáticas de contextolibre es tal que es la mas usada para definir la sintaxis de los lenguajes de programación.Una definición formal de una gramática de conexto sensitivo esla siguiente:

Page 25: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

Es un cuadruplo G= (V, , P, S) donde V es un conjunto finítode variables, es un conjunto finíto de símbolos terminales, P es un conjunto finíto de reglas y S es el símbolo inicial.Cada producción tiene la forma uv, donde u es una variable del conjunto V, y v es un miembro de (V . Esto quiere decir En la parte izquierda dela producción viene siempre una variable(símbolo no terminal) y en la parte derecha pueden venircualquier número de símbolos terminales y no terminalesincluyendo la cadena nula.

Una gramática de contexto libre produce un lenguaje también de contexto libre: G L(G).

Page 26: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

Ejemplo: La siguiente gramática genera el lenguaje que consistede cadenas con un número par positivo de a’s.

G= (V, , P, S) V={S,A} a,b P: S AA A AAA | bA | Ab | a

Una derivación por la izquierda es la siguiente:SAAbAAbaAbaa

Una derivación por la derecha SAAAbAAbaaba

Page 27: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

Un árbol de parsing o árbol de derivación es una representacióngráfica de la derivación.Ejemplo: La siguiente figura representa el árbol de parsing para las cadenas del ejemplo anterior.

S

A A

b A a

a

S

A A

a b A

a

Page 28: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

Ejercicios: Construír gramáticas de Contexto Libre (GCL)para los siguientes lenguajes:

1. L(G)= {anbman | n>0, m>0}2. L(G)= {anbmcmd2n | n>=0, m>0}

¿La solución también es una gramática de contexto sensitivo?¿Si no, que modificarías de la GCL para hacerla GCS?

3. Sea G una GCLS abSc | AA cAd | cd

• Escribe una derivación por la izquierda de ababccddcc• Construye un árbol de parsing para la misma cadena• Usa notación de conjuntos para definir L(G)

Page 29: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

• Gramáticas RegularesEstas gramáticas constituyen una importante subclase delas gramáticas de contexto libre. Son también útiles en la definición de lenguajes de programación.Una gramática es regular (GR) si cada regla o producción cumple con las siguientes formas:

1. A a2. A aB3. A

Donde A, B son miembros de V y a es miembro de Una GR G genera un lenguaje regular L(G).

Page 30: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

EjemploLa siguiente es una GCL ( U (ab)+a* )

G: S abSA | a

una correspondiente gramática regular sería:

S aB | B bS | bA A aA |

Page 31: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

Expresiones RegularesSea un alfabeto. Una expresión regular para se define recursivamente como:i) Base: 0 (el conjunto vacío), y a para cada a que es

miembro de son expresiones regularespara ii) Paso recursivo: Sea u y v expresiones regulares para Las expresiones

(u U v)(uv)(u*)

son expresiones regulares para iii) Cierre: u es una expresión regular para solo si puede

ser obtenido de los elementos base por medio de un número infiníto de aplicaciones de el paso recursivo.

Page 32: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

Debido a que la unión y concatenación son asociativas, los paréntesis pueden ser omitídos de las expresiones queconsisten de una secuencia de una de esas operaciones. SeAsigna también un orden de precedencia a los operadores.La operación ‘Kleene Star’ tiene el mayor grado de precedencia,seguido de la concatenación y la unión.Por último, podemos decir que las expresiones regulares, aligual que las gramáticas, son una notación usada para especificaro definir un lenguajeEjemplo: Sea = {a,b}1. La expresión regular (a|b) denota el lenguaje {a, b}2. La ER (a|b)(a|b) denota el lenguaje {aa,ab,ba,bb}3. La ER a* denota el lenguaje {a, aa, aaa,...}4. La ER (a|b)* denota el lenguaje de todos loas cadenas que

contienen cero o mas instancias de una a o b, esto es, el conjunto de todas las cadenas de a’s y b’s.

Page 33: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

5. La ER a | a*b denota el lenguaje que contiene la cadena a y las cadenas que consisten de cero o mas a’s seguido de una b.

6. La ER (a|b)*bb(a|b)* denota el lenguaje que contiene las cadenas de a’s y b’s con al menos una subcadena bb.

Ejercicios: sea = {a,b}• Escribir una ER para un lenguaje con cadenas que inician y

terminan con a y contienen al menos una b.• Lo mismo pero par el lenguaje de cadenas que contienen

la subcadena aa y y la subcadena bb.• Lo mismo pero para el lenguaje de cadenas que contienen

la subcadena aa mínimo dos veces (cuidaddo con aaa).• Lo mismo pero para el lenguaje de cadenas que no inician

con la la subcadena aaa.

Page 34: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

2.4 Representación de GramáticasEn las secciones anteriores, se usaron pequeñas gramáticas para generar lenguajes también pequeños. Esos ejemplos sirvieron para ilustrar el uso de gramáticas para definir lenguajes.Por otra parte, en el diseño de lenguajes de programación semaneja sintáxis y alfabetos mas complejas y mas grandes. EstoPor supuesto, incrementa la complejidad de las reglas para generar el lenguaje.

• Notación de BNF.John Backus y Peter Naur inventaron un sistema de reglas paradefinir el lenguaje de programación ALGOL 60. Este sistemarecibió el nombre de Backus-Naur Form o BNF. La sintáxis del Pascal también fue definido con este sistema o técnica, y hoy endía se usa para definir la gran mayoría de los lenguajes de programación.

Page 35: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

Una especificación BNF es un conjunto de reglas de producción, escritas como:<Símbolo de V> ::= <expression with symbols de V y S >

Ejemplo: Constantes Numéricas en Pascal

<digito> ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9<entero sin signo> ::= <digito> <entero sin signo> | <digito><real sin signo> ::= <entero sin signo> . <entero sin signo> |

<entero sin signo> . <entero sin signo> E <factor de escala> <entero sin signo> E <factor de escala>

<factor de escala> ::= <entero sin signo> | <signo> <entero sin signo> <signo> ::= + | -<numero sin signo> ::= <entero sin signo> | <real sin signo> <constante sin signo> ::= <numero sin signo> <constante> ::= <numero sin signo> | <signo> <numero sin signo>

Page 36: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

• Diagramas SintácticosEs también un tipo de notación para especificar la sintáxis deUn lenguaje. La diferencia con la notación BNF es que en estase usan líneas y figuras en lugar de nombres.

Diagrama sintáctico de unSímbolo no terminal

Símbolo no terminal

Símbolo terminal

Page 37: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

Ejemplo: Diagramas sintácticos para expresiones aritméticas como a + b - 8

-

+término

términoexpresión

*factor

factor

/

término

Page 38: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

factor

- factor

identificador

número

( expresión )

Page 39: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

3. AUTOMATAS FINITOS

En este capítulo estudiaremos un tipo de máquinas abstractasde computación en donde la entrada consiste de una cadena de un determinado alfabeto, y la salida o resultado de la computaciónes la aceptación o no de la cadena de entrada. El conjunto de cadenas aceptadas por la máquina es el lenguaje reconocido por la máquina. De esta forma, asociamos lenguajes y máquinas, losdos tópicos principales de esta materia.

Page 40: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

3.1 Autómatas Finítos Determinísticos (AFD)

Un AFD es un quintuple M = (Q, q0, F), donde Q es una máquina de estados finíta, es el alfabeto, q0 es el estado inicial, F es el estado(s) final(es) y es una función de Q x a Q llamada la función de transición.

Ejemplo: El siguiente AFD acepta el conjunto de cadenas que contienen la subcadena bb y donde ={a,b}. Esto quiere decir que L(M) = (a|b)*bb(a|b)* .

M: Q = {q0, q1, q2 } a, b} F = {q2}

Page 41: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

(Continuación)

M: Q = {q0, q1, q2 } a, b} F = {q2}

La función de transición es dada en forma tabular y llamada tabla de transición.

a b q0 q0

q1

q1 q0 q2

q2 q2 q2

Page 42: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

Para las cadenas abba y abab tenemos las siguientes operaciones (computaciones) en la tabla:

[q0, abba] [q0, abab]-[q0, bba] -[q0, bab]-[q1, ba] -[q1, ab]-[q2, a] -[q0, b]-[q2, -[q1, acepta rechazado

La cadena abba es aceptada ya que la computación se para (halts) en estado q2.Una cadena de entrada es aceptada si existe una computación que procesa toda la cadena de entrada y para en un estado final o aceptador.

Page 43: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

Diagramas de EstadoEl diagrama de estado de un AFD es un grafo dirigido-etiquetadoen el cual los nodos representan los estados de la máquina y los arcos son obtenidos de la función de transición.Otra definición es la siguiente:

El diagrama de estado de un AFD M = (Q, q0, F) es ungrafo etiquetado G definido por las sig. condiciones:i) Los nodos de G son los elementos de Q.ii) Las etiquetas sobre los arcos de G son elementos de iii) q0 es el nodo inicial, representado con >iv) F es el conjunto de nodos aceptadores; cada nodo acaptador

se representa con

Page 44: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

v) Existe un arco desde nodo qi a qj etiquetado a si (qi,a)=qj.vi) Por cada nodo qi y símbolo a es miembro de existe

exactamente un arco etiquetado a que sale de qi.

Ejemplo: El diagrama de estados para el DFA del ejemplo anterior:

a

bq0 q1 q2

a,b

b

a

Page 45: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

Ejemplo: El DFA siguiente acepta el lenguaje que no contiene la subcadena aa y donde ={a,b}.

q0 q1 q2

a,b

a

b

a

b

Page 46: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

Ejercicios:1. Sea M un AFD

M: Q = {q0, q1, q2 } a, b} F = {q2}

a b q0 q0

q1

q1 q2 q1

q2 q2 q0

a) Realizar el diagrama de estados de M.b) Hacer las computaciones de M que procesan las cadenas

• abaa• bbbabb• Bababa

c) ¿Cuál de las cadenas anteriores son aceptados por M?d) Escribir la expresión regular para L(M)

Page 47: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

Ejercicios:2. Construye AFD en forma de diagrama de estados que acepte el lenguaje descrito:

• El conjunto de cadenas para alfabeto {a,b} en donde la subcadena aa ocurra al menos dos veces.• El conjunto de cadenas para alfabeto {a,b,c} que comienzan con a, contienen exactamente dos b´s y terminan con cc.• (ab)*ba• (ab)*(ba)*

Page 48: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

3.2 Autómatas Finítos No determinísticos (AFN)La diferencia es el no determinismo de esta clase de autómatas. Esto se manifiesta en la función de transición que en los AFD significa moverse de un estado a otro bajo un símbolo de entrada. En un AFN la función de transición también contempla lo anterior, pero además contempla otras dos transiciones: moverse de un estado a varios estados bajo una sola entrada o símbolo; y moverse de un estado a otro bajo no entrada o símbolo. Estas tres transiciones se dan como:

aqn qi

a

aaqn

qi

qjqn

Page 49: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

La relación entre AFD y AFN se sumariza con la siguiente frase: “Cada AFD es AFN”. La función de transición de un AFD especifíca exactamente que con una entrada solo se puede ir a un estado. Mientras en un AFN con una entrada se puede ir a cero, uno o mas estados. Esto quiere decir que la familia de AFDs es un subconjunto de los AFN.

Una cadena de entrada para un AFN puede generar distintas computaciones. En unos casos el automata para (halt) sin aceptar la cadena, en otros la rechaza o las acepta.

Page 50: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

Ejemplo: El AFN M para la cadena ababb con tres diferentes computaciones.

M: Q = {q0, q1, q2 }a, b} F = {q2}

a b q0 q0

{q0, q1}

q1 0 q2

q2 0 0

[q0 ,ababb]-[q0 ,babb]-[q0 ,abb]-[q0 ,bb]-[q0 ,b]-[q0 , ]

[q0 ,ababb]-[q0 ,babb]-[q1 ,abb]

[q0 , ababb]-[q0 , babb]-[q0 , abb]-[q0 , bb]-[q1 , b]-[q2 , ]

Page 51: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

La primera computación procesa toda la entrada y para en un estado de rechazar. La segunda computación, para (halt) después de ejecutar tres instrucciones ya que no existe acción cuando la máquina esta en estado q1 y leyendo una a. Por último, la tercera computación acepta la entrada.Una cadena de entrada es aceptada si existe una computación que procesa toda la cadena de entrada y para en un estado final o aceptador. Una cadena de entrada está en el lenguaje de un AFN si existe una computación que lo acepte. El lenguaje de un AFN M, denotado L(M), es el conjunto de cadenas aceptadas por M.

Page 52: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

El diagrama de estados para el AFN del ejemplo anterior es el siguiente:

q0 q1 q2

a,b

bb

El diagrama aceptado por este último AFN es (a | b)*bbEs AFN porqué existen dos transiciones de q0 a q0 y de q0 a q1 ante una misma entrada: b

Page 53: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

El siguiente diagrama de estados para un AFN acepta el lenguaje expresado por (ab)* | a*

a

q0 q1 q2ba

a

q3

a

Es AFN porqué existen dos transiciones de q0 a q1 y de q0 a q3 ante una misma entrada: a

Page 54: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

Transiciones LambdaLas transiciones de estado a estado en AFD y AFN se llevan a cabo al procesar o leer un símbolo de entrada. Podemos también redefinir a un AFN de tal manera que admita transiciones de estado a estado sin leer un símbolo de entrada.Una transición de esta forma es llamada transición lambda.A este tipo de máquinas se les llama AFN- Por medio de movimientos lambda se puede construír máquinas complejas a partir de máquinas mas simples.La definición de halting (cuando parar) se extiende para incluir la posibilidad que una computación puede continuar usando transiciones lambda después de que toda la cadena de entrada ha sido leída. También se pide, al igual que en los anteriores autómatas, que termine en un estado final, esto para finalizar el AFN- con éxito.

Page 55: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

M1

q1,0 Q1,1 Q1,2

a,b

bb

a,b

Ejemplo: Sea M1 y M2 las siguientes máquinas que aceptan los lenguajes descritos por (a | b)*bb (a | b)* y (b | ab)* (a | l).

Q2,0 Q2,1

b

a

b

M2

Podemos construír máquinas compuestas combinando los doagramas de estado M1 y M2.

Page 56: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

a,b

q1,0 Q1,1 Q1,2

bb

a,b

Q2,0 Q2,1

b

a

b

El lenguaje del AFN-M es L(M1) U L(M2)

Una computación en la máquina M comienza siguiendo un arco lambda a un estado inicial de M1 o M2.

Page 57: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

Ejemplo: Un AFN- M que acepta L(M1) L(M2), la concatenación de dos lenguajes se construye juntando las dos máquinas con un arco lambda.

M1

q1,0 Q1,1 Q1,2

a,b

bb

a,b

Q2,0 Q2,1

b

a

b

M2

Una cadena de entrada es aceptada solo si consiste de una cadena de L(M1) seguido de una cadena de L(M2) .

Page 58: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

3.3 Equivalencia de AFN y AFDTres clases de autómatas finitos se han estudiado. En esta sección demostraremos que los tres tipos de autómatas aceptan el mismo tipo de lenguajes; mejor dicho, el lenguaje aceptado por un AFN- es aceptado por un equivalente AFN y también por un equivalente AFD. Demostraremos como a un AFN- y aun AFN le podemos quitar su no determinismo mediante la construcción de un AFD equivalente.

Page 59: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

q2 Q3

Q4, Q5

a

a

q1

Q6

En la figura anterior las transiciones de el estado q1 ante entrada a son el conjunto {q2, q3, q5, q6}. Esto debido a que podemos alcanzar o llegar a esos estados desde el estado q1 y solo leyendo a. Al estado q4 llegamos leyendo solo .

Page 60: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

La función de transición t de un NFA- es una función un poco diferente a la función de transición de un AFD o un AFN. En la función t, las transiciones ante son válidas para moverse de un estado a otro y juntándola con una entrada del alfabeto.

Ejemplo: Las tablas de transición siguientes ejemplifican las funciones de transición y t para el siguiente AFN- diagrama de estado M. El lenguaje de M es a+c*b*.

Page 61: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

a b c

q0 {q0, q1, q2} 0 0 0

q1 0 {q1} 0

q2 0 0 {q2} {q1}

t a b c

q0 {q0, q1, q2} 0 0

q1 0 {q1} 0

q2 0 {q1} { q1, q2}

a b

a

a

c

q0 q1

q2

Page 62: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

La función de transición t es usada para construir un autómata finito determinístico equivalente. El procedimiento usa el diagrama de estados de el AFN- para construir el diagrama de estados de el equivalente AFD.Ejemplo: Construir un AFD equivalente para el siguiente AFN- . a b

a

a

c

q0 q1

q2

Page 63: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

a b

a

a

c

q0 q1

q2

t a b c

q0 {q0, q1, q2} 0 0

q1 0 {q1} 0

q2 0 {q1} { q1, q2}

{q1} 0 {q1} 0

{ q1, q2} 0 {q1} { q1, q2}

{q0, q1, q2} {q0, q1, q2} {q1} { q1, q2}

Su correspondiente diagrama de estados:

Se crean tres nuevos estados a los cuales se les aplica el mismo procedimiento para obtener hacia que estados se moverá. Este procedimiento termina hasta que no hay no se genere un nuevo estado

Page 64: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

t a b c

q0 {q0, q1, q2} 0 0

q1 0 {q1} 0

q2 0 {q1}

{ q1, q2}

{q1} 0 {q1} 0

{ q1, q2} 0 {q1} { q1, q2}

{q0, q1, q2} {q0, q1, q2} {q1} { q1, q2}

{q0} {q0, q1, q2}

{q1, q2}

{q1}0

a

a

bb,c

a,c

a,b,c ab

c

b

c

A partir del diagrama de estados se puede construir el AFD equivalente.

Page 65: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

El AFN M acepta el lenguaje a+ b+. Procedemos a convertirlo a un equivalente AFD.

a

q2q1q0

a bM:

{q0} {q0, q1}a

{q1, q2}b

ø

a, b

b

b a

M:

a a

Page 66: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

Las máquinas M1 and M2 aceptan a(ba)* and a* respectivamente.

M1: q1 q2

a

bM2: q3

a

Page 67: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

Usando arcos lambda para conectar un nuevo estado inicial a los estados iniciales de las máquinas originales creamos un

NFA- M que acepta a(ba)* | a*.

q0M:

q1 q2

a

b

q3

a

Page 68: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

La función de transición para M es

t a b

q0 {q2, q3} 0

q1 {q2} 0

q2 0 {q1}

q3 {q3} 0

Page 69: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

El equivalente AFD obtenido es

{q0, q1, q3} {q2, q3} {q3}

{q1}

{q2}

a a

b

b

b

b

a

a,ba

Page 70: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

3.4 Propiedades de los Lenguajes aceptados por un Autómata Finito.Cada autómata finito con alfabeto acepta un lenguaje para Podemos probar que la familia de lenguajes aceptados por un autómata finito consiste precisamente de los conjuntos o lenguajes regulares para . Primero demostramos que cada conjunto o lenguaje regular es aceptado por algún AFN- La demostración va de acuerdo a una definición recursiva. Los lenguajes o conjuntos regulares se construyen a partir de los elementos básicos 0 (conjunto o estado vacío), (cadena vacía) y conjuntos individuales que contienen elementos del alfabeto.

Page 71: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

Los diagramas de estado para las máquinas que aceptan dichos conjuntos son:

q0

q0

q0

q1

q1

q1

a

Page 72: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

Conjuntos regulares se construyen de los elementos básicos usando unión, concatenación y operación Kleene Star. Al igual que los conjuntos regulares, autómatas finítos mas complejos se pueden construir a partir de los diagramas anteriores y que acepten la unión, concatenación y operación Kleene Star de lenguajes regulares.Ejemplo: El lenguaje L(M1) U L(M2) es aceptado por la máquina siguiente:

SM1 FM1

SM2FM2

S

M1

M2

F

Page 73: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

La concatenación de dos lenguajes L(M1) L(M2) regulares puede ser aceptado por la máquina siguiente:

SM1 M1 FM1 SM2 M2 FM2

Una máquina que acepta L(M1)* es la siguiente:

S SM1M1 FM1

F

Page 74: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

CONCLUSIONUsando los autómatas finitos anteriores podemos construir una máquina para cualquier expresión regular que describa a un lenguaje o conjunto regular. Por lo tanto, la conclusión es de que la familia de lenguajes aceptados por una máquina o autómata finito son del tipo regular.

Ejercicio: Construir un AFN- que acepte el lenguaje denotado por (a|b)*ba.

a b

Page 75: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

b a

a

b

(a|b)

ba

Page 76: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

b

a

(a|b)*

Page 77: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

b

a

b a

(a|b)*ba

Page 78: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

3.5 Autómatas Finitos y Expresiones Regulares.Los lenguajes regulares son definidos por medio de expresiones regulares y aceptados por medio de autómatas finitos. Podemos establecer que un lenguaje es regular si• Es una expresión regular bajo un • Es aceptado por un AFD, AFN o AFN- • Es generado por una gramática regular.

En cuanto a las expresiones regulares y autómatas, hemos ya comprobado en la sección anterior que podemos construir un autómata finito para cualquier expresión regular dada. Por otra parte existen métodos para producir una expresión regular a partir de un autómata finito.

Page 79: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

3.6 Determinación de lenguajes regulares y no regulares.Dado el lenguaje {aibi | i<=n} ¿podemos construir un AFD que acepte dicho lenguaje?El siguiente AFD acepta dicho lenguaje pero está incompleto.

a a a a

b

b

bb

b b

b

Page 80: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

El AFD anterior está incompleto puesto que es imposible construir un AFD para un lenguaje que no es regular. De hecho dicho lenguaje es del tipo contexto libre, o es un lenguaje no regular. Se puede demostrar que un lenguaje es regular al construir un autómata finito que lo acepte. Pero para demostrar que no es regular necesitamos usar otras técnicas (e.g. Pumping lemma) que veremos en otro capítulo.

Page 81: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

4. AUTOMATAS DE PUSH-DOWN

Los lenguajes regulares se caracterizan por ser lenguajes generados por gramáticas regulares y aceptados por autómatas finitos. En este capítulo estudiaremos un tipo de máquina usada para aceptar lenguajes de contexto libre. Esta máquina recibe el nombre de autómata de push-down (APD).

Page 82: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

4.1 Definición.Un Autómata de Push-Down (APD) es una máquina de estado finíto aumentada o extendida con una pila de memoria externa. La adición de la pila al autómata le proporciona a este un medio de almacenamiento de memoria LIFO (last-in, first-out). Esta combinación de pila con estados le da la posibilidad a un APD de aceptar lenguajes como {aibi | i>=0}.Un APD es un sextuple (Q, q0, F), donde Q es el conjunto finito de estados, es un conjunto finito de el alfabeto de entrada, es un conjunto finito llamado el alfabeto de la pila, q0 es el estado inicial, F (un subconjunto de Q) es el conjunto de estados finales y es la función de transición de Q x (U {x ( U {}) a subconjuntos Q x ( U {}) .

Page 83: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

Un APD consulta el estado actual, el símbolo de entrada y el el símbolo en el tope de la pila para determinar la transición en la máquina. La función de transición lista todas las posibles transiciones dada una determinada combinación de estado, símbolo y tope de la pila. El valor de la función de transición

(qi,a,A) = {[qj,B], [qk,C]}Indica que dos transiciones son posibles cuando el autómata esta en estado qi y leyendo una a con A en el tope de la pila. Si tomamos la primera opción [qj,B],esto causará que la máquina • cambie de estado qi a estado qj

• procese el símbolo a (leer el siguiente símbolo)• Remover A del tope de la pila• Meter B dentro de la pilaUn APD también puede representarse por medio de un diagrama de estados (nuestros ejemplos los utilizaran).

Page 84: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

La transición (qi,a,A) = {[qj,B]} es representada por

a A/Bqi qj

El símbolo ‘/’ representa reemplazo (reemplazar A en el tope de la pila por B).El dominio de la función de transición permite transiciones lambda en el símbolo de entrada y en el tope de la pila.

Page 85: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

Ejemplo:

1 (qi, ,A) = [qi, ]

2 (qi, , ) = [qi, A]

3 (qi,a, = [qj, ]

A/

qi

qi

qiqj

a

*”Pop” una A

*”Push” una A

*Lee una “a”

Page 86: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

4.2 Lenguajes aceptados por un Autómata de Push-DownLa adición o extensión al autómata finíto al manejar una pila (APD) le permite a este ser un aceptador no solo de lenguajes regulares sino también de lenguajes de contexto libre. Esto nos permite establecer que existe una correspondencia entre un APD y una gramática de contexto libre. Lo anterior es demostrable y la forma de hacerlo es por medio de ir construyendo un APD a partir de cada producción de una gramática de contexto libre. Para cada regla existe una transición dentro del APD.Por otra parte un APD podría implementarse con puras transiciones de leer los símbolos de entrada pero sin movimientos en la pila (). Esto nos daría una máquina similar a un autómata finito la cual obviamente va a aceptar cualquier gramática regular.

Page 87: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

4.3 APD determinístico.Un APD es determinístico si existe no mas de una transición que es aplicable por cada combinación de estado, símbolo de entrada y tope de la pila. A continuación construimos un APD M determinístico para aceptar el lenguaje {aibi | i>=0}.

M: Q = {q0,q1}a,b}= {A}F = {q0,q1}(q0,a, ) = {[q0, A]}(q0,b, A) = {[q1,]}(q1,b, A) = {[q1, ]}

q0q1

b

a /A b A/

Page 88: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

Ejercicios:

• Construir un APD que acepte el lenguaje {wcwR | w es un miembro de {a,b}*}.

• Construir un APD que acepte el lenguaje {aicjbi | i,j>=0}.

• Construir un APD que acepte el lenguaje {aibjck | i+k=j}.

Page 89: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

4.4 APD y Gramáticas de Contexto LibrePodemos probar que cada lenguaje libre de contexto es aceptado por un APD. Para llevar a cabo esto, las reglas de la gramática se usan para generar las transiciones de un APD equivalente. Sea L un lenguaje libre de contextos y G una gramática para ese lenguaje en forma normal de Greibach. En esta forma de Greibach todas las producciones de una gramática tienen una de las siguientes formas:• A aA1A2….An

• A a• A

La gramática G en forma de Greibach que acepta {aibi | i>=0} es usada para ilustrar la construcción de un APD equivalente.

Page 90: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

G: S aAB | aBA aAB | aBB b

El APD tiene dos estados: un estado inicial q0 y un estado aceptador o final q1. Una regla S de la forma S aA1A2…An genera una transición que procesa el símbolo terminal a, mete (push) las variables A1A2…An a la pila y se mueve al estado q1. El resto de las operaciones usan el símbolo de entrada y el tope de la pila para determinar la transición apropiada. La función de transición de el APD es definido directamente de las reglas de G. (q0,a, ) = {[q1,AB], [q1,B]}

(q1,a,A) = {[q1,AB], [q1,B]} (q1,a,B) = {[q1, ]}

Por otra parte es también posible construír una gramática de contexto libre a partir de un APD.

Page 91: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

5. MAQUINAS DE TURING

La máquina de Turing nos proporciona muchas de las características comúnmente asociadas con una computadora moderna. De hecho, la máquina de Turing fue el modelo utilizado para diseñar y construir la primer computadora de programa almacenado. Esta máquina utiliza una secuencia de operaciones elementales para acceder y alterar una posición de memoria. A diferencia de una computadora, una máquina de Turing no tiene un límite de memoria o de tiempo para realizar un cálculo. Por último, la máquina de Turing representa lo máximo dentro de los dispositivos de computación abstractos.

Page 92: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

5.1 Definición de Máquina de Turing.Una máquina de Turing es una máquina de estado finíto en donde en una transición se escribe un símbolo en la cinta (tape). La cabeza de la cinta puede moverse en cualquier dirección, permitiendo que la máquina lea y manipule la entrada tantas veces como se desee.Mas formalmente, una máquina de Turing es un quintuple M = (Q, , q0) donde Q es un conjunto finito de estados, es un conjunto finito llamado el alfabeto de la cinta y contiene un símbolo especial B que representa un blanco, es un subconjunto de –llamado el alfabeto de entrada, es una función parcial de Q x a Q x x {L,R} llamado la función de transición y q0 (miembro de Q) es un estado distinguido llamado estado inicial.

Page 93: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

5.2 funcionamiento de la máquina de Turing.La cinta de una máquina de Turing se extiende indefinidamente en una dirección. Las posiciones de la cinta están numeradas por los números naturales siendo la posición mas a la izquierda la número cero.

q0

0 1 2 3 4 5 6….

Una computación comienza con la máquina en estado q0 y la cabeza de la cinta leyendo la posición mas a la izquierda. La entrada, una cadena de se escribe en la cinta comenzando en posición uno. Posición cero y el resto de la cinta es asumido que están iniciadas con blancos.

Page 94: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

El alfabeto de la cinta proporciona símbolos adicionales que pueden ser usados durante la computación. Una transición consiste de tres acciones: cambiar el estado, escribir un símbolo en el cuadro leído por la cabeza de la cinta y mover la cabeza de la cinta. La dirección del movimiento de la cabeza de la cinta puede ser a la izquierda (L) o a la derecha (R). La configuración de la máquina

q1

….x

y transición qi,x) = [qj,y,L] se combinan para producir la nueva configuración

Page 95: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

qj

y

La transición cambió el estado de qi a qj, reemplazó el símbolo x con y y movió la cabeza de la cinta un cuadro a la izquierda.Una máquina de Turing halts (termina) cuando encuentra un estado (par de símbolos) para los cuales no existe definida una transición. Esto es una terminación normal. Una transición de la posición cero en la cinta puede especificar un movimiento a la izquierda de los límites de la cinta. Cuando esto ocurre, la computación se dice termina anormalmente.

Page 96: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

Máquina de Turing StandardSon diseñadas para ejecutar computaciones en cadenas del alfabeto de entrada. Una computación comienza con la cabeza de la cinta leyendo el cuadro mas a la izquierda y la cadena de entrada posición uno. Todos los cuadros a la derecha de la cadena de entrada es asumido están en blanco.

Ejemplo: La función de transición de una máquina de Turing standard con alfabeto de entrad {a,b} es mostrada a continuación. La transición del estado q0 mueve la cabeza de la cinta a posición uno para leer la entrada. Las transiciones en estado q1 leen la cadena de entrada e intercambian los símbolos a y b. Las transiciones en q2 retornan la máquina a la posición inicial.

Page 97: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

B a b

q0 q1,B,R

q1 q2,B,L q1,b,R q1,a,R

q2 q2,a,L q2,b,L

Una máquina de Turing puede representarse gráficamente por un diagrama de estados. Ejemplo (tabla anterior): Intercambia a’s y b’s en la cadena de entrada.

B/B R B/B L

a/b Rb/a R

b/b La/a L

q0q1 q2

Page 98: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

Ejemplo: La siguiente Máquina de Turing con alfabeto de entrada {a,b} produce una copia de la cadena de entrada. Esto quiere decir que una computación que comienza con la cinta teniendo la forma BuB termina con la cinta BuBuB.

B/B R

a/X R

B/B L

X/a LY/b L

a/a Rb/b Rb/Y R

a/a Rb/b R

B/B R

B/b L

a/a R

b/b R

B/B R

b/b R

a/a R

B/a L

X/X R

Y/Y R

a/a L

b/b LB/B L

COPY: q0 q1

q2 q3

q4

q5q6

q7

Page 99: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

Ejercicios:• Construir una máquina de Turing para mover la entrada

un espacio a la derecha. La configuración de entrada q0BuB resulta en qfBBuB.

• Construir una máquina de Turing para concatenar una copia de la cadena de entrada en reversa. La configuración de entrada q0BuB resulta en qfBuuRB.

Page 100: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

5.3 Lenguajes aceptados por la máquina de TuringUna máquina de Turing puede ser usada para calcular funciones y para aceptar lenguajes. En el primer caso el resultado de una computación se define in términos del estado en donde termina la computación o la configuración de la cinta. En el segundo caso, una computación acepta o rechaza la cadena de entrada. A diferencia de un autómata finíto o de Push Down, la máquina de Turing no necesita leer toda la cadena de entrada para aceptar la cadena. Una máquina de Turing aumentada con estados finales es un sextuple (Q, , , , q0, F) donde F es un subconjunto de Q y contiene los estados finales.

Page 101: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

Un lenguaje aceptado por una máquina de Turing es llamado lenguaje recursivamente enumerable. La hablidad de una máquina de Turing para moverse en ambas direcciones y procesar blancos introduce la posibilidad de no parar (halt) ante ciertas entradas. Un lenguaje que es aceptado por una máquina de Turing y que termina (halt) ante todas las cadenas de entrada es llamado lenguaje recursivo. Existen muchas máquinas de Turing que aceptan un lenguaje en particular; algunas pueden parar (halt) para todas las entradas mientras otras no. La existencia de una máquina de Turing que para (halt) con todas las entradas es suficiente para demostrar que el lenguaje es recursivo.

Page 102: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

B/B R a/a R

b/b R

q0q1 q2

Ejemplo: La máquina de Turing

acepta el lenguaje (a U b)*aa(a U b)*. La computación para la cadena aabb examina solo la mitad de la entrada antes de aceptar la cadena completa. El lenguaje (a U b)*aa(a U b)* es recursivo; las computaciones en la máquina terminan (halt) para cada cadena de entrada. Una computación exitosa termina cuando una subcadena aa es encontrada.

b/b R

a/a Rq3

Page 103: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

5.4 Ejemplo de mayor fuerza de la Máquina de Turing

Page 104: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

5.5 Extensiones de la Máquina de TuringExisten variaciones al modelo de la máquina de Turing standard. Cada variación o extensión parece incrementar la capacidad de la máquina, pero la realidad es que los lenguajes aceptados por esas máquinas de Turing extendidas son también aceptados por máquinas de Turing Standard.

Máquinas de Turing de MultipistasEn este tipo de máquinas la cinta es dividida en varias pistas. Una posición en la multipista-cinta contiene n símbolos del alfabeto de la cinta.

qj

PISTA 1PISTA 2

Page 105: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

Una posición en la cinta en una máquina de 2 pistas es representada por un par ordenado [x,y] donde x es el símbolo en pista 1 y y en pista 2. Una transición lee y escribe la posición completa de la cinta y se escribe como:

(qi,[x,y]) = [qj,[z,w],d] donde d es {L,R}

La entrada es puesta en la pista 1. Todas las posiciones en la pista 2 están en blanco. Aceptación en este tipo de máquinas de Turing es por medio de estado final. Este tipo de máquinas de Turing, al ser equivalentes a la máquina de Turing standard, acepta lenguajes recursivamente enumerables.

Page 106: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

Máquinas de Turing de dos direcciones (two-way)Este tipo de máquinas es identico a una máquina de Turing standard excepto que la cinta se extiende indefinidamente en ambas direcciones (izquierda y derecha). En este tipo de máquinas la cadena de entrad puede ser puesta en cualquier lugar de la cinta. Todas las demás posiciones de la cinta se asume que están en blanco.

q0

….….

Se puede colocar un símbolo especial (#) en una posición para que sea el límite de la izquierda (como en una máquina standard). Este tipo de máquinas es también equivalente al de la máquina standard (aceptan Lenguajes Rec. Enumerables).

Page 107: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

Máquinas de Múltiple CintasConsiste de k cintas y k cabezas de cintas independientes. Los estados y alfabetos son los mismos que en la máquina standard. La máquina lee las cintas simultáneamente pero solo tiene un estado.

CINTA 1

CINTA 2

CINTA 3

qi

Page 108: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

Una transición es determinada por el estado y el símbolo leído por cada cabeza de cinta. Una transición puede• cambiar el estado• escribir un símbolo en cada cinta• independientemente reposicionar cada cabeza de cinta.

El reposicionamiento consiste de mover la cabeza de la cinta un cuadro a la izquierda o la derecha o incluso dejar la cabeza en su posición actual. La entrada a la máquina es puesta en la cinta 1. Todas las demás cintas estarán en blanco.Al igual que en las máquinas anteriores este tipo de máquinas acepta lenguajes Rec. Enumerables.

Page 109: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

5.6 Máquinas de Turing No DeterminísticasEstas máquinas pueden especificar cualquier número finito de transiciones para una configuración dada. Los componentes de una máquina no determinística, con excepción de la función de transición, son idénticos a los de una máquina de Turing standard. Las transiciones en una máquina no determinística son definidas por una función de Q x a los subconjuntos Q x x {L,R}.Cuándo una transición indica que mas de una acción es posible, una computación arbitrariamente escoge una de las transiciones. Una cadena de entrada es aceptada por una máquina no determinística si existe una computación que termina en un estado aceptador.

Page 110: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

5.7 El problema de “Halting” para las Máquinas de TuringUn problema de decisión consiste de un conjunto de preguntas cuyas respuestas son “si” o “no”. Una solución a un problema de decisión es un procedimiento efectivo que determine la respuesta para cada una de las preguntas. Una máquina de turing es un sistema matemático ideal para solucionar problemas de decisión. La teoría de Church-Turing dice que se puede diseñar siempre una máquina de Turing para resolver cualquier problema de decisión que tenga solución por un procedimiento efectivo. Entonces, para establecer que un problema no tiene solución es suficiente con mostrar que no existe solución en una máquina de Turing (Undecidability). El mas famoso de los problemas sin solución (undecidable problem) es el problema de “Halting”.

Page 111: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

El problema de “Halting” se formula de la forma siguiente:“Dada una máquina de Turing arbitraria M con alfabeto de entrada y una cadena w que pertenece a , ¿Pararía la computación de M con la entrada w ? ”Es importante entender la declaración del problema. Debemos ser capaces de determinar si una máquina de Turing en particular parará (halt) con una cadena determinada. Por ejemplo la última máquina de Turing revisada para (halt) con todas las cadenas conteniendo la subcadena aa. Sin embargo, una solución del problema halting requiere un algoritmo general que responda la pregunta de halting que para cada combinación posible de máquina de Turing y cadena de entrada la máquina va a parar.

Page 112: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

Ejemplo: Tenemos una máquina de Turing “H” que resuelve el problema de parada “Halting”.

HR(M)wacepta

rechaza

M hace parada con entrada w

M no hace parada con entrada w

La entrada consiste de la representación de la máquina de Turing M seguido de cadena w. La computación de M con entrada w hace parada.La máquina H es modificada para construir H’. Las computaciones de H’ son las mismas que H excepto que H’ se cicla indefinidamente cuando H termina en un estado aceptador. Las transiciones de H’ son construidas agregandole a H que causan que H’ se mueva indefinidamente a la derecha cuando H entre a un estado aceptador.

Page 113: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

H’ es combinado con una máquina de Turing que copia otra máquina de Turing para formar una nueva máquina D.

R(M) ciclo

para

M para con entrada R(M)

M no para con entrada R(M)

copy R(M)R(M) H’

La entrada a la máquina D puede representarse por cualquier máquina Turing. Considera una computación de D con entrada R(D). Entonces tendriamos lo siguiente:

R(D) ciclo

para

D para con entrada R(D)

D no para con entrada R(D)

copy R(D)R(D) H’

D

D

Page 114: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

En esta última máquina D, vemos que D hace parada con entrada R(D), si y solo si, D no hace parada con entrada R(D). Esto es una contradicción. Sin embargo, máquina D puede construirse desde máquina H que resuelve el problema de parada. La premisa que el problema de parada tiene solución nos lleva a la contradicción. Podemos concluir que el problema de parada no tiene solución.

Page 115: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

6. GRAMATICAS Y AUTOMATAS

Las gramáticas fueron estudiadas en el capítulo 2 donde se introdujo la clasificación de estas dada por Chomsky. En esta clasificación las gramáticas eran divididas en 4 clases de gramáticas: regulares, de contexto libre, de contexto sensitivo y de estructura de frase o sin restricciones. En esta unidad 6 regresamos a estudiar las tres primeras gramáticas con un poco mas de profundidad.

Page 116: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

6.1 Lenguajes Regulares.Teorema de Kleene. Este teorema establece que un lenguaje L es aceptado por un

AFD con alfabeto si y solo si, L es un conjunto regular para

Para demostrar esto haremos uso de dos propiedades: 1. La primera ya explicada durante el tema 3.4, se refiere a

que cada conjunto regular es aceptado por algún AFN-.2. La segunda dice que cada lenguaje aceptado por un

autómata finito es un conjunto regular.Y de acuerdo a lo establecido anteriormente sobre la equivalencia de autómatas determinísticos y no determinísticos concluímos con la validez del teorema de Kleene.

Page 117: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

Para demostrar la segunda afirmación, extenderemos la noción de diagrama de estado. • Un grafo de expresión es un grafo dirigido con etiquetas en donde los arcos están etiquetados por expresiones regulares y contiene un nodo inicial y nodos aceptadores o finales. El lenguaje de un grafo de expresión es la unión de los conjuntos representados por las expresiones regulares aceptadas. Los caminos (paths) en un grafo de expresión generan expresiones regulares.Ejemplo: Los sig. grafos aceptan las exp. reg. u* y u*vw*.

u u w

v

Page 118: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

Para los grafos anteriores los cuales son muy sencillos es simple determinar las expresiones regulares aceptadas. Existe un procedimiento para reducir un grafo de expresión a una de dos formas simples. Esta reducción se lleva a cabo por medio de repetir remover nodos de el grafo de tal manera que produce la expresión aceptada por el grafo.El diagrama de estados de un autómata finito puede tener cualquier número de estados aceptadores. Cada uno de esos estados exhibe la aceptación de un conjunto de cadenas. El lenguaje de la máquina es la unión de esos conjuntos. Para determinar el lenguaje de un autómata, la observación anterior nos permite considerar los estados aceptadores separadamente.

Page 119: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

El algoritmo para construir una expresión regular desde un diagrama de estados hace exactamente eso; construye una expresión para un conjunto de cadenas aceptadas por cada estado aceptador individual.Los nodos de un AFN- en el algoritmo se asumen están numerados. La etiqueta de un arco de nodo i a nodo j se denota como wi,j. Si no hay arco de nodo i a j, wi,j = 0.

Page 120: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

Algoritmo: Construcción de una expresión regular desde un autómata finito.Entrada: Diagrama de estados G de un autómata finito

Los nodos de G numerados 1,2,…,n1. Sea M el número de estados aceptadores de G. Hacer m copias de G, cada una de cual tiene un

estado aceptador. Nombra a cada una G1,G2,…,Gm. Cada estado aceptador de G es el estado aceptador de algún Gt, para t= 1,2,….,m.

2. Para cada Gt Hacer2.1 Repetir

2.1.1 Escoger un nodo i en Gt que no sea ni el nodo incial ni un nodo aceptador de Gt.

2.1.2 Borrar el nodo i en Gt de acuerdo al siguiente procedimiento:Para cada j,k no igual a i (esto incluye j = k) Hacer

i. Si wj,i <> 0, wi,k<>0 y wi,i = 0 Entonces agregar un arco desde nodo j hasta

nodo k etiquetado wj,iwi,k ii. Si wj,i <> 0, wi,k<>0 y wi,i<>0 Entonces

agregar un arco desde nodo j hasta nodo k etiquetado wj,i(wi,i)*wi,k

iii. Si nodos j y k tienen arcos etiquetados w1,w2,….,ws conectandose Entonces reemplazarlos por un solo arco etiquetado w1Uw2U….Ws

iv. Remover el nodo i y todos los arcos que inciden en nodo i en Gt

Hasta que los únicos nodos en Gt sean el nodo inicial y un único estado aceptador2.2 Determinar la expresión aceptada por Gt

Fin End3. La expresión regular aceptada por G es obtenida juntando las expresiones para cada Gt con U

(unión)

Page 121: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

Ejemplo: b

c

b

cG:

b

c

b

c

b

c

b

c

G1:

G2:

De ‘G’ se construyen dos grafos de expresión ‘G1’ y ‘G2’::

Page 122: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

Se reduce G1 borrando nodos 2 y 3:

b

cc

b

b

La expresión aceptada por G1 es b*. Se remueve nodo 2 de G2y se tiene: b

cc

b

con expresión asociada b*ccb*.

Page 123: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

La expresión aceptada por G, construida desde las expresiones G1 y G2, es b*| b*ccb*.Y con esto se prueba lo establecido en el teorema de Kleene.

Las Aplicaciones del Lema de “Pumping”El lema de “Pumping” es usado para demostrar o establecer que un lenguaje no es regular y se basa en ciertas reglas de descomposición que se aplican a las cadenas de los lenguajes regulares.Bombear (Pumping) una cadena se refiere a construir nuevas cadenas repitiendo (bombeando) subcadenas de la cadena original.

Page 124: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

Ejemplo:

M:

b a

a

a

b

a,b

b

q0 q1

q2 q3

Considere la cadena z=ababbaaab en L(M). Esta cadena puede descomponerse en subcadenas u, v y w donde u=a, v=bab, w=baaab y z=uvw. Las cadenas a(bab)ibaaab son obtenidas al bombear (pumping) la subcadena bab en ababbaaab.

Page 125: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

El lenguaje L(M) es regular pues producimos un autómata finito para el. Si las cadenas producidas al bomberase la cadena original también pertenecen a L(M), entonces L(M) es regular, si no, entonces L(M) no es regular. El lema de Pumping para lenguajes regulares tiene como objetivo principal demostrar que un lenguaje no es regular.

Ejemplo: Para demostrar que L={aibi | i>=0} no es regular probaremos con una cadena z=akbk y descomponiendo esta en subcadenas u=ai,v=aj y w=ak-i-jbk, donde i+j<=k y j>0.Si bombeamos cualquier cadena de esta forma produce uvw=aiajajak-i-jbk, que no pertenece a L. Por lo tanto, ya que z pertenece a L y no tiene descomposición que satisface las condiciones del lema de pumping, concluimos que L no es regular.

Page 126: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

El Teorema Myhill-NerodeAsí como el teorema de Kleene establece la relación entre lenguajes regulares y autómatas finitos, el teorema Myhill-Nerode caracteriza la regularidad por medio de la existencia de una relación de equivalencia en las cadenas del lenguaje. Esta caracterización proporciona un método para obtener un AFD mínimo que acepta un lenguaje.Este teorema se utiliza, al igual que el lema de “Pumping”, para demostrar que un lenguaje no es regular.

Page 127: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

6.2 Lenguajes de Contexto LibreForma Normal de Chomsky.Una gramática de contexto libre está en forma normal de Chomsky si cada regla tiene una de las siguientes formas:• A BC• A a• S Donde B,C son símbolos no terminales y no son símbolo inicial.El árbol de derivación asociado con una derivación en una gramática en forma normal de Chomsky es un arbol binario.

Autómata de Push-Down. (tema cubierto en capítulo IV)

Page 128: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

Compilador de Lenguajes FormalesUn compilador es un programa que traduce otro programa escrito en un lenguaje de alto nivel (java, C++, Ada, etc.) produciendo como salida un programa objeto usualmente en código máquina. El compilador para realizar su tarea divide todo el trabajo en varias fases, las cuales pueden ser:• Análisis de léxico• Análisis de sintaxis• Análisis de semántica• Generación de código intermedio• Generación de código objeto• Optimización de código

Las dos primeras fases utilizan lenguages formales como especificación de entrada a la fase.

Page 129: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

Análisis de léxico. En esta fase el compilador descompone el programa fuente en tokens (identificadores, constantes, operadores, etc.) los cuáles son especificados por medio de expresiones regulares.Ejemplo:• Identificador = letra (letra | digito)*• Número entero = digito digito*

Análisis de sintáxis. En esta fase el compilador revisa si los estatutos, expresiones o declaraciones del programa fuente cumplen con las especificaciones definidas por una gramática de contexto libre para el lenguaje siendo compilado. Existen muchas técnicas para implementar un analizador de sintaxis, los cuáles son llamadas “Parsers”.

Page 130: LENGUAJES Y AUTOMATAS DR. RAMON ZATARAIN CABADA. INDICE 1.INTRODUCCION 2.GRAMATICAS 3.AUTOMATAS FINITOS 4.MAQUINAS DE TURING 5.GRAMATICAS Y AUTOMATAS.

Ejemplos de Parsers son:• Recursivo descendente• LL(1)• Operador precedencia• LR• SLR• LALR

También existen herramientas para producir por medio de especificaciones analizadores de léxico y sintaxis. Algunas de estas herramientas son:• Lex• Yacc• JavaCC• Sable