148.206.53.84148.206.53.84/tesiuami/uam7050.pdf148.206.53.84

74
, I . UNIVERSIDAD AUT6NOMA METROPOLITANA - IZTAPALAPA DIVISI~N DE CIENCIAS ~ASIGAS E INQENIER~A LiCENCiATURA EN COMPUTACi6N PROYECTO !=!N" " M65ULO UIDÁCTICO PARAEL ESTUDIO DEL AUTbMATA DE PILA '> PRESENTADO POR MAR~A LUIS ZAMUDIO DLIP~N At 147660

Upload: ngoliem

Post on 19-Jul-2018

225 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 148.206.53.84148.206.53.84/tesiuami/uam7050.pdf148.206.53.84

, I .

UNIVERSIDAD AUT6NOMA METROPOLITANA - IZTAPALAPA DIVISI~N DE CIENCIAS ~ASIGAS E INQENIER~A

LiCENCiATURA EN COMPUTACi6N

PROYECTO !=!N"

" M65ULO UIDÁCTICO PARA EL ESTUDIO DEL AUTbMATA DE PILA '>

PRESENTADO POR

MAR~A LUIS ZAMUDIO DLIP~N At 1 4 7 6 6 0

Page 2: 148.206.53.84148.206.53.84/tesiuami/uam7050.pdf148.206.53.84

AUTOMATA5 DE PILA

Universidad Aut6noma Metropolitana - iztapalapa Programa de Educacibn en Ciencias Easicas e lngenier ía

Departamento de Ingeniería EICctrica, Area de Ingeniería Electrhica

RESUMEN

E n la primera parte, se presenta una monografía sobre el tema Autbmatas de Pila, básico en el estudio de la Teor ía de AutGmatas, la cual forma parte de ¡as curricula de ¡as carreras de Computacibn. Este trabalo comprende ¡os aspectos más importantes del tema, y tiene la intencih de servir de apoyo al curso de Teoria Matemdtica de la Computaci6n, impartido a los estl_rdiantes de lngenier ía Eiectrbnica y Computacibn, dentro de la UAM-i ztapalapa. Incluye ademas algunos ejemplos de lo expuesto, asi COMO una amplia bibliograf ia, la cuai puede emplearse como material complementario.

En la segunda parte, se presenta el manual cuya intencidn es explicar al usuario, la manera en que se utiliza el simulador del Autrjmata de Pila, el cuai forma con ia mwrcrgrafia, e¡ m6duio de estudio que se ofrece como material de apoyo al curso Teor ía Matemática de la Computacicin.

El programa simulador est& contenido en un disco flexible para computadora PC compatibie, e incluye algunos eiernplos simples. El software producido se pens6 Como un3 forma de ensefianza asistida por computadora, relacionada totalmente con la rnonografia. La idea es que el alumno pueda construir sus propios mcrdelos, utilizandcr el sirnulador para verificar su validez o correcci6n y de ser necesario cambiar o alterar el modelo original y experimentar directamente en la computadora.

Page 3: 148.206.53.84148.206.53.84/tesiuami/uam7050.pdf148.206.53.84

PARTE I

I . INTRODUCCI~N

2. DESCRlPCioN GENERAL

3. DEFINICIONES

4. VARIACIQNES SOBRE EL AUTOMATA DE PILA

5. AUTOMATAS DE P I M Y LENGUAJES LIBRES DE CONTEXTO

6. EJEMPLOS

PARTE II

1. PROLOGU

3. MODELO MATEMATICO DEL AUTOMATA DE PlL4

4. ENTRADA AL SISTEMA

5. ARCHIVO S

5.1 NUEVO 5.2 CARGAR 5.3 GUARDAR 5.4 DIRECTORIO 5.5 CAMBIAR 5.6 FIN

6. DEFlNlCldN

6.1 ALFABETO DE ENTRADA 6.2 ALFABETO DE LA PILA 6.3 CONJUNTO DE ESTADOS 6.4 ESTADOS FINALES 6.5 CRITERIO

7

1

6 3

9

t4

78

25

Page 4: 148.206.53.84148.206.53.84/tesiuami/uam7050.pdf148.206.53.84

7. EDICIOJN

7.1 CINTA 7.2 TABLA

8. EJECUCI~N

9. EJEMPLOS

33 99

24 34

3..

Page 5: 148.206.53.84148.206.53.84/tesiuami/uam7050.pdf148.206.53.84

AUTOMATA5 DE PILA

Page 6: 148.206.53.84148.206.53.84/tesiuami/uam7050.pdf148.206.53.84

E n el área de estudio de los lenguajes formales, las gramriticas libres de contexto [o gramsticas de tipo 2, en la clasificacidn de Chomsky] son las que, junto con los conjuntos regulares, tienen una aplicacibn práctica en Cornputacihn. S u uso se presenta en la Terrr i3 de los Compiladmes, dado que la sintaxis de la mayor la de ius Senguajes de programacibn se puede cüt-tsiderar que c~~rresp~t-tde a grarrt6tica libre be cür-ttextü. El aut6~1ata de pila es un analizador sintacticu de cualquier gramhtica libre de contexto.

E n seguida se hace una descripci6n detallada del tema, con una revisicin de su reiacicin con los lenguales.

2. DESCRlPCloN GENERAL.

El autcirnata de pila, o PDA [por $us siglas de Push Down Automaton], es basicamente, un autbmata de estados finitos ai 4ue se ha dotado con una pila como memoria auxifiar.

entrada, un controi de estados iinitu y una pila. Corno se muestra en la figura 1, el PDA consta de una

t“------------.

Cinta de entrada

Figura 1 - Esquema general de un PDA

cinta de

h,pe

La cinta de entrada contiene fa cadena de entrada que sera examinada por el autdmata. La pila es una cinta semi-infinita [es decir, infinita d o por uno de sus extremos] que funciona como memoria auxiliar. La entrada es leida en una direccitjn mediante una cabeza lectora La pila se accesa linicamente en e¡ tope. mediante una cabeza de

Page 7: 148.206.53.84148.206.53.84/tesiuami/uam7050.pdf148.206.53.84

iecturalescritura- E¡ control de estados finito es e¡ encargado de dirigir el comportamiento del autbmata.

A! principia, e! PDA se r?ncwntm en e! estada inicial, !a cinta de entrada contiene la cadena por analizar y la pila esta vacia.

La entrada es analizada por el PDA simbolo a símbolo, proceso durante el cual, el autbmata cambia de estado y utiliza la pila para guardar informaci3n que le ayuda a hacer tal análisis.

E! P0.4 examinar&:

- el simbolo de la entrada que está halo la cabeza lectora, o simbolo

- el símbolo en el tope de la pila, y - el estado interno,

actual de la entrada,

para decidir, si debe detenerse, Ü bien, determinar:

- el movimiento de la cabeza lectora de la entrada, ya sea que avance o permanezca en su lugar [la lectura de la entrada se puede detener momentaneamente, mientras se trabaia irnicanente sobre la pila],

- la cadena de símbolos que reemplazara al tope [reemplazar el tope actual por la cadena vacia, hace que iste sea borrado, con lo que el elemento que yacia debalo de kl, pasa ahora a ser el tope), y

- el nuevo estado.

Al terminar de ieer ia entrada, se dice que el PDA la reconoci6, si llegcj a un estado de aceptaciijn, o bien, si la pila sued6 vacia.

3. DEFINICIONES.

Un autbmata de pila no determmistico M, es un sistema [Q,E ,P,S,qaF), donde:

GI es un coniunto finito de estados- E es e! alfabeto de entrada, es decir, bs simbolos de este conjunto

forman las cadenas de entrada. P es el alfabeto de la pila, sus simbolos s m los que se meten en la

pila. S es la Cunci6n de transicih, definida de Q x [E U {E)] x [P U {e ) ) a

subconjuntos de Q x [P U (E)]. qo en Q , es e¡ estado inicia¡- F subconiunto de Q , es el coniunto de estados finales o de

aceptacibn- I

En lo siguiente, convendremos en usar las primeras letras minusculas del alfabeto, para denotar los sirnbolos de entrada, y las cercanas al final,

Autdmata de Pila - 2

Page 8: 148.206.53.84148.206.53.84/tesiuami/uam7050.pdf148.206.53.84

para representar cadenas de simbolos de entrada. Las letras mayúsculas, cercanas al inicio del alfabeto, denotarán símbolos de la pila, y las prdximas al final, denotaran cadenas de simbolos de la pita. Ademas, la cadena vacia se representar6 por E.

Definici6n 2.

q representa el estado actuai del control finito, w es la parte de la entrada que no ha sido procesada. Si w = E significa

que ya se ley8 toda la entrada. X es el contenido de la pila. El simboio del extremo izquierdo de esta

cadena, es el tope de la pila. Si X = E, se considera que la pila está vac ia.

En la figura 2 se muestra un PDA en el que: m

- la unidad de control está en el estado q, - la cinta de entrada contiene la cadena v, faltando por anafizar la

- la pila contiene la cadena X.- subcadena w de v,

por lo que la configuracih de aut6mata es [q,w,sC]

V I

LWr

I X

Page 9: 148.206.53.84148.206.53.84/tesiuami/uam7050.pdf148.206.53.84

Definici6n 3.

- -~ ............ ... ; . . ; . . . s . . ............ ............ w .......................... ............ .............

Figura 3. Cofiguracibn inicial [qo,w,~] de un PDA

La funcidn de transiciljn S, Csta todas las posibles configuraciones que en un momento pueden caracterizar al PDA, especificando para cada una, cual puede ser el siguiente estado y cud simbolo del alfatreta de fa pila, puede reemplazar al tope. Cualquier coniiguracibn que no se iiste explicitamente, harS que et FDA se detenga.

La forma genera¡ de una transici6n es lqi.81 en SFqpA] donde:

qi es el estado actual, a es el símbolo actual de la entrada, A es el simbolo en el tope de la pila, qi es el nueva estado y B es el nuevo tope de ¡a pia.

El PDA analiza la entrada pasando por una secuencia de configuraciones, siendo cada una el resultado de aplicar la funcidn de transicibn a la configuraci6n anterior.

Page 10: 148.206.53.84148.206.53.84/tesiuami/uam7050.pdf148.206.53.84

Definicidn 4..

El movimiento del PDA, M, es la relacidn binaria

'M

sobre configuraciones. El movimiento del PDA, establece un cambio en su confipuraci6n: la t-mtacih

fSijw,!,x) 'M lSjty ,Y)

indica que la configuracidn fq,,s,Y] se puede obtener de la cmfiguracibn fq,w,%] en un solo movimiento del PDP., M.

representa el resultadü de una secuencia de movimientos.

es la cerradura reflexiva y transitiva de

E s decir, que all e I paratodaconfiguradon I

b ] l ~ J y J ~ K i ! n p i i c a ! ~ K

Escribimos i !bK

si la contiguracicin I se transforma en la configuracibn K, exactamente despuk de i movimientos.

Cuando sea ciaro que se trata de¡ PDA M, se puede usar simplemente

según sea el caso.

