17
Teoría de lenguajes y compiladores Unidad I Analizador lexicográfico Autómatas con pila. Temas Semana 3

Teoría de lenguajes y compiladores

Embed Size (px)

DESCRIPTION

Unidad I. Analizador lexicográfico. Teoría de lenguajes y compiladores. Semana 3. Temas. Autómatas con pila. Objetivo General. - PowerPoint PPT Presentation

Citation preview

Page 1: Teoría de lenguajes y compiladores

Teoría de lenguajes y compiladores

Unidad I

Analizador lexicográfico

Autómatas con pila.

Temas

Semana 3

Page 2: Teoría de lenguajes y compiladores

Objetivo General

El alumno al finalizar el curso podrá desarrollar aplicaciones que le permitan determinar si una estructura gramatical corresponde a una sentencia valida en la definición de un lenguaje en particular, teniendo en cuenta el contexto sintáctico y semántico. Así mismo estará capacitado para proponer nuevas formas estructurales en la definición de lenguajes de programación.

Page 3: Teoría de lenguajes y compiladores

Objetivos Específicos

• Diseñar e implementar un analizador lexicográfico.

• Diseñar e implementar un analizador sintáctico.

• Diseñar e implementar un analizador semántico.

Page 4: Teoría de lenguajes y compiladores

Objetivos Instruccionales

Comprender el funcionamiento de los autómatas para el reconocimiento o aceptación de cadenas que forman parte o son generadas por un lenguaje.

Page 5: Teoría de lenguajes y compiladores
Page 6: Teoría de lenguajes y compiladores

Se utiliza un stack o pila LIFO (Last In First Out) en el cual el orden es importante. La acción que lleva a cabo el autómata sólo es influenciada no sólo por el estado en que se encuentra y por el símbolo que lee, sino también por el tipo de objeto que se encuentra arriba en la pila (cima).

q4

a b a b b a

q0

q1

q2

q3

qi

qn

Cinta deentrada

Cabezalectora Control

Pila

Au

tóm

ata

s co

n p

ilaDefinición

Page 7: Teoría de lenguajes y compiladores

Definición formal (1)

Un autómata de pila es una sexteta (K, , , , s0, F) ; donde:– K es un conjunto no vacío de estados.– es el alfabeto de entrada, no vacío.– es el alfabeto de la pila, no vacío.– s0 K es el estado inicial.– F K es el conjunto de estados finales.– (K ( {}) ( {})) (K *) es la relación de transición.

• (p, u, ) (q, ) significa que el autómata está en el estado p, lee el símbolo u, saca de la pila, pasa al estado q e introduce a la pila.

• La operación “push” se logra tomando como la palabra vacía.

• La operación “pop” se logra tomando como la palabra vacía.

• Ya que es una relación y no necesariamente una función, un autómata de pila es no determinista.

Au

tóm

ata

s co

n p

ila

Page 8: Teoría de lenguajes y compiladores

• Una palabra es aceptada por un AP si al “procesarla” completamente, se llega a un estado final y la pila queda vacía.

• Debido al no-determinismo del autómata es posible que al terminar de procesar la palabra, varios estados estén activos. Es suficiente que uno de estos estados sea final para que la palabra se acepte.

• L(M) denota al lenguaje formado por las palabras aceptadas por M.

Au

tóm

ata

s co

n p

ilaDefinición formal (2)

Page 9: Teoría de lenguajes y compiladores

Representación gráfica de un AP• La transición ((p, u, ), (q, )), (p, u, ) = (q, ), se

representa gráficamente por

y significa que cuando estamos en el estado p, leemos de la palabra de entrada el símbolo u y sacamos del stack el símbolo , entonces pasamos al estado q y ponemos en la pila la cadena .

p q

u, /

Au

tóm

ata

s co

n p

ila

Page 10: Teoría de lenguajes y compiladores

Ejemplo• Autómata de pila que acepte {aibi | i > 0}

– K = {q0, q1}

– = {a, b}– = {A}– s0 = q0

– F = {q0, q1}

– (q0, a, ) = (q0, A)