Si el PDA se encuentra en el estado qi, con el sirnbolo a baio la cabeza lectora de la entrada y el símholo A en el tope de ia pila, la transici6n [qi,B J en S[qi,aAJ hare que el PDA:

Page 11: 148.206.53.84148.206.53.84/tesiuami/uam7050.pdf148.206.53.84

es decir, esta transicibn produce el movimiento {qi,aw"J I------ [qi,w,BX) que se ilustra en la figura 4.

V 7 H W

f

[a] Configuraci6n antes del movimiento

Figura 4- Movimiento del sut6mata

X

Page 12: 148.206.53.84148.206.53.84/tesiuami/uam7050.pdf148.206.53.84

H W

1 1 4- I I i Q : .t I

I x [bj Configuracibn despuks del movimiento

Figura 4- Movimiento del autbmata [cont.)

El dominio de la funcibn de transicibn permite que la cadena vacía aparezca en las posiciones de¡ simbcrio de la entrada y del tope de la pila, con lo cual se especifica que el valor de esa componente no debe ser operado por la transici6n. Si la transicidn depende del simbolo de la entrada, la cabeza lectora debe avanzar; en otros casos, la cabeza lectora no se mueve y escribimos E corno sirnbolo de la entrada, lo que permite que el PRA manipule la pila, sin leer simbolos de la entrada. Si se especifica E como argumento del sírnbolcs en el tope de la pila, significa que la transiciiin deia el tope en la pila, aunque es posible que meta otro símbolo a la pila, el cuai pasa a ocupar ¡a posicihn del tope.

Por eiernplo, !a transicicin:

bj [qi,B] en &iqiiE,Ej.. mete el sirnboia B en la pila:

Page 13: 148.206.53.84148.206.53.84/tesiuami/uam7050.pdf148.206.53.84

c ] &E] en &[qica.Ejc es equivalente a una transicicjn del autbmata de estados finitos. S u aplicaci6n esta determinada únicamente por el estado y el símbolo de la entrada; la transicih no afecta a la pila:

El PDA continca analizando la entrada hasta que alcanza una configuracidn en la que no es aplicable ninguna transicibn. Si al detenerse el autdmata, la entrada ha sido leida ccrmpletamente, la pila queda vacía y el control llega a un estado final, et PDA acepta la cadena; en caso de que alguna de la tres condiciones no se cumpla, el autbmata rechaza la cadena.

¡ h a cadena w en E" es aceptada por M, con el criterio de estado final y píla vacía, si existe

( q p w , f I + hf ,E,EI

donde Sf est& en F. El lenguaie definido por M, con el criterio de estado final y pila vacia,

denotado LCM], es el conjunto de cadenas aceptadas por M baio este criterio:

Tal como se definid, el autdmata de: pila es no deterministico, ya que existen configuraciones para las cuales es posible más de un movimiento. Por ejemplo, el valor de la funci6n de transici6n S{qi,.a,4] = {[q,,B], fqk,C]) indica que son posibles dos transiciones cuando el aut6mata está en el estado q, examinando ei simbolo a, con A en ei tope de ía pila.

Definici6n 6.

El autdmata de pila determidstico es aqudl que tiene a lo más un movimiento para cualquiera de sus configuraciones.

m

El PDA no deterministico reconoce cualquier lenguaje libre de contexto, no así el PDA deterministico, que s61o puede reconocer un subconiunto de tales lenguaies. Sin embargo, el PDA no deterministico se simula lentamente, dada la posibilidad de elaccibn de diferentes movimientos, en tanto que el PDA deierminisiico realiza ai anidisis m6s rapidamente. Afortunadamente, el PDA detcrminístico puede reconocer a la mayoria de los lenguaies de programacidn, io cual le 66 mayor interes práctico a este tipo de autbnsata .

AuhjmaCa de Pila - 8

I

Page 14: 148.206.53.84148.206.53.84/tesiuami/uam7050.pdf148.206.53.84

4. VARIACIONES SOBRE EL AUTOMATA DE PILA.

En esta seccidn veremos otras formas de definir el PDA, que difieran ligeramente de la definiciljn que hemos dado, pero que resultan equivalentes. Asi mismo, veremoz criterios de aceptacien menos restrictivos que el de esta&? ha/-vFNjla vack que permiten detinir e¡ mismo coniunto de fenguajes.

En una transicicin del PDA, ademas de un cambio de estado se verifican las siguientes acciones: procesar un símbolo de la entrada, quitar un símbolo de la pila y meter un elemento a la pila. El PDA es atdmico, si cada una de sus transiciones ocasiona s61o una de las tres acciones. Las transiciones del PDA atljrnico tienen la forma:

[Si,€I en 6Cqra*+3 [q,,eJ en S[qrAl [qAI en SCqi,cd

a) [qi,E] en S[qi,a,~] procesa el símbolo de la entrada, con lo que se verifica el movimiento [qpw.X) I------ [q,..wX]

V

Figura 5- Comportamiento del PDA at6mico

Page 15: 148.206.53.84148.206.53.84/tesiuami/uam7050.pdf148.206.53.84

W I I

X

X

Figura 5- Comportamiento del PDA at6mico [cont.]

I

Page 16: 148.206.53.84148.206.53.84/tesiuami/uam7050.pdf148.206.53.84

EC siguiente teorema demuestra que e¡ ienguaje aceptado por un PDA at6mico es el mismo que el aceptado por un PDA arbitraria. Describe adem6s un mdtodo para construir el PDA at6mico equivalente a un PDA arbitrario.

Sea M un PDA, entonces existe un PDA atbnico M' tal que L[M'] = L[M].

Demostraci6n.

Para construir M', las transiciones no atdmicas de M son reemplazadas por una secuencia de transiciones atbrnicas.

Sea iq,,B j en Biqi,a.A] una transiciiin de M. Esta transiciiin hace que el FDA:

a] procese el símbolo a de la entrada, b] quite el símbolo A de ¡a pila, c] meta el sirnbolo 8 en la pila, y d] pase del estada q, a! si.

mediante esta secuencia de transiciones, el PDA pasa del estado qi al q,, y por la primera, procesa el simbolo a de la entrada, por la segunda, quita el simbolo A de la pila y par la Gltima transicibn, mete el simbolo 6 a la pila.

Re manera similar, una transici6n que produzca un cambio de estado y realice dos acciones adicionales puede ser reemplazada por una secuencia de dos transiciones atbmicas. El cambiar las transiciones no at6micas por atijmicas produce un PDA atcimico equivalente.

m

2476660 Una transici6n extendida es una operacibn sobre un PD que mete

en la pila una cadena de simbolos, en vez de uno sob. La tramici6n (qi,5CD 3 en S(qi,a,4] mete BCD en la pila, poniendo €3 en el tope. E rta generalizacibn no aumenta el ccrniunto de lenguajes aceptados por un PRA. Un PDA extendido es un PDA con transiciones extendidas. Un PDA extendido puede ser convertido en un PDA equivalente, en el sentida de la definicibn l.

Para canstruir un PDA a partir de un PDA extendido, las transiciones extendidas son convertidas en una secuencia de transiciones, cada una de las cuales mete un solo elemento en la pila. Una transicibn que mete k

Aut6mata de Pila - I I

Page 17: 148.206.53.84148.206.53.84/tesiuami/uam7050.pdf148.206.53.84

elementos requiere k-I estados adicionales para meter los simboios en e¡ orden correcto. La secuencia de transiciones

mete la cadena BCD en la pila y deia al autdmata en el estado si. Esto produce el mismo efecto que la transici6n extendida [q,,BCD] en S[qi,aA]. Este argumento da lugar al teorema siguiente.

Sea M un PDA extendido, entonces existe un PDA M' tal que LC") = LIM]. I

Como se definici en la secciijn anterior, una cadena es aceptada por un PDA, si puede leerla completamente, y termina en un estado de aceptacirin con la pila vacia. Veremos 4ue definir la aceptacih s6io en t&rminos del esido f i ~ l o de la pila vacia t m cambia el cotjunto de lenguajes reconocidos por el PDA

Una cadena w en E" es aceptada por M, con e¡ criterio de estado final, si existe

Iqo,w,d + k l f , o l

para alqun 4f en F y X en P".

¡+[M j, es e¡ coniunto de cadenas aceptadas por M con este criterio: El lenguaje definido por M, con el criterio de estado final, denotado

Sea L el lenguaie aceptado por el PDA M = [Q,E ,P,G,~D,F) por el criterio de estado final. Entonces existe un PDA que acepta L por el criterio de estado final y pila vacia.

Demostraciijn.

Un PDA M'=IQU(qf);E,P,S',qg,(qf)) se construye a partir de M agregando el estado qf as1 como transiciones para qf. Intuitivamente" ia secuencia de movimientos por los que M' acepta una cadena debe ser identica a una en M, excepto por la adicibn de transiciones que vacían la pila. La funci6in de transici6n S' se construye agregando a 6 las transiciones

Autdmafa de Pi' - 12

Page 18: 148.206.53.84148.206.53.84/tesiuami/uam7050.pdf148.206.53.84

8'[qi,~,~f = ([qf,e)) para todo q; en F s'[qf,sA) = (fqfx]) para todo simboio A en P.

la secuencia de movimientos por los que M acepta w con el criterio de estado final. E n M' esta secuencia se completa pasando al estado de aceptacibn qf y vaciando la pila:

Además debemos garantizar que las nuevas transiciones no hagan que M' acepte cadenas que no están en L[M]. El ljnico estado de aceptaci6n de M' es qf. al que se puede entrar mediante cualquier estado de aceptacibn de M. Las transiciones de qf vacian la pila pero no procesan la entrada, por lo que el autbmata rechaza una cadena, si entra al estado qf sin haberla procesado completamente.

8

Una cadena w en E" es aceptada por M, con el criteria de pila vacia, si existe

íqO,w,ri * {si, para algún q en Q.

¡+[M], es el conjunto de cadenas aceptadas par M con este criterio: El lenguaie definido por M, con el criterio de pila vacia, denotado

Baio al criterio de aceptacih por pila vacía. el conjunto de estados finales carece de sentido, por lo que se acostumbra que en tal caso, el coniunto de estados finales sea el vacío. aunque es obvio que este coniunto podría ser cualquiera que se desee.

Sea L el lenguaje aceptado por ut7 PDA M = [Q,E,P,&,qo,F] con el criterio de pila vada. Entonces existe un PDA que acepta L por estado final y pila vac ia.

Page 19: 148.206.53.84148.206.53.84/tesiuami/uam7050.pdf148.206.53.84

D emost raci6n.

Daflrramns M' = [Q,E ,P,&,qo,Q] Irldntico a M e:xc~?pto que todos !OS estados de M' son estados finales. Toda secuencia de movimientos de M que termine con la pila vacia también terminará en un estado final en M'. Por io que LE[M J = L[M').

m

Los lemas 1 y 2 muestran que todo lenguafe aceptado por estado final o pila vacía Cambien es aceptado por estado find y pila vacia. Claramente, cualquier lenguaje aceptado por estado final y pila vacia es aceptado por un autrjmata de pila usando criterios de aceptacih menos restrictivos. Estas observaciones dan lugar ai siguiente teorema.

Teorema 3.

Las tres condiciones siguientes son equivalentes:

al El lenguaje 1 es aceptado por un PDA. bJ Existe un PDA M1 con LF[M 1 J = L. cJ Existe un PDA M2 con LE[M~J = L.

5. AUTdMATAS DE Pllpt Y LENGUAJES LIBRES DE CONTEXTO.

El autdmata de pila es el autbmata correspondiente a una gramática libre de contexto. Propiamente, el authmata es no deterministiccr, ya que el modelo deterministico irnicamente reconoce a un subconiunto de los lenguales libres de contexto- existiendo aut6matas de pila no determin ísticos sin equivalente determin istico.

Asi pues, el aut6mata de pila no deterministico puede reconocer cualquier lenguaie libre de contexto. Sin embargo, este tipo de autiimata es simulado lentamente, dada la posibilidad de elecci6n de diferentes movimientos, en tanto que el auttimata de pila determinístico realiza el anslisis más rápidamente. Afortunadamente, la mayar la de los lenguajes de programacibn son reconocidos por el autbmata de pila deterministico, por lo que este tipo de aut6mata es el de mayor interés práctico. El siguiente teorema establece cuál es al capacidad de reconocimiento del autcjmata de pila.

Teorema 4-

Un lenguaje es reconocido por un autbmata de pila, si y s61o si-. es generado por una gramática libre de contexto.

m

Page 20: 148.206.53.84148.206.53.84/tesiuami/uam7050.pdf148.206.53.84

Dada la gramatiea libre de contexto G = [N,T,R,S], el autijmata de pila M, tal qLJe L[M 1 = LfG], es M = [Q,T ,P,S,qg,Fj, donde Q=(qu,qI 1, P=N T ql esta en F, y realiza las siguientes operaciones:

Para inicializar

Para expandir

para cada prcrduccibn A ---> X en R, s[ql ,EA] contiene [ql X] donde:

A está en N, y X est& en [N U T)” - E

Para igualar

para cada simbdo a en T

Para aceptar la cadena vacia

si G tiene S ---> E qo está en F

La primera accibn realizada pur 51 autdrnata, que se encuentra en la configuraci6n inicia¡, jq~~w,+], es meter en ¡a pila el sirnboio S, pasando a la configuracidn [qI.w-S], para continuar asi el analisis de la entrada. adoptando una serie de ccrnfiguraciones que resultan de aplicar las dos operaciones básicas: expansicjn e igualacidn.

En la expansiGn, la pila se usa corno memoria para guardar el lado derecho de una de las producciones de la gramática. Con la igualacibn se procesa un sirnbolo de la entrada. El elemento en el tope de la pila, determina el tipo de operacibn realizada. La expansidn murre cuando en el tope aparece un símbolo no-terminal, y la iguatacibn, cuando en el tope aparece un sirnboio terminal.

Page 21: 148.206.53.84148.206.53.84/tesiuami/uam7050.pdf148.206.53.84

[a] Expansihn de un no-termina¡

[b) igualacih de simbolos terminaies

w

I U I I

T I

A

W

a. s.. I. ' ........ *.) [

Figura 6- Operaciones básicas del auldmata de pila

El aut6mata construido, simula la derivacibn izquierda de una cadena de entrada valida. Cada una de las contiguraciones, adwtadas por el autbmata, a partir de la configuraciln (q,w,S], corresponden a una forma

Page 22: 148.206.53.84148.206.53.84/tesiuami/uam7050.pdf148.206.53.84

sentencia1 de la derivaci6n izquierda be w, ia que se obtiene anteponiendo al contenido de la pila, la parte de la entrada que ha sido procesada.

De igual manera, si

es la derivacibn izquierda de la cadena w, la configuracibn del autbrnata de pila, correspondiente a la forma sentencia1 ve&, donde vi est6 en T", Ai esta en N, y Xi está en [N I TI", es [ql --wi&$j y w = vi"¡.

T

Si la gramática libre de contexto se encuentra en forma normal de Greibach, la construccirjn del aut6mata de pila se puede simplificar, combinando las regias de expansirjn e iguaiacibn. Considerando, que en la forma normal de Greibach, las producciones son del tips A ---> EX, para A en N, a en T , y X en N", el autdmata de pila que se obtiene es M = [Q,T,N,S,q0,F), donde Q = (qozql).. q1 esta en F y realiza las siguientes operaciones:

Para procesar la entrada y expandir e¡ tope

para cada producci6n A ---> aX en qql ,ah] contiene [ql X] donde:

Page 23: 148.206.53.84148.206.53.84/tesiuami/uam7050.pdf148.206.53.84

A está en N, a está en T, y x est4 ert N

Para aceptar la cadena vacia

si G tiene S "-> E qo esta en F

De esta manera, el auttimata de pila puede verificar un símbolo de la entrada, al mismo tiempo que expande el simblo no-terminal en el tope de la piia.

A continuaci6n se describe el comportamiento de aigunos modelos de aut6mata de pila.

6-1 El aut6rnata de piia determinístico:

y el coniunto de estados finales F, vacío. Reconoce

(x tales que x = candbn y n es mayor o igual que cero) U {E),

con el criterio de pila vacía.

El aut6mata debe leer primero una C . iuego debe recibir una cadena pclsibkmente vacia de aes, poi cada a leida, guarda una B en la pila, en seguida debe leer una d y finalmente, debe recibir una cadena de bes de longitud igual al número de aes que antes leyti, por cada b reconocida, quita una B de la pila. Por eiemplo:

este auttimata reconoce la cadena vacia, ya que la configuraci6n inicial [W,E,E] es una configuracih de aceptacibn, pues la entrada es vacia, por Io que no falta símbolo de 6sta por ser leído y la pila esta vacía.

Page 24: 148.206.53.84148.206.53.84/tesiuami/uam7050.pdf148.206.53.84

el auttimata de pila, API, reconoce la cadena cadb mediante la siguiente secuencia de codiguraciones:

[qn- cadb, E][------ [ql , cadb, S ] mediante TI 1""" [ql , a&, A] mediante T2 1""" [ q O db, Bl mediante T 3 I""" [ql , db, AB) mediante TF I""" is10 be 81 mediante T 4 I""" CSl z E* €1 mediante T 5

¡a configuracicin final es de aceptacirjn, pues ¡a entrada ha sido procesada completamente y la pila ha quedado vac id.

este autbmata tambih reconoce la entrada cd, a trav6s de la siguiente secuencia de configuraciones:

6- 2 El autrjrnata de pila no deterministico:

Reconoce {wwR Isles que w está en {a, b)"), es decir, los paiindromas de longitud par sobre {a, b), con el criterio de estado final y pila vacia.

Este autbmata lo que hace al leer la primera mitad de la cadena, es guardar esta parte en la pila conforme procede la lectura, de manera que' el contenido de la pila, visto del tope hacia el fondo es el reflejo de la primera mitad de la cadena, y el cual deberá coincidir con el resto de la entrada, leida en seguida. Por eiemplo:

. .. "

Page 25: 148.206.53.84148.206.53.84/tesiuami/uam7050.pdf148.206.53.84

el autbmata reconoce la cadena vacia, mediante e¡ movimiento

alcanzando una canfiguraci6n que satisface el criterio de aceptaci6n, ya que el estado 41 es final, no falta simbolo alguno en la entrada por ser leído y la pila está vacía.

este autbmata reconoce la cadena abba, al efectuar la siguiente secuencia de movimientos:

[So. abba, ~]l------ fqn- bba, A] mediante TI I""" [40, ba, EA] mediante T 2 I""" [ql , ba, BA] mediante T 3 I""" is1 a, Al mediante T 5 1""" f4l E, €1 mediante T4.

Observemos que la eleccidn de las transiciones aplicadas ha sido adecuada, ya que permiti6 alcanzar una configuracidn aceptable. Pero veamos lo que! ocurre cuando no se hace una buena eleccibn:

en este caso el aut6mata aplica la segunda transicibn para efectuar el tercer movimiento, llegando a una configuracibn que no es aceptable, pues aunque el autbmata se encuentra en un estado final y la cadena de entrada fue leida por completo, ¡a pila no sued6 vacia.

6-3 El autbmata de pila deterministico:

con

I

I

Page 26: 148.206.53.84148.206.53.84/tesiuami/uam7050.pdf148.206.53.84

Reconoce cadenas de la forma aibi, para i mayor o igual que cero, bajo el criterio de estado íinai y piia vacía.

En el reconocimiento, mientras este autrjmata fee la cadena de am, mete por cada s imbolo leido una A en la pila. En cuanto lee la primera b, cambia de estado para continuar leyendo la cadena de tres, esperando leer tantas como aes recibi6; por cada b que lee en la entrada, quita una A de la pila. Por ejemplo:

- el autbrnata reconoce la cadena vacía pues ía configuracibn inicia¡ [ q o , ~ , ~ ) es una configuracibn de aceptacibn: ei estado qa es final, no íaka símbolo aiguno en la entrada por ser leido y ¡a pila esta vacía.

- este autdmata reconoce la cadena aahb, al efectuar la siguiente secuencia de movimientos:

[q, aabb, E]¡------ [ c ~ J , abb, A] mediante TI I""" [so. bb-. A4j mediante TI I""" iql-. b, A) mediante T 2 I""" is1 a E.. €1 mediante T 3.

6.4 El aut6mata de pila deterministico:

Reconoce cadenas de la forma aibzi, para i mayor o igual que uno, con el criterio de estado final y pila vacía.

Este aut6mata lee primero la cadena de aes, metiendo a la pila dos Aes, por cada a de la entrada. E n cuanto lee una b en la entrada, espera leer el doble de bes que de aes, y por cada b quita una A de la pila. Por ejemplo, la secuencia de configuraciones por las cuales pasa este autbmata al reconocer ¡a cadena aabhbb es :

Page 27: 148.206.53.84148.206.53.84/tesiuami/uam7050.pdf148.206.53.84

mediante 13 mediante T 3 mediante i 3

la ultima configuracidn es de aceptaciiin, ya que en ella: el autdmata se encuentra en un estado final, la pila sued6 vacia y la entrada fue leida completamente, con lo cual se satisface el criterio de aceptaciiin.

6 -5 El auttimata de pila deterministico:

con funcibn de transicibn

Reconoce cadenas de la forma akbn, para n mayor o igual que cero, baio el criterio de estado final y pila vacía..

En el reconocimiento, el autdmata lee primero la cadena de aes, metiendo a la pila un símbolo A por cada a leída en la entrada. En cuanto el autdmata detecta una c, cambia de estado y pasa a reconocer la cadena de bes, esperando leer igual número de bes que de aes recibid Por cada b de la entrada, quita una A de la pila.

Por eiemplo, este aut6mata reconoce la cadena de un solo símbolo, c, mediante ¡a transicibn T 2:

con Io cual alcanza una configuracidn que cumple con el criterio de aceptacidn, pues llega al estado final ql la pila queda vacía y no falta símbolo alguno en la entrada por íeer.

Asi mismo, este autdmata reconoce la entrada aacbb, a través de la siguiente secuencia de configuraciones:

, .

Page 28: 148.206.53.84148.206.53.84/tesiuami/uam7050.pdf148.206.53.84

con

el aut6mata de pila que acepta el mismo lenguaje es:

con

- el aut6mata de pila atbmico que reconoce L es:

6.7 Sea la gramática G en forma normal de Greibach que acepta {aitzi tal que i es mayor que cero),

el aut6mata de pila que reconoce el lenguaje generado por esta gramática, bajo eí criterio de estado final y pila vacia es:

. .. -

Page 29: 148.206.53.84148.206.53.84/tesiuami/uam7050.pdf148.206.53.84

A contínuacih se puede apreciar la correspondencia de la derivaci6n izquierda de la cadena "aaabbb", con la secuencia de configuraciones adoptadas por el aut6nsata al recotsocer dicha cadena:

La derivaci6n genera una cadena formada por un prefijo de terminales seguido por un sufiio de variables. El procesamiento de un símbolo de la entrada corresponde a su generacibn en la derivaci%ln. La pila del autrjmata contiene las variabies de la cadena derivada.

6.8 Una gramatica en forma normal de Greibach para el lenguaje: ix tal que x = candbn, y n mayor o igual que cero) es:

S "-> CA A ---> &E I d 6 ---> ti

El aut6mata de pila obtenido de estas producciones es:

donde

,, , . ." .i.".. ,~ " ,

Page 30: 148.206.53.84148.206.53.84/tesiuami/uam7050.pdf148.206.53.84

I

este autbrnata acepta la sentencia "caadbb" via la secuencia:

7. 818LlOGRAFíA.

Page 31: 148.206.53.84148.206.53.84/tesiuami/uam7050.pdf148.206.53.84

Sudkamp, Thomas A. L ~ C J ~ J ~ C J ~ S and machirws.. Addison-Wesley, 1 988.

Page 32: 148.206.53.84148.206.53.84/tesiuami/uam7050.pdf148.206.53.84
Page 33: 148.206.53.84148.206.53.84/tesiuami/uam7050.pdf148.206.53.84

AUTOMATAS DE PILA

Parte If: MANUAL DE USUARIO

Page 34: 148.206.53.84148.206.53.84/tesiuami/uam7050.pdf148.206.53.84

El presente manual ofrece la informaci6n necesaria al usuario del simulador de Autttmatas de Pila, el cual forma, iunto con una monograf ia, uno da los mrjdulos que se ofrecerán al estudioso del area de la Teoría de Autbmatas.

La Teor ia de Aut6matas es un tema propia de las Matematicas, el cual requiere de gran abstraccibn y que en muchas ocasiones puede resultar dificil de comprender, ya que el c-ompcrrtamientcr del aut3mata se describe mediante una secuencia da relaciones binarias que pueden oscurecer la idea del auttimata, al perder de vista la configuracibn de la cinta, la pila y la unidad de control. Si en cambio se muestran los diferentes elementos del autdmata y se sigue paso a paso su comportamiento durante el anáiisis de una cadena de entrada, el usuario puede comprender más r6pida y fdcitmente este terna. Ademss, con este simulador, el usuario comprueba rapidamente la vaiidez de diversos modelos.

Esperamos que el usuario encuentre en el m6dulo ofrecido, una herramienta 6til en SIR estudio.

El sirnulador del arrtdmata de pila trabaia mediante un sistema de menk que le dan una presentacihn parecida a la de ambientes comerciales de desarrollo en lenguales de programacibn como C o Pascal, y que en este caso permite definir completamente los eiementos de un modelo, editar la cinta de! entrada y la tabla de transiciones, y ejecutar el modelo actual. Además, se dispone de facilidades para el maneio de archivos, con las cuales se puede cargar y guardar el modeio en disco, consultar un directorio y cambiar de directorio de trabaio.

Pensando en dar una presentacittn atractiva al simulador, en todo momento se presentan ventanas de trabajo que se abren y cierran, según se entre o salga de alguna o p c i k AI iniciar la sesihn, el area de la pantalla aparece dividida en cuatro regiones D ventanas, en las cuales queda parte de fa informaci6n que resulta despues de haber definido los alfabetos, el n6mero de estados y haber eiecutado el modelo.

Este simulador ofrece al usuario la flexibilidad de poder modificar, en cualquier momento, alguno de los elementos del modelo definido. Además permite probar la validez de diversos modelos, ensayando con distintas cadenas de entrada.

El simulador fue diseñado para funcionar en una m8quina PC cornpatittie, con tarieta CGA. Si se trabaja en una maquina con tarieta distinta a CGA, habrá ocasimes en que el cursor aparecer6 en su forma normal, a6n cuando debiera permanecer oculto.

Como un apoyo al usuario, en ai disco con el simulador hay algunos eiemplos de distintos modelos del aut6mata de pila, además de que podrá disponer de informacih mas amplia del tema en la rnonografia correspondiente.

Como siempre, cuando se desea aprender a usar algo, no basta con leer el manual de uso, sino que es recomendable al mismo tiempo de leer

I . I

I

I

Page 35: 148.206.53.84148.206.53.84/tesiuami/uam7050.pdf148.206.53.84

este manual, se observe el comportamiento del sistema en una computadora.

3. MODELO MATEMÁTICO DELAUT6MATA DE PILA

E n el estudio de los lenguajes formales, las gramáticas libres de contexto o gramaticas de tipo 2, en la clasificaci6n de Chamsky, son las; que tienen una apiicaci6n practica en computaci6n.. pues ¡a mayor ¡a de ios lenguales de progran-racidn corresponden a este tipo de gram6licas.. siendo el airtfmaia de pila el analizador sintactico de estas.

El esquema generai de esta ciase de aut6mata es el que se aprecia en la figura 1. En ella se distinguen: una cinta para la cadena de entrada, un control de estados finito y, como caracteristica principal, una pila, usada como memoria auxiliar.

Cabeza de

Figura 1 - Esquema general de un PDA

Tope

Formalmente, el aut6mata de pila no determinístico se define como un sistema [Q,E,P,F,~Q,F], donde:

Q es un coniunto finito de estados. E es el alfabeto de entrada, es decir, los simbolos de este

F es el alfabeto de la pita, es decir, sui- simbolos sor1 los que se

Manual de Usuariu - 28

conjunto san los que forman las cadenas de entrada.

pueden introducir en la pila.

Page 36: 148.206.53.84148.206.53.84/tesiuami/uam7050.pdf148.206.53.84

S es la funci6n de transicibn, definida de Q x [E U (E)] X [P U (E)] a subconiuntos de Q x [P U (E)]. El símbolo E representa la cadena vacía.

qo es el estado inicial. F subconjunto de Q, es el conjunto de estados finales o de

aceptaci6n.

La cot-1figuraciSt-1 del aut6maia est6 dada por ei simboto de la et-&& que esta siendo leído, el símbolo en el tope de la pila y el estado en el cual se encuentra el control de estados finito.

La funci6n de transici6n S lista todas las posibles configuraciones que en un momento pueden caracterizar al autdmata de pila, especificando para cada una cuát puede ser e¡ siguiente estado y cu6i 3ímboio de¡ aifabeto de 13 pila puede reemplazar al tope.

Para analizar ¡a entrada, el autdmata adopta inicialmente una configuraci6n en la que la cadena de entrada aparece et1 su cinta, lista para ser analizada, la pila está vacia y el control se encuentra en el estado inicial. Partiendo de esta configuraci6n, el aut6mata anaiiza la entrada símbolo a simbolo, asumiendo una serie de configuraciones, las cuales resultan de aplicar l-ma transidbn a !a vez.

Si el aut6mata alcanza una configuraci6n que no corresponda a ninguna de las listadas en la tabla de transiciones, se detiene rechazando la entrada.

El autdmata de pila tiene distirdcrs criterios de aceptacihn:

1. En el criterio de estado fina¡, ia entrada se acepta una vez que ha sido leida &ompletamente y se encuentra en un estado final.

2. E n el criteric de piia vacia, 13 entrada se acepta una vez que ha sido ieída completamente y la pila queda vacia.

3. En GI criterio de estado final y pila vacia, la entrada se acepta una vez que ha sido leída completamente, el autdmata se encuentra en un estado final y la pila queda vacía.

El simulador del aut6mata de pila se eiecuta desde el sistema operativo, tecleando su nombre AUTPILA. De esta manera, aparece en la pantalla un ambiente formado por:

un menu principal, en la parte superior y en el cual se distinguen las opciot-les: Archivos, Definici6r1, E dici6n y E jecucicin; el cuerpo principal del ambiente, dividido en cuatro regiones o ventanas, que se utilizan para definir los alfabetos, el n6mero de estados y para ejecutar el modelo; y en la parte inferior aparece una iinea de ayuda, en la que se describe muy brevemente, la funcih de !a rrpcidrr actual de! menu.

Page 37: 148.206.53.84148.206.53.84/tesiuami/uam7050.pdf148.206.53.84

Figura 2- Pantalla de presentacien del autcimata de pila

Con el sistema de men6 utilizado, la opcicin actual se distingue por medio de una barra de selecciin, que da a ese elemento un atributo de video distinto al resto de las opciones. Cualquier elemento del men6 puede ser elegido moviendo la barra de seleccirin hacia dl, ya sea mediante las tecias de seleccibn y dando <HE T URN> -. o bien ai oprimir la tecla de la ietra que distingue a su nornbre.

AI iniciar la sesicin, el menlj principal ofrece las opciones: Archivos, Definici6n. Edicirjn y E jecuci6n; una vez que se ha eiegido aiguna de estas opciones, se entra a un submenú, et cual presenta las funciones disponibles baio la opciin elegida.

5. ARCHIVOS.

Opci6n del menu principal que da entrada ai mcidulo que permite inicializar, cargar y guardar un modelo del autemata, n-tostrar el directorio, hacer cambio de directorio y abandonar la sesicin.

5.1 NUEVO.

Al elegir la opcicin NUEVO, en la línea de ayuda aparece un mensaje indicando que ei modelo está siendo inicializado y una vez que esto se ha verificado, se restaura la linea de ayuda.

De esta manera, se dispone ahora de un nuevo archivo de trabajo, al cual el sistema da el nombre de NUEVO.FDA, listo para que se defina un nuevo modelo. En este archivo de trabajo, io%

Page 38: 148.206.53.84148.206.53.84/tesiuami/uam7050.pdf148.206.53.84

5 -2 CARGAR-

Carga un archivo de disco, que contiene la especificacihn de algün W I Ü ~ ~ ~ Ü de authata de pila, at-tteriorrt-tet-tte guardadü et-1 el discü.

AI seleccionar esta opciún, se abre una ventana en la que se captura el nombre del archiva. El nombre deberá ser válido según ei sistema operativo, si se indica extensih esta deberá ser PDA y en caso de que la extensih no se indique, el sistema da al nombre la extensi6n PDA, la cual identifica a los archivos para ei simuiador del autdmata de pila.

La captura del nombre se conciuye al apretar la tecla <.RETURN> o la de <ESCAPE>. Si se aprieta la tecla de <ESCAPE>, la ventana de captura desaparece y se regresa al menú principal.

Si la tecla oprimida fue la de <RETURN>, e¡ sistema procede a cargar el archivo, entonces, si el nombre es correcto y ei archivo existe, el sistema fo carga. E n caso contrario, es decir, cuando de alguna manera el nombre que se prcylorcionb no es valido, el archivo no existe o se present6 algún problema que impida cargar el archivo, el sistema muestra una ventana de error indicando que se present6 algljn problema al cargar el archivo, en este momentü, para poder continuar la sesibn, es necesario apretar la tecla de <E S C4PE > .

5.3 GUARDAR.

Guarda, en un archivo de disco, el modelo da! autdmata con e! cual se est6 trabajando en ese momento.

AI seleccionar esta opcidn, se abre una ventana para capturar el nombre que se dara al archivo y que debera ser válido según el sistema operativo. No es necesario proporcionar la extensitjn del nombre, pues el sistema siempre asume qu$ es PCB, la extensibn con que se identifica a ius archivos utilizados por el simuiador del autcimata de pila. Para concluir la captura, se debe oprimir la tecla

. <RETURN> o la de <ESCAPE>. Si se aprieta la tecla de <ESCAPE>, la ventana de captura desaparece y se regresa ai menú principai; en cambio al presionar <RETURN> ~ el sistema procede a guardar el archivo indicado. En caso de que el nombre proporcionado sea incorrecto de alguna manera [parque el directorio, el nombre Ü la extensibn sean inválidos] o exista algún otro problema para guardar el archivo en disco, ei sistema abre una ventana indicando que esto ocurrir5 y para continuar con la sesir5n se debe apretar la tecla de <ESCAPE>.

Page 39: 148.206.53.84148.206.53.84/tesiuami/uam7050.pdf148.206.53.84

5.4 DIRECTORIO-

Muestra los directorios y archivos que aparecen en el directorio actual o en el indicado por el usuario.

AI seleccionar esta opcidn, aparece una ventana para ia captura del nombre de los archivos que se solicitan. La captura del nombre se concluye ai apretar la tecla de <RET URN > o la de <ESCAPE>. Si se aprieta la tecla de tESCAFE>, la vet-ttana 66 captura desaparece y se regresa al menu principal; en cambio al presionar < RE T URN > . inmediatamente desaparece la ventana de captura y se abre otra ventana en la cual se muestra el directorio solicitado. Para poder examinar el directorio, se dispone de una barra de ayuda que se mueve a trav6s de 61, mediante las teclas de direccibn. Para concluir la consulta del directorio, se debera oprimir la tech de <E S CAPE > .- con io que se regresa ai menu principal.

Muestra e¡ directorio actual y permite cambiar al drive yio directorio especificado.

AI seleccionar esta opcidn, se abre una ventana en la cual se muestra el nombre del directorio actual y se espera que sea proporcionado el nombre del directorio al cual se desea cambiar. Si en este momento se oprime la tecla <ESCAPE>-. la ventana de captura desaparece y se regresa al menii principal; si en cambio se oprime la tecla <RET URN> , el sistema procede a efectuar el cambio.

Si ei cambio de directorio no es posibie, se abre una ventana en la que se indica que hubo algún problema al tratar de hacerlo, debiendo entonces oprimir la tecla de <ESCAPE> para continuar la sesi6n.

5.6 FIN-

Permite abandonar definitivamente el simulador, regresando al sistema operativo, en el directorio actualmente activo.

Es la opciin del rnenri principal que da entrada al rnddulo en el cual se definen los elementos del autdmata, permitiendo especificar: el alfabeto de entrada, el alfabeto de la pila, el ccrniunto de estados, los estados finales y el criterio de aceptaci6n.

6-1 ALFABETO DE ENTRADA- Permite definir ¡os símbolos que conforman el alfabeto de entrada.

AI seleccionar esta opcibn, se abre una ventana en la que aparece un conjunta de caracteres de entre los cuales se prreden

Page 40: 148.206.53.84148.206.53.84/tesiuami/uam7050.pdf148.206.53.84

elegir aqudlos que formaran este alfabeto. Los caracteres elegidos aparecerr marcados.

eiimina automáticamente de la cinta y de la tabla de transiciones. A! quitar e ! p h r,ar&r,tP,r del a!fahetn de entrada, el sistema lo

6-2 ALFABETO DE LA PILA.

Permite definir los sirrttobs que cot-iforman el alfabeto de la pita. A! seleccionar esta opcibn, se abre una ventana en la que se

lista el coniunto de simbdas de entre los que se pueden elegir aqudfos que formarán este alfabeto. Los caracteres elegidos quedan marcados.

AI quitar algh carácter del alfabeto de la pila, el sistema lo elimina autom6ticamente de la tabla de transiciones.

Esta opcidn permite definir el coniunto de estados. Al entrar a ella, se abre una ventana que muestra ei cctniunto de estados actuai, pudiendo entonces ser modificado. Si así SE! desea, se pasa al modo de CAMBIO, en el que el sistema espera se indique al nuevo valor del número de estados, &te no deber6 ser mayor de 50. El coniunto de estados se enumera COMO so- 91, q2, etc. y sf: considera el estado inicial.

AI terminar de detinir el conjunta de estados, si 6ste disminuye, el sisterria elimina automaticamente aquellos estados que ya no pertenecen a éI, de la tabla de transiciones y del coniunto de estados finaies.

6-4 ESTADOS FINALES.

Esta opcibn permite definir cuáles estados, entre los que forman el coniunto de estados, son finales.

Al elegir esta opcih, se abra una ventana que muestra el coniunto de estados. Los estados que aquí se seleccionart quedan marcados.

6-5 CRITERIO-

Es la opcidn que permite definir el criterio de aceptacidn del autdmata. Cuando se elige esta opcihn, se abre una ventana en la que

abarece el criterio de aceptacidn actual, el cual puede ser cambiado simplemente al apretar la tecla de avance.

Es ¡a opci6n del menu principal que da entrada ai mbdulo en que se editan la cinta y la tabla de transiciones.

Manu#/ de Usuario - 33

Page 41: 148.206.53.84148.206.53.84/tesiuami/uam7050.pdf148.206.53.84

Cuando se elige esta opciin, se abre una ventana en la cual aparece la cinta de entrada, con la cadena de entrada limitada por unas marcas de principio y fin. Si la cinta est& vacia, los delimitadores de la cadena aparecen juntos, conforme se agregan simbolos a la cinta, la marca final se mueve a la derecha. La posiciiin en que et nuevo rimbolo re inserta es !a indicada por e! cursor. S810 se pueden escribir en ia cinta simboios del alfabeto de entrada. Durante la edicicin se puede solicitar AYUDA para consultar el alfabeto de entrada, si al hacer esta consuita se selecciona algiin simbolo, este se agrega a la cinta en la posici6n que ocupa el cursor.

7.2 TABLA.

Esta opci6n permite editar la tabla de trat-&iones, estado por estado. Considerando que una transicirjn es de la forma [qi,B] en

F[qi,aA], donde qi es el estado actual, a es el símbolo actual de la entrada, A es el simbdo en el tope de la pila, q, es el estado al que pasa el autdmata y B es el símbolo que mete el autbmata en la pila, la tabla de transiciones se define para cada estado 4,.

Ai entrar a esta opcicin, aparece una ventana con eI conjunto de estados, de los cuales se debera elegir el estado qi al cual se va a editar su tabla de transiciones. Una vez elegido el estado qi, se abre otra ventana en la que se editan sus transiciones. En esta ventana aparece indicada, en ía parte superior izquierda, la forma general de una transicibn y el estado qi actual. Mas abaio se definen columnas para los demás elementos que deben ser especificados; cada renglljn que aparezca en la tabla corresponder6 a una transici6n.

5610 se pueden incluir en la tabla simbolos validos, según la definici6n del modelo, esto es, sirrrbolos que aparezcan ets el alfabeto de entrada, de la pila y en el coniunto de estados, segun sea el caso. En todo momento es posibie soiicitar AYUDA para consultar el conjunto Correspondiente; si durante la consulta se selecciona algiin sinabolo, &te se incluye en !a tabh

De las posibilidades de edicibn ofrecidas, cabe hacer notar que la de agregar linea d o tiene efecto cuando se indica estando en la primera y uitirna columnas. En el primer caso.. la linea se agrega adelante de la actual y en el segundo caso, la linea se agrega despubs.

Ai abandonar la edici6n de la tabia de transiciones del estado qi, la ventana con la tabla desaparece y se regresa a la ventana que muestra el conjunto de estados, pudiendo continuar con la edici6n del resto de las transiciones, c? bien abandonar la edicidn de la tabla dando <ESCAPE>.

Page 42: 148.206.53.84148.206.53.84/tesiuami/uam7050.pdf148.206.53.84

Esta 28 la opcid bel men6 principal que da entrada al rniidufo en el cual se ejecuta el modelo capturado y ofrece tres posibilidades: RAPIDA, LENTA y PA50 A PASO, con et obieto de mostrar las distintas configuraciones que adopta el aut6mata durante el an6lisis de la c3den3 de entrada.

Este simulador s6io muestra la manera en que el auttimata reconoce la cadena de entrada cuando tal reconocirniento es exitoso, de otra manera d o indica que la cadena de entrada fue rechazada.

AI iniciar la ejecucih el aut6mata se encuentra en la configuracih inicial. La cadena de entrada aparece en la cinta superior y la pila es la cinta inferior. La unidad de control es el cuadro pequeño, al centro, dentro del, cual aparece el estado actual del autcimata.

Conforme la ejecuci6n procede: la cinta avanza; el estado actual del aut6mata cambia: ei contenido de la pila se moditica, agregando simboios por el extremo izquierdo, con lo que el fondo de la pila, el pequeh cuadro sblido, se desplaza hacia la derecha en caso de que el aut6mata haya metido un simbdo a ia pila o bien hacia la izquierda, cuando e¡ aut6mata quita un sirnbolo a la pila. La transici6n que aplica el autdmata para pasar de una cmfiguracidn a otra es la que se indica al lado derecho.

No es necesario esperar a que el autbmata anaiice toda la entrada, basta con oprimir la tecla de <E SCAPE> para abandonar la ejecucih en cualquier momento y regresar asi ai menu principal.

Durante la eiecuci&n, en el extremo superior derecho aparece un aviso de! grado de avance del anSlisis, cuando aGn no se ha completado éste, e¡ aviso indica PRQCESAMIENT O el cual cambia a FIN una vez que el autbmata alcanza la configuracicin final.

Las ejecuciones RAPlDA y LENTA, ocurren Iihremente, es decir, sin que su curso pueda ser determinado por el usuario, mientras que la ejecucicin PASO A PASO s i puede ser controlada por el usuario, pudiendo hacer que dicha ejecuci6n avance o retroceda.

A continuaci6n se describe el comportamiento de algunos modelos de aut6mata de pila, incluidos en el disco que contiene al simulador.

9-1 El aut6mata de pila deterministico:

con

Page 43: 148.206.53.84148.206.53.84/tesiuami/uam7050.pdf148.206.53.84

y el coniunto de estados finales F, vacio. Reconoce

con el criterio de pila vacía. A este modelo corresponde el archivo EJEMI. PDA del disco.

El aut6mata debe leer primero una c. luego debe recibir una cadena posibkmente vacia de aes, por cada a leida, guarda una B en la pila, en seguida debe feer una d y finalmente, debe recibir una cadena de ties de longitud igual al número de aes que antes I&, por cada b reconocida, quita una I3 de la pila. Por eiemplo:

este aut6mata reconoce la cadena vacia, ya que la configuracitin inicial [~o,E,E) es una coniiguracih de aceptacibn-. pues la entrada es vacia.. por lo que no ialta simbolo de esta por ser leido y la pila está vacia.

el aut6mata de pila, &PI, reconoce la cadena cadb mediante la siguiente secuencia de configuraciones:

la configuraciin final es de aceptaciin, pues la entrada ha sido procesada completamente y la pila ha quedado vac ia.

este autljmata tarnbikn reconoce la entrada cd, a trav6s de la siguiente secuencia de configuraciones:

[so, cd, E] I------ [SI, cd, S] mediante TI I""" [ql , d, A) mediante T 2 I""" [ q l ~ E, E] mediante T4-

Page 44: 148.206.53.84148.206.53.84/tesiuami/uam7050.pdf148.206.53.84

con

Reconoce {WWR tales que w está en {a, &)")e es decir, los palindromas de longitud par sobre {a, b}, con el criterio de estado finai y pila vac ia. A este autbmata corresponde el archivo EJEM2.PDA del disco.

Este aut6mata lo que hace al leer la primera mitad de la cadena, es guardar esta parte en la pila conforme procede la lectura, de manera que el contenido de ¡a pila, visto del tope hacia el fondo, es el refleio de la primera mitad de la cadena, y el cual debera coincidir con el resto de la entrada, leida en seguida. Por ejemplo:

el aut6mata reconoce la cadena varia, mediante el movimiento

alcanzando una configuraci6n que satisface el criterio de aceptaciiin, ya que el estado q l es final, no faita símbolo alguno en la entrada por ser leído y la pila está vacia.

este autbmata reconoce la cadena abha, al efectuar la siguiente secuencia de movimientos:

190.. abba, E](------ [so-. bba, Aj mediante T 1 I""" [sa-. ba, BAj mediante T 2 1""" [SIi ba.. BA) mediante T 3 I""" is1 .. a-. AI mediante T 5 I""" Is1 -* e €1 mediante T 4.

Observemos que la eleccicin de las transiciones apkadas ha sido adecuada, ya que permitid alcanzar una configuracidn aceptable. Pero veamos lo que ocurre cuando no se hace una buena eleccih:

[qua abba, E][------ [sa, bba, A) mediante TI I""" [sa, ha, EA] mediante T 2 I""" [sa, a, E BA] mediante T 2 I""" [so, E, AEBA] mediante TI

Page 45: 148.206.53.84148.206.53.84/tesiuami/uam7050.pdf148.206.53.84

1""" [ql , E, BEBA) mediante T3,

en este caso el autbmata aplica la segunda transicidn para efectuar el tercer movimiento, llegando a una configuracidn que no es aceptable, pues aunque ei sutbrnata se encuentra en un estado final y la cadena de entrada fue leida por campieto-. la piia no suedti vacia.

9- 3 El aut6mata de pila deterministico:

con

Reconoce cadenas de la forma aihi, para i mayor o igual que cero, bajo el criterio de estado final y pila vacia. A este aut6msta corresponde el archivo EJEM3. PDA del disco.

En el reconocimiento, mientras este aut6nsata lee la cadena de aes, mete por cada simholo leido una P. en la pila. En cuanto lee la primera b, cambia de estada para continuar ieyendo la cadena de tres, esperando leer tantas bes corno aes recbi6; por cada b que lee en la entrada, quita una A de la pila. Por ejemplo:

el aut6mata reconoce la cadena vacia pues la configuracitin inicial [~o,E,E] es una configuracibn de aceptacitin: el estado es fina¡, no falta simboio alguno en la entrada p o r ser ieido y la pira esta vacia.

este autbmata reconoce la cadena aabb, al efectuar la siguiente secuencia de movimientos:

9-4 El autdmata de pila deterministico:

con

Page 46: 148.206.53.84148.206.53.84/tesiuami/uam7050.pdf148.206.53.84

Reconoce cadenas de la forma aibzi, para i mayar o igual que uno, con el criterio de estado final y pila vacia. A este autdmata corresponde el archivo E.JEM4.PDA del disco.

Este aut6mata lee primero la cadena de aes, metiendo a la pila dos Aes, por cada a de la entrada. En cuanto lee una b en la entrada, espera leer el doble de bes que de aes, y por cada b.. quita una A de la pila. For ejemplo, la secuencia de configuraciones por las cuales pasa este autrjrnata a! reconocer !a cadena aahhhb es :

mediant e T 1 mediant e T 4 mediante T 1 mediante T4 mediante T 2 mediante T 3 mediante T 3 mediante T 3

la última configuracibn es de aceptacidn, ya que en ella el autrjmata se encuentra en un estado final, la pila quedb vacia y la entrada fue leída completamente, con lo cual se satisface el criterio de aceptacibn.

9.5 El autbmata de pila deterrninistico:

con funciún de transicirjn

Reconoce cadenas de la forma ancbn, para n mayor o igual que cero, halo el criterio da estado fina! y pila vacia. este rnm!eko es el correspondiente ai archivo EJEM5.PDA del disco.

En el :econccirniento, el aut6rnata lee primero 13 cadena de aes, metiendo a ia pila un simboia A por cada a ieida en ia entrada. Et1 cuatlto el authata detecta una C, cambia de estado JJ pasa a

Manual de Usuarrb - 39

Page 47: 148.206.53.84148.206.53.84/tesiuami/uam7050.pdf148.206.53.84

reconocer ¡a cadena de &es, esperando ieer igual número de bes que de aes recibiB. Por cada b de la entrada, quita una A de la pila.

Por eiemplo, este autimata reconoce la cadena de un sob simbolo, c, mediante ía transicibn 12:

con lo cual alcanza una cclnfiguracibn que cumple con el criterio de aceptacih, pues llega al estado final 91, la pila queda vacía y no falta símbolo alguno en la entrada por leer.

Así misma, este autcjmata reconoce la entrada aacbb, a traves de la siguiente secuencia de configuraciones:

Page 48: 148.206.53.84148.206.53.84/tesiuami/uam7050.pdf148.206.53.84
Page 49: 148.206.53.84148.206.53.84/tesiuami/uam7050.pdf148.206.53.84

AUTOMATAS DE PllA

JNFURME Tf%N1CO

Universidad Autbnoma Metropolitana - lztapalapa Programa de Educacidn en Ciencias Basicas e lngenier ía

Departamento de lngenier ía Ektrica, Area de lngenier ia Electrbnica

RESUMEN

El presente manual expone los aspectos t6cnicos baio los cuales se desarrollij el simulador del Autijrnata de Pila. Indica la n-lanera en que se empie6 et software que sirvi6 de apoyo en su realimaci6n, así mismo, explica la forma en que se representan los elementos del aut6mata y muestra los aspectos mas importantes de los procedimientos que permiten: el maneio de archivas, definir al autcimata, editar la cinta de entrada y la tabla de transiciones, analizar la entrada y eiecutar el modelo capturado.

Page 50: 148.206.53.84148.206.53.84/tesiuami/uam7050.pdf148.206.53.84

7

2. OBJETIVOS

3. DESARROLLO TEdRlCO

i

4. REALIZ4CIbN

4.1 MANEJO DE MENOS Y DE VENTANAS 4 I 2 MANEJO DE ARCHIVOS

4.2.1 CAPTURA DEL NOMBRE DE UN ARCHIVO 4.2.2 DESCRIPC16N DEL ARCHIVO QUE CONTIENE

EL MODELO ". ~~

4.2.3 EL DIRECTORIO 4.2.4 C4NBIO DE DIRECTORIO

4.3 REPRESENTACION DE LOS ELEMENTOS DEL .. ~

AUTOMATA 4.3.1 LOS ALFABETOS 4.3.2 EL CONJUNTO DE ESTADOS 4.3.3 LA CINTA 4.3.4 LA TABLA DE TRANSICIONES

4.4.1 DEFlNlClbN DE LOS ALFABETOS 4.4.2 DEFINICI6N DEL CONJUNTO DE ESTADOS 4.4.3 DEFlNlCldN DEL CONJUNTO DE ESTADOS

4.4 PROCESOS DE DEFlNIClbN

FINALE S

4 4.4.1 ACTUALIZACI6N POR CAMBIO DEL 4.4.4 ACTUALIZACIdN DE LA CINTA" DE LA TABLA

" " .. ~

ALFABETO DE ENTRADA

ALFABETO DE PILA

CONJUNTO DE ESTADOS

4.4.4.2 ACTUALIZACION POR CAMBIO DEL

4.4.4.3 ACTClALiZACldN POR CAMBIO DEL

4.5 PROCESOS DE ÉDICION 4.5.1 EDlClbN DE LA CINTA 4.5.2 EDlClbN DE IA TABLA DE TRANSICIONES

4.6 ANALISIS DE LA ENTRADA 4.7 EJECUCIdN DEL MODELO

5. RESULTADOS Y CONCLUSiONES

6. BIBLIOGRAFíA

2 3

3 -7

4 4

8 8 9 9

IO IL-! 17 12

12 13

14

15

75 15 15 16 17 21 rl -7"

í 3 ??

Page 51: 148.206.53.84148.206.53.84/tesiuami/uam7050.pdf148.206.53.84

Eí desarrollo de la Computacidn ha despertado en todo el mundo, al inter6r par utilizar a la computadora como un auxiliar educativo. La enseñanza asistida por computadora abarca campos tan diversos como las ciencias sociales, las matematicas, la f isica, la qu ímica.- etc. En M6xico.. sin embargo, poco se ha hecho por utilizar a fa computadora para ensefiar ccrmputaciiin.

El Grupo de Computacibn de la UAM-Mapalapa, con una experiencia de varios años en ¡a ensefianza, ha visto que frecuentemente no se dispone de todos los elementos necesarios para transmitir las ideas y conocimientos, siendo mayores las dificultades en materias con alto contenido tedrico, las cuales requieren de gran capacidad de abstracciiin, por ello piensa que si la comput3dora es utilizada para reforzar el aprendizale, los problemas antes citados podrán ser sanados en gran medida.

Uno de los cursos tedriccrs comprendidos en el estudio profesional de la Computacirjn, es el de la Tear ía Matemdtica de la Ccrmputacicin, donde uno de los temas mas destacadas es ¡a Tearia de Autiimatas. Con e¡ fin de facilitar la comprensibn de este tema, se planted el desarrollo de un paquete didictico para la ensefianza de la Teoria de Aut6matas, el cual incluyera los modelos más importantes: Máquina de Turing, Autbmata de Estados Finitos y .4utdmata de Pila. Cada una de estos m6dulos deberia ofrecer una monografia del tema, as i como un programa sirnulador del auttimata correspondiente.

La monografia tiene la intencicin de introducir at alumno en los aspectos más importantes de¡ tema. Dado que este materia¡ sera producido por la universidad, estara al afcance de todos a un precio nuy baio [cuatro mil pesos, 1.2 drjlares), comparado con el de los textos que sobre el tema existen, los cuales provienen de E stadcrs Unidos y Europa [3O o SO dlcilares por libro].

Por otra parte, el simulador de cada uno de los autbmatas sera ofrecido en un disco flexible, el cual pdr6 ser utilizado en computadaras PC y compatibles. De esta manera, el alumno podrá experimentar cada modelo dinámicamente; podra especificar interactivamente cada una de los elementos de un rrrodelo dado, ver c6mo se comporta y m~dificar su especificacitjn en cuaiquier instante. En el misms disco se inclt-+irBn algl-mos eiempios, cuya expiicacib será dada en la monografía.

2- OBJETIVOS.

El trabaio aquí presentado tuvo por obietivo la elaboracibn de un mddulo didactico que sirva de apoyo ai estudio del tema Autlcimata de Pila, incluido en el curso Tear ía Matemática de la Cornputaciin, impartido en la D ivisiBn de Ciencias Básicas e lngenier ia de la UAM-Iztapalapa. E I mtjdulo consta de una manograf ía con la recopilaciiin bibliografica del material más importante del terna, así como de un programa simulador de este autbmata.

- I -

Page 52: 148.206.53.84148.206.53.84/tesiuami/uam7050.pdf148.206.53.84

En e! estudio de !os Iengluajes formales, las gramaticas libres de contexto o gramáticas de tipo 2, en la clasiiicaci6n de Chomsky, son las que tienen una aplicacidn practica en computacih, pues la mayor ía de los lenguales de programaci6n corresponden a este tipo de gramaticas, siendo el authmata de pila el analizador sintdctico de estas.

El esquema general de esta clase de autbmata es el que re aprecia en ia figura 7 - En elia se distinguen: una cinta para ¡a cadena de entrada, un control de estados finito y, corno característica principal, una pila, usada como memoria auxiliar.

Cinta de entrada

Cabeza Lectora I

Figura 1 - Esquema general de un PDA

Q E

P

S

so F

es un conjlmto finito de estados. es el alfabeto de entrada, es decir, los símholos de este coniunto son los que forman las cadenas de entrada. es el alfabeto de la pila, es decir, sus simbolos son los que se pueden introducir en la pila. es la funcidn de transicibn, definida de Q x [E U {E)] x [P U {E)] a suhconjuntcrs de Q x [P U {E)]. El símbolo E representa la cadena vacía. es el estado inicial. shconj1mtD de Q, es e! conjunto de estados finales o de acepiacibn.

Page 53: 148.206.53.84148.206.53.84/tesiuami/uam7050.pdf148.206.53.84

La configuracibn del autbmata esta dada por el simbolo de la entrada que está siendo leido, el símbolo en el tope de la pila y el estado en el cual se encuentra el control de estados finito.

La funci6n de transicicin 6 lista todas las posibles configuraciones que en un momento pueden caracterizar ai authata de pila, especificando para cada una cu61 puede ser el Siguiente estado y cual simtdo del alfabeto de !a pila puede reemplazar ai tope.

Para analizar ia entrada, el autilimata adopta iniciaimente una configuraci6n en la que la cadena de entrada aparece en su cinta, lista para ser analizada, la pila esta vacia y el control se encuentra en e! estado inicial. Partiendo de esta configuracibn, el autbmata andiza la entrada símbolo 3 sirnbolo, asumiendo un3 serie de configuraciones, las cuales resultan de apiicar una transicibn a ¡a vez.

Si el autdmata alcaaza una confipuracilin que no corresponda a ninguna de las listadas en !a tabla de transiciones, se detiene rechazando la entrada.

El autcimata de pila tiene distintos criterios de aceptaci6n:

1 - En el criterio de estado final, la entrada se acepta una vez que ha sido leída completamente y se encuentra en un astado final.

2. En el criterio de pila vacia, la entrada se acepta una vez que ha sido leída completamente y la pila queda vacia.

3. E n el criterio de estado final y pifa vacia, la entrada se acepta una vez que ha sido leida completamente, e¡ autilimata se encuentra en un estado final y la pila queda vacía.

Para la reaiizacibn del simulador del Auttimata de Pila, se utilizfi como software el compilador de Turbo Pascal 5.0, el paquete de Turbo Professional 4.03 [el cual facilit6 el sistema de menús, así como las ventanas empleadas] y ¡a unidad Videdux.

4-1 MANEJO PE MEN05 Y DE VENTANAS.

La idea, bajo la cual se desarro116 el simulador del Aut6mata de Pila, fue la de ofrecer al usuario un ambiente dinamico, que le permitiera especificar de manera interactiva cada componente del modelo en estudio, ver c6mo funciona y modificar en cualquier momento su configuracih.

Conforme a esta idea, se consider6 que debería ofrecerse un ambiente a base de mentis, para el cual se definieron como operaciones básicas: el maneio de archivos, ia definiciiin de los elementos det autcimata, la edicidn de la cinta y de la tabla de transiciones.. asi como la eiecuci6n del modelo capturado. Y con el fin de dar una presentaciljn atractiva al programa, se pens6 en usar ventanas como Brea de trabajo.

Page 54: 148.206.53.84148.206.53.84/tesiuami/uam7050.pdf148.206.53.84

De esta manera, el software que ventajosamente cubrib estas necesidades se encontrcj en Turbo Professional 4-03. Especificamente, el sistema de menc-is fue elaborado mediante el programa MenuMaker, y las ventanas fueron creadas mediante la unidad TWindow de este mismo paquete.

El uso de¡ programa MenuMaker fue bastante c6modo, pues permitirj crear de manera interactiva el men6. Con 81, uno puede facilmente especificar las características del menti principal y submenbs, como ron: el tipo de marco, títulos, colores, orientaci6n, posici6n de la línea de ayuda, editar la linea de ayuda, etc, y una vez conforme con el resultado obtenido, el programa genera el c6digo fuente en Pascal que produce el menú actual y. puede incluirse despuis en un programa de aplicacicjn.

Esta fue precisamente la manera en la cual se disefi6 el sistema de met-lirs usado en el simulador del Aut3mata de Fila. En este casü, el cúdigo generado por el programa M enuMaker es incluido en el programa principal del simulador, como el procedimiento InitMenu.

El uso de las ventanas de Turboprofessional fue mediante la unidad TPWindow. El analisis de esta unidad permiti6 incluir en el programa simulador las funciones y procedimientos para crear, utilizar y en su caso liberar las ventanas que en 61 aparecen.

La unidad Videdux result6 ütil ya que incluye el procedimiento de corttroi del cursor, con el cual el &te puede ser oculiado, requiriendo, sin embargo, el uso de tarjeta CG.4.

4.2 MANEJO DE ARCHIVOS-

Mediante el mcjdulo de maneio de archivos, se ofrece al usuario los procedimientos que le permiten cargar o guardar los archivos de disco con informacibn de modelos del aut6mata de pila.. mostrar el directorio, hacer cambio de directorio y abandonar definitivamente la sesi6n.

En un principio, se tenia contemplado tambidn permitir la salida temporal al sistema operativo, sin embargo, esto requer ia utilizar el procedimiento EXEC de Turbo Pascal, para lo cual se debe especificar un tama6o m6ximo de heap, que en caso de no ser el adecuado no permitir6 realizar la salida, ai no disponer de memoria suficiente. Fue posible encontrar un tamaAo de heap adecuado para la maquina en que se trabaj6, sin embargo.. &te no siempre funcionaba al cambiar de equipo, por lo que se decidi6 eliminar esta opcibn.

4-2-1 CAPTURA DEL NOM8RE DE UN ARCHIVO.

Para obtener el nombre de un archivo, ¡a zona de captura dispone de 42 columnas. La primer columns es ocupada por la marca de continuacibn hacia el principio: en las siguientes 40 columnas, de la 2 a la 41, aparece el tsorntre del archivo; y la columna 42 es ocupada por la marca de continuacibn hacia el final.

- # -

Page 55: 148.206.53.84148.206.53.84/tesiuami/uam7050.pdf148.206.53.84

Los procedimientos que permiten editar el nombre del archivo utilizan las variables Ind y PosCursor.

I nd es el indice en la cadena para el nombre deí

PosCursor es la posici6n que ocupa el cursor en la zona de archivo, del carácter actual.

captura.

4.2.2 DESCRiPCldN DEL ARCHIV'O QUE CQNTlENE EL MODELO.

El archivo en el cual se guarda la informaci6n correspondiente a! modelo de un aut6mata de pila es de tipo texto, con lineas de hasta EIU caracteres.

Fara distinguir la informaciht-1 del autbmata almacenado en el archivo, se usan etiquetas formadas por dos caracteres: el primero es una letra con la cuai se identifica el elemento del autbmata cuya informacibn es la contenida en esa misma línea y de ser necesario en las siguientes; despues aparecen dos puntos, se deia un espacio y luego aparece la informacibn correspondiente, de manera que ista siempre se presenta J partir de Sa cuarta coiumna.

La primera lima del archivo tiene corm etiqtieta A: y contiene el criterio de aceptacidn.

La segunda iinea del archivo lleva ia etiqueta E: y da lugar al alfabeto de entrada. Para ello, los caracteres que Forman este alfabeto aparecen separados por un espacio. Como este alfabeto puede formarse con hasta 94 caracteres, es posible que ocupe hasta dos líneas del archivo.

La tercera linea del archivo, es la que lleva la etiqueta P: e identifica al alfabeto de la pila. AI igual que en el caso anterior, aquí aparecen los caracteres que forman este conjunto, separados por un espacio, e igualmente, como este alfabeto puede formarse con hasta 94 caracteres, cabe la posibilidad de que ai guardarlo se hayan requerido dos lineas.

La cuarta iínea, identificada por la etiqueta S:, contiene el numero de estados.

La siguiente linea" si lleva la etiqueta F:, contiene el conjunto de estados finales. Esta linea es opcional, pues se consider6 que no era necesario generarla cuando el coniuntcr de estados fuera vacío. Esta linea aparece como una secuencia de ceros y unos de tama6o 50, el número máximo de estados de que se puede disponer. Aqui, el digito en la i-dsima columna indica si el estado qi-1 es o no un estado final: si a este ie corresponde un cero en el archivoa quiere decir que ei estado no es final, y al contrario, cu3ndo hay un uno, el estado correspondiente es final. Como la cadena de ceros y unos no tiene espacios y el nljn-ero nldximo de estados es 50, basta una

- 5 -

Page 56: 148.206.53.84148.206.53.84/tesiuami/uam7050.pdf148.206.53.84

linea para contener la informaci6n reiativa al conjunto de estados finales.

La slg~tiente !Inca que puede aparecer en PI! archivo 6s la que tiene la etiqueta C: Esta linea es opcional, pues no se genera en caso de que la cinta estuviera vacia al guardar la informaciljn del aut6mata en el archivo. En caso de que esta linea aparezca, muestra el contenido de la cinta a partir de la cuarta columna y como no hay límite en el tamaEo de la cinta, pueden ocuparse más de una linea del archivo.

La ultima línea que puede aparecer en el archivo, tiene la etiqueta T: e indica que la siguiente informaci6n corresponde a la tabla de transiciones, pudiendo ocupar más de una linea del archivo, pues por cada transicidn se ocupa una linea del archivo. Considerando la forma general de una transicibn:

la informaciljn se organiz6 en columnas separadas por un espacia La primera columna es para el estada actual de la entrada si; la swunda para el simbolo actual de la entrada, a; la tercera es para al simbolo actual en el tope de la pila, A; la cuarta es para el siguiente estado, q,, y la ú¡tima coiumna es para el nuevo simboio que se mete a la piia, B. Cada uno de los símbolos de algún alfabeto ocupa un campo para un caracter, en tanto que para los estados puede ser necesario un campo de dos caracteres.

Por la forma en la cual se guarda el modelo en el archivo, ELI procedimiento para recuperar esta informaci6n tiene e¡ siguiente pseudoc6digo:

- Proc Cargdrch comienza

I ' lee el criterio de aceptaciiin " " lee el alfabeto de entrada "

" lee el alfabeto de la pila " 'I lee el número de estados I' - si I' ya no hay mas lineas " entonces REGRESA - otro

comienza - si " la etiqueta de la siguiente linea es F: " entonces

comienza " lee et coniunto de estados finales " - si "ya no hay más lineas " entonces REGRESA

termina - si 'I la etiqueta de la siguiente linea es C: I' entonces

comienza " lee la cinta " si "ya no hay mas lineas " entonces REGRESA

termina

-6-

Page 57: 148.206.53.84148.206.53.84/tesiuami/uam7050.pdf148.206.53.84

" lee la tabla de transiciones " termina

termina

4.2.3 EL DIRECTORIO.

Para mostrar los nombres de los archivos y directorios que aparecen en el directorio especificado por el usuario, se sigui6 ia presentaciiin que se observa en el compiiador de Turbo Pascal, la cual dispone de una ventana de 9 renglones por 4 columnas. En ella, primero se escriben los nombres de archivos seguida por ros nomtrres be ¡os directorios, los cuales se distinguen porque terminan con el carJcter 1.

Los nombres de los archivos y directorios, del directorio especificado, se leet1 del disco y se afmacet-lat-1 et] ut~a fish doblemente ligada. E! apuntador a esta lista es LP.rch $1 el campo de infarmacibn de los nodos es una cadena de 13 caracteres.

E n la lista del directorio aparecen, primero los nombres de los archivos, seguidos por los nombres de los directorios incluidos en el directorio especificado. Como estos nombres se ordenan alfab6ticamente.. conforme se incluyen en la lista, para . distinguir loss nombres de Ius directorios y hacer que vayan despuks de tos archivos, en el nombre del directorio se inserta ai principio, el caracter 1, con ccidigo ASCII mayor que el de una letra. Es por esto que el campo de informacih de 10s nodos es una cadena de 13 caracteres: uno por el caracter i, el cual distingue el nombre de un directorio y 12 para el nombre. Luego, cuando es necesario escribir el nombre de un directorio, se escribe primero, la cadena a partir del segundo caracter y al final se escribe el caracter \.

Para consultar la informacicjn del directorio, se mueve una barra que distingue a un nombre, por el espacio de la ventana. Corno el directorio puede tener m& de 3E elementos, ai consultar ¡a informaci6n se puede observar su corrimiento en ia ventana, hacia arriba o hacia abajo.

Para controlar cuSles nombres se muestran en la ventana, se utilizan las siguientes variables:

Col y Ren especifican la posici6n [Columna, Renglcjn] de la barra distintiva dentro de la ventana;

In¡ y Fin son dos apuntadores a la lista del directorio. Ini apunta al primer nombre y Fin apunta al Último nombre que se muestran en un momento dado en Is ventana, y

NoElemUR es una variable que indica cuantos nombres aparecen en el ultimo rengldn ocupado, pudiendo tomar valores entre 1 y 4.

Page 58: 148.206.53.84148.206.53.84/tesiuami/uam7050.pdf148.206.53.84

4.2-4 CAMBIO DE DIRECTORIO.

E! psac-Jdocridigo del procedimiento para realizar el cambio de directorio es el siguiente:

Proc CambiaDir comienza

" lee el nombre del directorio al que se desea cambiar "

- si " se ley6 algún nombre " entonces comienza

" cambia al nuevo directorio " - si '' el cambio no es posible " entonces

" regresa al directorio anterior Is " indica que ocurri6 afgún problema "

comienza

termina - otro '' actualiza el nombre de¡ directorio ' I

termina termina

Como se ve, este procedimiento es bastante simple y hace uso de los procedimientos de Turbo Pascal, Choir y GetDir, los cuales permiten cambiar de directorio y obtener el directorio especificado, respectivamente.

4.3 REPRESENTACION DE LOS ELEMENTOS DEL AUTOMATA-

4.3-1 LOS ALFABETOS-

La estructura de. datos que se usa para representar a los alfabetos es un arreglo booleano de tamafio 94. El arreglo para el alfabeto de entrada es AIfEntrada y para e¡ de la pila es AlfPila. Estos arreglos son de tipo global y aparecen declarados en la unidad Globales de la siguiente manera:

type Asci¡ = array[33..126] of boolean;

var AIfEntrada, AifPila: Ascii;

El subintervalo del arreglo tipo Asci fue elegido de 33 a 126, pues el c6digo ASCII de los caracteres, que se presentan para formar cada uno de las alfabetos, est& en este intervalo. Si el caracter con c6digo ASCII n pertenece a uno de los alfabetos, entonces el n-Bsimo elemento del arreglo correspondiente deberá ser verdadero.

- 8 -

Page 59: 148.206.53.84148.206.53.84/tesiuami/uam7050.pdf148.206.53.84

Cuando ei modeio toma su estado inicial, ya sea ai principiar la sesibn o cuando se elige la opcibn Nuevo del menu de Archivos, a todas las entradas de ¡os arreglos para los alfaktos se les asigna el vaior faiso, con lo cual estos coniuntos quedan vacíos.

4-3-2 EL CONJUNTO DE ESTADOS.

El número de estados que forman el conjunto de estados se almacena en la variable global, NumEdos, que es de tipo byte, y a la que se asocia la cadena S tsNumEdos. Cada vez que estas variabies toman su vaior iniciai, se ¡es asigna ei vaior de cero.

De esta manera, se asume qua el coniunto de estados &a formado por 90, 91 , . . . , QN umE dos-i .

Como ut1 estado puede ser final y adernas puede terser asociada una lista de transiciones, se dispuso de un arreglo iiamado Estados, de 50 registros. Cada uno de estos registros tiene dos campos: uno de tipo booleano, llamado Esfinal, que cuando es verdadero, indica que el estado correspondiente es final; el otro campo, Trans, es un apuntador a la lista de transiciones del estado.

E l arreglo Estados es global y aparece declarado en ¡a unidad G l~trales, CorrlO sigue:

RegEdo = record EsFinal : boolean; Trans : ApRegTrans

end; var

E stadas : arrayf0.. 493 of R egE do;

Cada vez que e¡ modelo toma su estado inicial, al campo EsFinal se le asigna el valor falso, de manera que el coniunto de estados finales queda vac io. Asi mismo, se liberan las transiciones asociadas a un cierto estado y se asigna f4IL [N U LO 3 al campo Trans.

4.3-3 LA CINTA.

La cinta de entrada se representa por una lista doblemente ligada. Las variables globales Cinta y FinCinta, apuntan al principio y fin de la cinta, respectivamente. La forma en que estas variables son deciaradas en ia unidad Giobaíes es:

- 9 -

Page 60: 148.206.53.84148.206.53.84/tesiuami/uam7050.pdf148.206.53.84

Nodo = record info : char; Liga-i, Liga-d : PtrNodc!

end:

var Cinta, FinCinta : PtrNodci;

Cuando el modelo toma su estado inicial, la cinta de entrada es liberada, con lo cual Cinta y FinCinta quedan apuntando a NIL [NULO].

4-3-4 U4 TABLA DE TRANSICIONES-

Considerando que la forma general de una transící6n es

la tabla de transiciones se forma por una lista de transiciones, asociada al estado qi a traves del campo Trans, del registro correspondiente al estada qi en el arreglo Estados.

Una transicidn se representa por un registro con los campos Entrada, Topepila, S gteEdo y NvoTope, que corresponden: al símbolo de la entrada a, al símbolo en el tope de la pila, A-. al siguiente estado, qi al cual pasa el autbmata y al símbolo que debe meterse a la pila, 8 , respectivamente, de la transici6n. Este registro se declara globalmente COMO sigue:

ApR egT ram = R egT rans; RegTrans = record

A

Ap-i , Ap-i) : ApregT rans; E ntrada,T opePifa,N voT ope : char; SgteEdo : string

end;

Cuando el modelo toma su estado inicial, todas las listas de transiciones son liberadas y el campo Trans de cada registro del arreglo Estados apunta a NIL [NULO).

4-4 PROCESOS DE DEFINICI6N.

Son los procesas mediante los cuales se definen los elemetltos del autbmata: alfabetos, coniunto de estados, estados finates y criterio de aceptaciirn, y que se encuentran en la unidad Define.

En la unidad Define tarntiih se incluyen los procedimientos que permiten ofrecer una ayuda al usuario, en el momento de editar la cinta y la ia&la de transiciones, mostrandole, según sea el caso, el

- 317-

Page 61: 148.206.53.84148.206.53.84/tesiuami/uam7050.pdf148.206.53.84

aifabeto de entrada, e¡ aifabeto de la pira y el conjunto de estados. Tales procedimientos son CapturaCaracter y CapturaEdo.

Con el fin de distinguir cuál elemento del aut6mata va a ser definido o bien cuál es la ayuda requerida por e¡ usuario, en la unidad Globales se hicieron las siguientes declaraciones:

T ipo0 p = [O effinales, E dCinta, T ransE nt,T ransPila, T ransQi, T ransQ 1);

var OpCapt : Tipcap;

Cuando la variable UpCapt toma el valor del primer dato del tipo enumerativo, indica que se va a definir ei conjunto de estados tinaies.

Los demás valores posibles para la variable OpCapt, indican que el procedimiento a realizar ofrecerá una ayuda. Cuando OpCapt es EdCinta, la ayuda es para editar la cinta. Los siguientes valores de OpCapt ocurren cuando se debe proporcionar ayuda para editar la tabla de transiciones: siendo [q,,B] en &fq;,aA], !a Forma general de wna transicicin:

TransEnt indica que la ayuda fue solicitada para dar valor al símbolo actuai en la cadena de entrada, a;

Transpila indica que la ayuda fue solicitada para dar valor al símbolo en el tope de la pila, A, o al nuevo tope de la pila. 8;

TransQi indica que la ayuda fue solicitada para dar valor al estado actual, qi; y

TransQi indica que la ayuda fue solicitada para dar valor al campo para e¡ siguiente estado, qi-

4.4-1 DEFINICIdN DE LOS ALFABETOS-

Fara definir un alfabeto se presenta una tabla con los caracteres con ccidigo ASCII 33 ai 1 26, entre los que se pueden elegir a aquellos que formaran al coniunto. Los caracteres que pertenecen aJ alfabeto aparecen marcados.

El procedimiento para definir un alfabeto simplemente cada vez que un carácter es seleccionado por e¡ usuario, niega al elemento del arreglo correspondiente det alfabeto en cuestibn.

El pseudocbdigo del procedimiento para formar un alfabeto es:

Proc Form~lfab~tofAlfabeto, SiElgio] comienza

[Col, Ben) <----- "coordenadas del primer caracter de la tabla " S ¡E ligio <I---- falso S al < ----- falso

- 7 7 -

Page 62: 148.206.53.84148.206.53.84/tesiuami/uam7050.pdf148.206.53.84

repite - lee[T eclaf - caso T d a ses E sc : Sal <----- verdad Espacio : comienza

Codigo < ----- 'I &digo ASCII del caracter actual I'

AIfab&o[Cadig~] +E----- [AIfabet~jCodig~]]

otro "'desmarca al caraicter I '

- si Alfabeto[Codigof entonces "marca al carácter I'

S ¡E ligio e----- verdad -

termina Left, Right, Up, Down : ' I mueve el cursor 'I

fin caso hasta Sa¡

termina

S iEligio es una variable de tipo booleana, la cual cuando resulta verdadera indica que al menos uno de los caracteres fue seleccionado, Io cual hace necesario actualizar la cinta y ¡a tabla de transiciones.

4.4-2 DEFiNiCIflN DEL CONJUNTO DE ESTADOS.

Para definir el coniunto de estados, basta con que el usuario indique cuantos estados forman este coniunto, siendo permitidos de U a 50. El número de estados que forman el coniunto se almacena en la variable de tipo byte NumEdcrs, a la cual se asocia la cadena, StrNumEdos. Cada vez que estas variables toman su valor inicial, se les da el valor de cero.

De esta manera, se asume que el conjunto de estados está formado por So, 91, q2- .-. , qNumEdos-1-

4.4.3 DEFINlCldN DEL CONJUNTO DE ESTADOS FiNALES-

Para formar el conjunto de estados finales se presenta el coniunto de estados del autbmata, de donde el usuario puede seleccionar a los finales, los cuales aparecen marcados.

El procedimiento que permite definir el coniunto de estados finales, niega el campo Esfinal del estado seleccionado por el usuafio. E! pseudochdiqo correspondiente es:

Proc E IigeFinales comienza

I ' pon el cursor en el primer estado de la tabla ' I

Sal <-"" falso repite - lee [Tecla)

Page 63: 148.206.53.84148.206.53.84/tesiuami/uam7050.pdf148.206.53.84

EsFinaliE stadosjE do]] < ----- @[EsFinal[Estadas[E do]]] si E sFinal[Estados[Edcr]] entortces "marca al estadü"

- otro " desmarca al estado "

termina Left, Right, Up, DDown : " mueve el cursor " -

fin caso hasta Sa¡

termina

4 - 4 4 ACTUALlZAClbN DE LA CINTA Y DE LA TABLA-

Cada vez que el alfabeto de entrada, el alfabeto de la pila o bien el conjunto de estados es modificado, es necesario revisar que en la cinta y en la tabla de transiciones aparezcan simbolos de los alfabetos y estados que sean v6lidos. Para tal efecto, en la unidad Define aparecen los procedimientos RevisaCinta, RevisaT abla y HeduceT abla.

Proc R evisaCinta comienza Q <""- Cinta mientras '' W sea distinta de nil " haz

comienza Codigo < ----- CodigoAscii[lnfo[Q]] - si AlfEntrada[Codigo] entonces Q <----- Liga-D[Q j

- otro EliminaCarCinta[Q] termina

termina

comienza - si [ Simbolo <> Espacio) 8. [ Simbolo < > CadenaVacia] 8.

not Aliabetcr[Codigcl4scii[ Sirnbolo 3 ] entonces S irnbcrlo < ----- E spacio

termina

Proc R ev*isaT abla[ Campo 3 comienza - for lnd <----- 1 to NumEdos &

W <----- T ransf Ind - I ] mientras Q <> nil haz

comienza

comienza caso Campo sea

- 13-

Page 64: 148.206.53.84148.206.53.84/tesiuami/uam7050.pdf148.206.53.84

TransEnt : RevisaSimboio[ Entrada( Q AifEntrada 1 T ransPila : comienza

RevisaSimbolo[ T opsPila[ Q 1, AIfPila 1 RevisaSimbolo[ NvoT ope( Q 1, AlfPila 1

- si-Qi >= NumEdos entonces SgteEdo[ Q ] X----- Cadenat4 ula

termina fin caso Q <----- Ap-D[ Q

termina termina

termina

Proc ReduceTabIaC NumEdosAnt ] !" N umE dcrsAnt indica el valor anterior de NumE dos "1 comienza - for I <----- NumEdos NumEdosAnt-1 &

comienza EsFinalj Estados[ I 3 3 <----- falso mientras Trans[ Estados[ I ] 1 <> n i l k

comienza Q .S""- .. Trans[ Estados[ I ] ) Trans < ----- Ac.?-L)[ T ra& ] Q => Dispo

termina termina R evisaT ablal T ransQ i j

termina

4.4-4.1 ACTUALlZACldN POR CAMBIO DEL ALFABETO DE ENTRADA-

Siempre que el alfabeto de entrada es modificado, la cinta así como el campo para el símbolo actual de la entrada, de la tabla de trat-isicicmes, se revisan para que s d a contengan simbolos pertenecientes a este alfabeto. Si al hacer esta revisi6n se encuentra un car6cter que ya no pertenece al alfabeto de entrada, se elimina de la cinta o bien se sustituye por INI espacio en la tabla de transiciones.

- I4 -

Page 65: 148.206.53.84148.206.53.84/tesiuami/uam7050.pdf148.206.53.84

Cuando el alfabeto que se modifica es el de la pila, es necesario revisar que los campos de la tabla de transiciones que se refieren al simbolo en el tope de la pila y al nuevo tope de la pila, pertenezcan a este alfabeto, en caso de no ser asi, se les reemplaza por un espacio.

4.4-4.3 ACTUALlZACloN POR CAMBIO DEL CONJUNTO DE ESTADOS.

Cuando el conjunto de estados se reduce, es necesario dar sus valores iniciales a los registros correspondientes de los estados que antes aparecían en este conjunto.

E n este caso, el procedimiento ReduceT abla, lo que hace es asignar el valor falso al campo Esfinal, as i como liberar las transiciones de los estados que se quitan del coniunto, dando el valor NIL [NU LO] a su campo Trans.

Despu6s de esto, se revisa el campo SgteE do de las transiciones ds: bs estados restantes para que s61o pueda referir a estados en el conjunto. Si se encuentra que el estado indicado ya no forma parte del conjunto de estados, a &te se le da el valor de la cadena nula.

4-5 PROCESOS DE EDiCIflN.

4-5-1 EDlClbN DE LA CINTA-

Para editar la cadena de entrada, el usuario dispone de una cinta infinita [aunque realmente limitada por la capacidad de memoria de la computadora], la cual se muestra parcialmente en m a ventana, al entrar al mddulo de edki6n da la cinta, con la cadena de entrada limitada en sus extremos por unas marcas.

Como ya antes se describio, la cinta se almacena en una lista doblemente ligada, con las variables Cinta y FinCinta apuntando al principio y fin de la cinta.

Para ta edici6n se requieren dos variabies mas:

Actual es un apuntador al nodo de la cinta en el cual se aimacena el carácter seGalado por el cursor; y

Celda 6sCa es una variable que indica en cu&l localidad de las 34 mostradas en la ventana de edicioin.. se encuentra el cursor.

- 75-

Page 66: 148.206.53.84148.206.53.84/tesiuami/uam7050.pdf148.206.53.84

Al iniciar la sesibn, Cinta y FinCinta tornan el valor de NIL

estado inicia!, se !ibera Is lista ligada apuntada por Cinta, y tanto a Cinta como a FinCinta se les asigna el valor de NIL [NULO].

Cuando se entra a editar la cinta, Actual toma el valor de Cinta y a Celda se le da el valor de 2, con lo cual el cursor sefiala al primer carácter, o si la cinta está vacia, a la marca final.

El cursor se puede mover desde el primer carácter hasta la marca final de la cinta, de manera que la variable Actual, mando el cursor alcanza dicha marca, toma el valor de la liga derecha del nodo apuntado por Fincinta, es decir Ni L [N U LO ].

[NULO]. Luego, cada V ~ Z que el moddo ES d e ~ u e l t ~ a SU

4-5-2 EDlCloN DE LA TABLA DE TRANSICIONES.

El aut6mata de pila tiene transiciones con forma genera!

Como se expltici antes, la estructura de datos que se utiiiza para almacenar ia tabla es una lista doblemente ligada asociada a cada estado qi mediante el campo Trans del registro correspondiente del arreglo Estados.

La edicitin de la tabla de transiciones procede dando las transiciones por cada estado qi. De esta manera, primero es necesario elegir el estado qi al que se entrará a editar sus transiciones asociadas. El procedimiento para elegir el estado q se incluyS et-# la unidad Defitle y es especificamet-ite el siguiente bloque de instrucciones, incluido en el procedimiento EiigeElemento, bajo el caso en que OpCapt es TransQi, el que da entrada a la edici6n de la lista de transiciones de qi:

S lelecE do(S imbolo,Col,R en]: Cambi&trib[notS iM arca,notS iParpadea,Col,R en,2]; T ransicicJnes[S imbolof; Cambi&trib[not SiMarca,S iParpadea,Coi,R en23

con la primera instruccidn se selecciona el estado qi, e! cual es devuelto en la variable Simbolo y se pasa al procedimiento Transiciones para proceder a la edici6n.

La zona en la cual se edita la tabla de transiciones comprende los renglones 8 al 14 de la ventana de edici6n. Par cada rengi6n se tiene una transicitin, de &te, la columna 16 define el campo de edicihn del simbolo de entrada, a; la columna 21 define el campo de edicibn del simboio en el tope de la pila, A; la columna 26 define el campo de edicibn del siguiente estado, q,; y la columna 33 es para el nuevo tope de la pila, B.

- 7 6 -

Page 67: 148.206.53.84148.206.53.84/tesiuami/uam7050.pdf148.206.53.84

Durante la edicibn, ia variabie Actuai apunta ai nodo de la lista de transiciones que corresponde a la transicibn editada en un msmet-ttcr dado.

4-6 ANALISIS DE LA ENTRADA.

La ejecuci6in del rirodelo procede una vez que &e ha sido definido completamente, por ello, primero se verifica que se cumplan las siguientes condiciones:

el conjunto de estados ns es vacio; ei cwriunto de estados finaies no es vacío, siempre que ei criterio de aceptaciirn requiera se especifiquen los estados finales; y la funci6n de tratssicirjn ha sido especificada completamente.

Tal es e¡ propbsitcr del procedimiento Verifdef:

- Proc VerifD eff D ef Completa 3 comienza

DefCompleta <----- falso - si NumEdos = ü entonces Error - otro - si [ Criterio <> PilaVacia 3 8c FinalesVacio entonces Error - otro - si Tablalncompleta entonces Error

- otro DefCompieta <----- verdadero termina

- Func FinalesVacio comienza

I <""- 1 Vacia <----- verdad mientras f I <= NumEdos 3 SC Vacio

comienza - si EsFinaIi Estadosi I - 1 ] 3 entonces Vacicr <----- fais0 I <""- I + I

termina FinaiesVacio < ----- Vacio

termina

Func Tabialncompieta comienza

I <-"" 1 Vacio <-"" falso mientras [ I <= NumEdos] 8c [ not Vacio) haz

Page 68: 148.206.53.84148.206.53.84/tesiuami/uam7050.pdf148.206.53.84

termina Tabla1 ncompkta < ----- Vacio

termina

La funci6n booleana FinaiesVacio cuando es verdadera indica que el coniuntcr de estados tinales es vacio.

La funci6t-r booleana T ablalncompleta cuando resulta verdadera, indica que la funci6n de transicih no ha sido especificada completamente.

Habiendo asegurado la definicibn completa de! modelo, se procede a determinar si la cadena de entrada es aceptable. Como el aut6mata de pila puede ser no determinístico, el procedimiento de anSlisis de la cadena est& basado en la tkcnica de backtrack y, en este caso, conforme avanza va formando una lista con las transiciot-res que permiten ir recortociendo la cadena de entrada.

Las variables y los tipos usados por el algoritmo de analisis, aparecen declarados en la unidad Eiecuta, como sigue:

type ApN odoPila = ̂ N odoPila; NodoPila = record

Info : string[ 1 1; Liga : ApNodoPila

end; ApNodoLTrans = "NodoLTrans; NodoLTrans = record

Trans : ApRegTrans; T rans-i _. T rans-D : ApN odoLT rans

end; var

Soln : boolean; K : integer; Celda : PtrNodo; P : ApRegTrans; Tope : ApNodoPila; Listairans, Uitirans : ApNodoLTrans; NumEdo : byte;

La variable bcroteat-ra Soln tiene un valor inicial de falso y se hace verdadera en cuanto el autbrnata reconoce la cadena de entrada.

- 38-

Page 69: 148.206.53.84148.206.53.84/tesiuami/uam7050.pdf148.206.53.84

La variable K indica el número de transiciones que forman la lista de transiciones. Si al final del analisis, K es mayor o igual que cero, significa que la cadena de entrada fue reconocida, con ListaTrans apuntando a la lista de transiciones aplicadas para reconocerla. Si at final del an&is, I(, es menor que cero, significa que la cadena de entrada no fue reconocida y ListaTrans apunta a nil.

Celda es uts apuntador al nodo de la cinta con el sirnbolo actual de la entrada.

P es un apuntador a la tabia de transiciones. La estructura de datos usada para la pila es una lista ligada

cuyo elemento tope es el apuntado por la variable Tope. La ¡ish de transiciones apiicacias para reconocer la entrada, se

almacena en una lista doblemente ligada, la cual es apuntada por ListaTrans. El apuntador UttTrans es auxiliar y apunta a ia ultima transicibt-1 de la lista de solucibts. El campo de informacibt-1 de las nodos que forman la lista de transiciones es un apuntador a una de las transiciones de la funcicjn de transicibn.

NumEdo es el estado actual del autbimata.

A continuaciljn se muestra el pseudocbdigo de los procedimientos utilizados para el analisis de la cadena de entrada.

Proc Analiza comienza

S o h < ----- falso NurnEdo +---- 0

Tope < ----- nil ListaTrans < ----- nit UltTrans <----- nil p x-"" T ratisf E stadüs[ o ]] Kc (-"" o mientras [ K > = 03 x( not Soin 1 haz

Celda <----- Cinta

- si Aceptable entonces Exitci 7 otro

comienza D etT rans - si P = nil entonces Cate

otro Nodoltstermedio termina -

si K < 0 entonces Fracaso tGmina

La funcicjn Aceptable aplica ei criterio de aceptacibn para determinar si la cadena ha sido reconocida.

- 19-

Page 70: 148.206.53.84148.206.53.84/tesiuami/uam7050.pdf148.206.53.84

Proc DetTrans ;'x Busca una transicidn que sea aplicable a la configuracidn actual del aratimata "1 comienza S al < "_" - falso mientras [ P <> nil 3 & [ not Sal - si [[Entrada[P]=~] [[Celda<> nil] & [EntradajP] = Info[ Celda 3 3 f 3 8t [[T opePi!a[P)]=e) or [[T ope=nil] 8c [ T upePila[Pf = ! nfo[T ope 3 3 3 3 entonces Sa¡ x----- verdad - otro

p <""- AP-W p I termina

conduce a la soluci6n comienza K (""- K - 1 - si LIltTrans <> ni! entonces

comienza 1" Anula el efecto de la Ciltima transici6n P <----- Trans[ UltTrans 3 - si Entrada[ P 3 <> E entonces

- si NvoTope[ P f <> E entonces Pop

- si Celda < > nil entonces Celda < ----- Liga-![ Celda] otro Ceida <----- FinCinta

si Topepila[ P f <? E entonces Push[ T opepila[ P 3 3 NumEdo <----- * * el estado al que corresponde la transicibn apuntada por f " 1" Quita la transiciiin que no es uti! de la lista xi Ap <:""- UltTrans

- si UltT ram = nil entonces ListaTrans < ----- nil UltTrans <----- Trans-¡[ UltTrans 3

otro Trans-D[ UltTrans ] <----- nil Ap => Dispo íx Toma la siguiente transicicin de la tabla p <""- AP-W p I

-

termina termina

Proc Nodolntermedio comienza

1" Agrega la transicidn a la lista Nodo X= Dispo T ram-l [ Nodo 3 < ----- U ItT r3ns Trans-Di Nodo 3 <----- nil T fans[ N Ü ~ Ü 3 < ----- P - si ListaTrans = nil entonces ListaTrans X----- Nodo

otro T rans-D[ UltT rans 3 < ----- Nodo

Page 71: 148.206.53.84148.206.53.84/tesiuami/uam7050.pdf148.206.53.84

UItT cans < ----- N odo tx Eiecuta la transici6n x4 - si Entradal P 3 <> E entonces Celda <----- Liga-D[ Celda 3 - si TopePiiai P ] <> E entonces Pop - si NvoTope[ P 3 <> E entonces Push[ NvoTopleC P 3 3 NumEdo x----- Valor[ SgteEdo[ P j j K <""- K + 1 P <----- Trans[ Estados[ NumEdo I f

termina

4-7 EJECUCldN DEL MODELO.

Un3 vez que el procedimiento de anJlisis obtiene el reconocimiento de la cadena de entrada, e¡ stmuiador muestra el comportamiento del aut6mtata durante tal reconocimiento. E s t-lecesario hacer 6nfasis en que la simulacicjn no procede cuando la cadena de entrada se rechaza. La simulaciljn puede ser libre o controlada.

La eiecucibn controlada es aquella cuyo curso está determinado por e! usl_rario, de manera que en cualquier mnment~ es posible avanzar a la siguiente configuracibn, o bien retroceder a la anterior. En tanto que en la ejecucicjn libre, el usuario sdo es un observador de la simulacibn, no puede intervenir en su curso.

La eiecuci6t-r libre puede ser rapida o lenta, la única diferencia entre ellas es el retardo aplicado entre cada movimiento.

E n cualquier caso, la simulaci6n utiliza la iista de transiciones que form6 el análisis previo. El seguimiento de la lista de transiciones RS mediante el apuntador T, declarado como sigue:

var T : ApNodoLTrans;

Proc I niciaE lec comienza

mientras Tope <> nil haz comienza Aux <""- Tope Tape < ----- Liga{ Tope 3 Aux => Dispo

termit-la E s t d o < ----- O Celda <----- Cinta T <""- ListaTrans

termina

Page 72: 148.206.53.84148.206.53.84/tesiuami/uam7050.pdf148.206.53.84

- caso Tecla sea Left : 3 T ListaTrans entonces Retrocede Right : T o nil entonces Avanza

termina

Proc EiecPausadal ValorRet j comienza

I niciaE iec mientras T <> nil

comienza Retarda( ValorRetf Avanza

termina termina

Proc Retrocede

otro p x-"" Trans[ T j i" Anula e¡ eFecto de la úítima transicicin que se apiicci "i - si Entrada[ P 3 <> E entonces

T i ----- T rans-l[ T j

- si Celda x> E entonces Celda c ----- Liga-I [ Celda 3

- si TopePilaI P j < > E entonces Push[ TopePiiaf P j j

- otro Celda <----- FinCinta - si NvoTope[ P 3 <> L entonces Pop

i" Muestra la nueva confiyuracihn xi - si Trans-ll T j = nil entonces Estado <----- O

otro Estado <----- SgteEdoj Trans[ Trans-¡[ T j 3 j - si Entrada[ P ] <> E entonces MuestraCinta - si [ Topepilaf P j <> E 1 [ NvoTopel P 3 <> E 3 entonces M uestraPila E scribe[E stadoj

termina

Proc Avanza comienza p (""- Trans[ T 3 ix Eiecuta la transici6n "i - si Entradal P 3 X> L entonces Celda X----- Liga-D[ Celda 3 - si TrrpePila( P j <> z entonces Pop - si NvoTopei P o E entonces Pushi NvoTopel P j ]

- si Entrada[ P j x> E entonces MuestraCinta

Estad~t ----- SJteEdü[ P j i" Muestra la nueva configuraci6n "i

Page 73: 148.206.53.84148.206.53.84/tesiuami/uam7050.pdf148.206.53.84

- si [ TopePiiaj P 3 <> E 3 [ NvoTopel P 3 <> E 1 entonces MuestraPila E scribe[ E stado 3 T x----- Trans-Df T 3

termina

5- RESULTADOS Y CONCLUSIONES.

Ei presente mtiduio es ofrecido con la intencicin de contribuir a facilitar ai comprensih del Autcimata de Pila.

La monografia que se elabori podra ser producida dentro de la universidad, de manera que 6sta podrá obtenerse a baio costo. Debe aclararse que el m6dulo no es un programa tutor, su funci6n es apoyar el estudio del Autcimata de Pila. E¡ material expuesto en la monograf ia puede ser complemet-Itado con la biblicryraf ía que alii se indica; el software puede ser usado como material de laboratorio en un curso de Teoría Matemática de la Computacicin, con el cual el alumno puede fácii y rápidamente ensayar diversos modelos, comprobar su validez y en caso de encontrar algún error, proceder a su carrecciin.

Ahora que el mcidulo ha sido terminado se espera ofrecerlo pronto a los alumnos del curso de Teoria Matematica de la Computacicin, impartido en la is ivisibn de Ciencias Bhsicas e lngenier ia de la UAM-Iztapalapa, confiando en que les resulte titi1 en su estudio.

Aleksander, lgor and F. Keith Hanna. Automata tbeogr an engrleering approach Crane, Russak XC Company, inc., U.S.A. 1 975.

Arbib, Michael A. Theories of abstract automata Prentice Hall, 1969.

Page 74: 148.206.53.84148.206.53.84/tesiuami/uam7050.pdf148.206.53.84