– (q0, b, A) = (q1, )

– (q1, b, A) = (q1, )

a, / A b, A /

b, A / q0 q1

Au

tóm

ata

s co

n p

ila

Page 11: Teoría de lenguajes y compiladores

Ejemplo: palíndromos de longitud impar• Autómata de pila que acepte {wcwR | w {a, b}*}. wR es la palabra w al revés, por

ejemplo, “anita”R = “atina”.

– K = {q0, q1}

– = {a, b, c}– = {A, B}– s0 = q0

– F = {q1}

– (q0, a, ) = (q0, A) (q1, a, A) = (q1, )

– (q0, b, ) = (q0, B) (q1, b, B) = (q1, )

– (q0, c, ) = (q1, )

a, / Ab, / B

b, B / a, A /

c, / q0 q1

Au

tóm

ata

s co

n p

ila

Page 12: Teoría de lenguajes y compiladores

Ejemplo: palíndromos de longitud par• Autómata de pila que acepte {wwR | w {a, b}*}. wR es la

palabra w al revés, por ejemplo, “anita”R = “atina”.

– K = {q0, q1}

– = {a, b}– = {A, B}– s0 = q0

– F = {q1}

– (q0, a, ) = (q0, A) (q1, a, A) = (q1, )

– (q0, b, ) = (q0, B) (q1, b, B) = (q1, )

– (q0, , ) = (q1, )

a, / Ab, / B

b, B / a, A /

, / q0 q1

Au

tóm

ata

s co

n p

ila

Page 13: Teoría de lenguajes y compiladores

AF AP• Todo lenguaje aceptado por un autómata finito es

también aceptado por un autómata de pila.Si M = (K, , , s0, F) es un autómata finito, entonces (K, , , ’, s0, F) con

– = – ’ = {((p, u, ), (q, )) | (p, u, q) }acepta el mismo lenguaje que M.

• Los lenguajes libres de contexto son aceptados por los autómatas de pila y los lenguajes generados por los autómatas de pila son los lenguajes libres de contexto.

Au

tóm

ata

s co

n p

ila

Page 14: Teoría de lenguajes y compiladores

LLC APSea G = (V, , R, S) una gramática libre de contexto. Entonces el autómata de pila M = ({p, q}, , V, , p, {q}) donde la relación de transición se define de la siguiente manera acepta exactamente el mismo lenguaje que G.

– 1) (p, , ) = (q, S)– 2) (q, , A) = (q, x) para cada regla A x R– 3) (q, , ) = (q, ) para cada

El autómata de pila contiene sólo dos estados. El primero se utiliza sólo en la primera transición por lo que los estados no sirven para “recordar” las características de la palabra de entrada, este “recordatorio” se hace en la pila. Las transiciones tipo 2) lo que hacen es derivar en la pila la palabra de entrada sin consumir ningún carácter de entrada. Las transiciones tipo 3) comparan la palabra en la pila con la palabra de entrada.

Au

tóm

ata

s co

n p

ila

Page 15: Teoría de lenguajes y compiladores

Ejemplo• Obtener un AP que acepte el lenguaje generado por

la gramática libre de contexto cuyas reglas son: S aSa S bSb

S c

• Transiciones del AP– Tipo 1): (p, , ) = (q, S)– Tipo 2): (q, , S) = (q, aSa) (q, , S) = (q, bSb)

(q, , S) = (q, c)– Tipo 3): (q, a, a) = (q, ) (q, b, b) = (q, )

(q, c, c) = (q, )

Au

tóm

ata

s co

n p

ila

Page 16: Teoría de lenguajes y compiladores

...Ejemplo: analizar abcbaEstado Falta leer Pilap abcba q abcba Sq abcba aSaq bcba Saq bcba bSbaq cba Sbaq cba cbaq ba baq a aq

Au

tóm

ata

s co

n p

ila

Page 17: Teoría de lenguajes y compiladores

Teoría de lenguajes y compiladores

Unidad I

Analizador lexicográfico

Temas

Semana 3

Autómatas con pila.