Sunteți pe pagina 1din 20

Lenguajes y Traductores FISI 2014-II

Augusto Cortez Vsquez Pag.1/20


GUIA II EXPRESIONES REGULARES Y AUTOMATAS

Tres clases hay de ignorancia: no saber lo que debiera
saberse, saber mal lo que se sabe, y saber lo que no debiera
saberse.
Faccois de la Rochefoucald
(1613-1680) Escritor francs

Donald Ervin Knuth Nacido el 10 de enero de
1938, es uno de los ms renombrados cientficos de
la computacin, profesor emrito de la Universidad
de Stanford. Es conocido como autor de mltiples
volmenes: El arte de la programacin de
computadoras, considerado como una referencia en
el rea de ciencias de la computacin, prcticamente
fue el creador del anlisis de algoritmos y
contribuyo significativamente a varias ramas de
teora de las ciencias de la computacin


COMPILADORES
Para subsanar los problemas que presentan los interpretes se crean los compiladores.
El traductor de un lenguaje de programacin de alto nivel a cdigo de maquina o
ensamblador se conoce como compilador.

PROGRAMA PROGRAMA
FUENTE OBJETO

ANALIZADOR ANALIZADOR GENERADOR

LEXICO SINTACTICO DE CODIGO

Lenguajes y Traductores FISI 2014-II

Augusto Cortez Vsquez Pag.2/20
DIAGRAMA DE BLOQUE DE UN COMPILADOR
CODIGO DE MAQUINA DE UN COMPUTADOR
HI POTETI CO (I DEAL)ABSTRACTO.

PROGRAMA FUENTE
Alto Nivel



G.C.I.



CODIGO
INTERMEDIO



G.C.



CODIGO
MAQUINA

Ventajas de la mquina abstracta:

1 El compilador es independiente de la mquina destino y por tanto es ms transportable.
2 Las caractersticas del hardware destino estn consideradas en el generador del cdigo.
3 Facilidad para llevar a cabo algunas estrategias de optimizacin (Asignacin de
registros).

Desventajas:
El cdigo de mquina generado a partir de C.I. por lo general ser menos eficiente que el
cdigo de mquina generado directamente debido al nivel de traduccin adicional.

Estructura de un compilador

Un compilador es un programa, en el que pueden distinguirse dos mdulos principales,
cada uno de los cuales realiza una fase: fase de anlisis en la que descompone el cdigo
fuente y analiza su estructura, y la otra fase de sntesis en la que integra los que
descompuso en la fase previa, generando cdigo objeto. Adems, pueden distinguirse
algunas estructuras de datos entre ellas la tabla de smbolos, junto con los mdulos de
gestin de esta, y de los dems elementos del compilador, y de una serie de rutinas
auxiliares para deteccin y manejo de errores.
Lenguajes y Traductores FISI 2014-II

Augusto Cortez Vsquez Pag.3/20

Fuente





Anlisis lexicogrfico

T
A Anlisis Sintctico
B
L
A Anlisis Semntico
y de tipos

D
E

S Generacin de cdigo
I intermedio
M
B
O Generacin de cdigo
S




Cdigo relocalizable


Enlazador


Objeto

Funciones caractersticas de un analizador lxico
a- Eliminar espacios, comentarios, etc.
b- Reconocer los componentes lxicos: identificadores, constantes etc.
c- Generar un listado para el compilador.

EXPRESIONES REGULARES
Definicin.- Una expresin regular es una regla de formacin, que permite definir un
conjunto de secuencias llamada conjunto regular. A este conjunto tambin se le suele
llamar Lenguaje regular.
Lenguajes y Traductores FISI 2014-II

Augusto Cortez Vsquez Pag.4/20

Si es un alfabeto y O es un conjunto de operadores, podemos afirmar que una expresin
regular r esta constituida de operandos y operadores.

Cada operando puede ser:

- Una expresin regular simple: cuyos operandos son elementos del alfabeto
- Una expresin regular compuesta: cuyos operandos son otras expresiones
regulares.

Ejemplo 1

= {a,b} O={*,/} a
*
, a*b a/b son ejemplos de expresiones regulares

r =a
*
genera L(r)= { secuencias de 0 o mas a }
r =a*b genera L(r) ={ secuencias de 0 o mas as que termina con una b}
r=a / b genera L(r) = {a, b}

Si consideramos : Si = {L,D}, donde L: letra y D: Dgito

construimos la expresin regular r = L(L/D)*
que genera un conjunto de secuencias L(r)
L(r) = {Secuencia de Letra y Dgitos que empiezan con una letra}

L(r) no es otra cosa que el conjunto de los identificadores del lenguaje Pascal.
Una expresin regular puede definirse como una composicin de expresiones regulares.

Mtodo para definicin de construcciones regulares:

- Sea : alfabeto

- r : genera L(r) = {}
- r = a genera L(r) = {a}

Si r, s son expresiones regulares con sus lenguajes L(r) y L(s) respectivamente entonces:

- (r) es una e.r. , genera L(r)
- (r)/(s) es una e.r. , genera L(r) U L(s)
- (r)(s) es una e.r. , genera L(r) . L(s)
- (r)* es una e.r. , genera (L(r))*

como ejemplo podemos ver que si ={a,b}
r = genera L(r) ={}
r = a genera L(r) ={a} , (r) genera el mismo L(r)
r = a/b genera L(a/b) = {a} U {b} = {a, b}
r = a* genera L(r) = {, a, aa, aaa, aaaa,...}
Lenguajes y Traductores FISI 2014-II

Augusto Cortez Vsquez Pag.5/20
PROPI EDADES
Una expresin regular cumple las siguientes caractersticas:

r/s = s/r conmutatividad respecto a /

r/(s/t) = (r/s)/t asociatividad respecto a /

(rs)t = r(st) asociatividad respecto a la concatenacin.

r(s/t) = rs / rt distribucin derecha de la concatenacin respecto de /.

(s/t) r = sr / tr Distribucin por la izquierda de la concatenacin respecto de /.

.r = r . = r es el idntico de r

r** Idempotencia de r


una expresin regular puede representarse mediante un grafo, en el cual las aristas estn
etiquetadas con los elementos del alfabeto.

Ejemplo 2
r = ab
*
r = a
*
b

b a

a b
A B A B

Definiciones regulares

Partiendo del alfabeto S de smbolos bsicos, pueden crearse una definicin regular como
una secuencia de definiciones :

d
1
r
1
Para todo i , d
i
es un nombre distinto
d
2
r
2
r
i
es una expresin regular sobre AU{d
1
, d
2
,...d
n
}
.
.
.
d
n
r
n


Ejemplo 3

Si L = { ID / ID es un identificador de Pascal }
creamos una e.r. r t.q. L(r) = L

Una definicin regular es : L > A/B/...Z/a/.../z
Lenguajes y Traductores FISI 2014-II

Augusto Cortez Vsquez Pag.6/20
D > 0/1/...9
ID > L(L/D)*

Ejemplo 4
Consideremos los siguientes lenguajes definidos algebraicamente
Construya la gramtica
0
m
1
n
0
m+n
m, n >0
1
n+m
0
n
0
m
m, n >0

Todas las cadenas de ceros y unos con al menos dos ceros consecutivos La expresin
regular correspondiente es: (0/1)
*
00(0/1)
*


Todas las cadenas de ceros y unos que comienzan con uno y no tienen dos ceros
consecutivos

Ejercicio 1
Defina la expresin regular para
a. Identificadores de Java
b. Nmeros reales con o sin signo
c. Secuencias que tengan el mismo nmero de ceros que de unos

Ejercicio 2
Describa tres conjuntos que no sean regulares

AUTMATAS FI NI TOS

Un Autmata finito es una maquina de estados finitos que reconoce secuencias
generados por una expresin regular.

formalmente un Autmata se define como un modelo matemtico:M =(E, , ,
0
, F)

E : conjunto de estados
A : alfabeto de entrada ( alfabeto)
: funcin de transicin : E x E

0
: estado inicial
F : conjunto de estados de aceptacin

el conjunto F contiene todos los estados que resultan de aplicar la funcin a
algn estado, es decir :

F = {
j
/ existe
i
donde (
i
, a) =
j
para algn a }

Lenguajes y Traductores FISI 2014-II

Augusto Cortez Vsquez Pag.7/20
Puede considerarse elemento de F a todos los estados de aceptacin de la funcin de la
mquina de estados M.

r M(r)


El autmata M(R) puede ser determinista (AFD) o no determinista(AFND). M es
determinista cuando a partir de un estado puede pasarse a un solo estado con cada entrada
del alfabeto, adems no tiene ninguna transicin con para cada estado.

Un Autmata es no determinista cuando se da el caso que existe mas de una transicin
desde un estado con la misma entrada. Tanto los autmatas deterministas como los no
deterministas pueden reconocer conjuntos regulares generados por expresiones regulares o
por gramticas regulares.

Ejemplo 5

sea r = (a/b)*ab expresin regular, construimos M(r) autmata no determinista, a
partir de la expresin regular.


a/b
a b

0

2


inicio

M(E, , ,
0
, F) E={
0,

1
,
2
} = { a, b} F = {
2
}

a b


0
{

o
,
1
} {
o
}

1
- {
2
}

2
- -

puede verse que las entradas en la matriz de una matriz no deterministas son conjuntos,
mientras que en un autmata deterministas son elementos de E.

Ejercicio 3
Defina la expresin regular para
a. Conjunto de frases que inician con 1 y nunca hay dos a consecutivas
b. El conjunto de ceros y unos cuyo nmero de unos es mltiplo de tres
c. El conjunto de nmeros decimales en binario mltiplos de tres
d. El conjunto de frases de ceros y unos que inician con uno
Lenguajes y Traductores FISI 2014-II

Augusto Cortez Vsquez Pag.8/20
Ejemplo 6

El siguiente autmata determinista corresponde a la expresin regular r = (a/b)*ab

b a

a b

0

1

2


a
b

M(E, , ,
0
, F) E={
0,

1
,
2
} = { a, b} F = {
2
}


a b


0

1

o


1

1

2


2

1

o



Ntese que las entradas en la matriz corresponden a estados de M, no son conjuntos.
Esta es una diferencia fundamental entre los autmatas deterministas y los no deterministas.


Ejercicio 4
Defina tres conjuntos regulares en forma algebraica y en forma regular (expresin
regular)

Ejercicio 5
Muestre el autmata finito para los conjuntos regulares del ejercicio 4

Construccin de un autmata no determinista a partir de una expresin
regular

Cuando la expresin regular no es muy compleja es fcil construir su autmata
correspondiente, determinista o no, como se mostr en los ejemplos anteriores. Sin
embargo cuando la expresin es compleja se requiere de un mtodo sistemtico y modular
para construir el autmata.

Para construir un autmata a partir de una expresin regular utilizamos el mtodo de
componentes, en el cual se construyen
Lenguajes y Traductores FISI 2014-II

Augusto Cortez Vsquez Pag.9/20
Maquinas para cada subexpresion regular y se ensamblan en forma modular hasta obtener
el autmata final correspondiente a la expresin regular inicial.
Entrada : r ( expresin regular)
Salida : M ( autmata no determinista)

Mtodo:
Se analiza la expresin regular r, descomponindola en subexpresiones regulares. En cada
caso se construye el autmata correspondiente, luego se acoplan en forma sistemtica para
obtener el autmata M(r). M(r) es llamado Autmata generado por una expresin regular r.

Para construir M(r) se tiene en consideracin los siguiente:

1 Sea r = expresin regular, podemos construir M(r) :


j
M(r)


2 Sea r = a expresin regular, para algn a
podemos construir M(r)

a

j
M(a)


3 Sea r y s son expresiones regulares, y sean M(r) y M(s)
sus maquinas asociadas:


j
M(r)



j
M(s)




Podemos construir

M(r/s) : mquina que reconoce secuencias generadas por la la
expresin r/s.

Lenguajes y Traductores FISI 2014-II

Augusto Cortez Vsquez Pag.10/20

M(r)

j





i

f

M(r)




Mtodo:
1 Se inserta un nuevo estado inicial y estado final
i ,

f
2 El nuevo estado inicial se conecta con los estados iniciales de las maquinas.
3 Los estados finales de las maquinas se conectan con el nuevo estado final.


M(r.s) : mquina que reconoce secuencias generadas por la
La expresin r.s



f


i

i M(S)


M(r)


Mtodo:


1 Se inserta un nuevo estado inicial y estado final
i ,

f
2 El nuevo estado inicial se conecta con el estado inicial de la primera mquina.
3 El estado final y el estado inicial de la primera y segunda maquina
respectivamente se convierten en uno solo.
4 El estado final de la segunda maquina se conecta con el nuevo
estado final.

M(r*) : maquina que reconoce secuencias generadas por la expresin r*






i

i

j

f


M(r)



Mtodo:

1 Se inserta un nuevo estado inicial y estado final
i ,

f
2 El nuevo estado inicial se conecta con el estado inicial de la primera maquina.
3 El estado final de la segunda mquina se conecta con el nuevo estado final.
Lenguajes y Traductores FISI 2014-II

Augusto Cortez Vsquez Pag.11/20
4 Se aade una arista desde el estado final hacia el estado inicial de la mquina
inicial, con la entrada .

Equivalencia entre Autmatas finitos y expresiones regulares

AF no
determinista



AF AF no determ.
Determinista con transic.


Expresin
regular

Para toda expresin regular r, Existe M autmata finito no determinista con transiciones
tal que L(r) = L(M)

Ejemplo

sea r = ab(a/b)* e.r. , construimos M(r) autmata no determinista, a partir de la expresin
regular.
sea a, b expresiones regulares, podemos construir M(a)
y M(b).


a


M(a)


b


M(b)
Construimos M((a/b)*)




a








b


Lenguajes y Traductores FISI 2014-II

Augusto Cortez Vsquez Pag.12/20


Si unimos los tres autmatas obtenemos el autmata final:



a







a b




b



Conversin de un Autmata no determinista a uno determinista

Se puede construir un autmata determinista a partir de uno no determinista construido por
el mtodo de componentes.

Entrada M : autmata no determinista
Salida N : autmata determinista
Mtodo
Construimos una nueva matriz de transiciones , en donde cada estado es un conjunto de
estados del autmata inicial. Para ello hacemos uso de tres funciones:

CERRADURA_(
i
) : conjunto de estados alcanzables desde el estado
i
, solamente con
transiciones

CERRADURA_(A) : conjunto de estados alcanzables desde algn estado de A, solamente
con transiciones

MUEVE(A,a) : conjunto de estados alcanzables desde algn estado de A, solamente con el
smbolo a.

Ejercicio 6
Muestre el autmata no determinista para los conjuntos regulares del ejercicio 2
Lenguajes y Traductores FISI 2014-II

Augusto Cortez Vsquez Pag.13/20

Ejemplo 7

Consideremos la expresin regula r = (a/b)*ab. Presentaremos un autmata no determinista ,
construido utilizando el mtodo de componentes:



a


2



3


a b
0 1 6

7 8 9



4 b 5




construiremos un autmata determinista equivalente.
Aplicamos el mtodo descrito:

CERRADURA_(0) : {0,1,2,4,7}=A

MUEVE(A,a) :{3,8}
CERRADURA_( MUEVE(A,a)) = CERRADURA_( {3,8}) = {1,2,3,4,6,7,8} = B

MUEVE(A,b) :{5}
CERRADURA_( MUEVE(A,b)) = CERRADURA_( {5}) = {1,2,4,5,6,7} = C

MUEVE(B,a) :{3,8}
CERRADURA_( MUEVE(B,a)) = CERRADURA_( {3,8}) = {1,2,3,4,6,7,8} = B

MUEVE(B,b) :{5, 9}
CERRADURA_( MUEVE(B,b)) = CERRADURA_( {5,9}) ={1,2,4,5,6,7,9} = D

MUEVE(C,a) :{3,8}
CERRADURA_( MUEVE(C,a)) = CERRADURA_( {3,8}) = {1,2,3,4,6,7,8} = B

MUEVE(C,b) :{5}
CERRADURA_( MUEVE(C,b)) = CERRADURA_( {5}) = {1,2,4,5,6,7} = C

MUEVE(D,a) :{3,8}
CERRADURA_( MUEVE(D,a)) = CERRADURA_( {3,8}) = {1,2,3,4,6,7,8} = B

MUEVE(D,b) :{5}
CERRADURA_( MUEVE(D,b)) = CERRADURA_( {5}) ={1,2,4,5,6,7} = C

Lenguajes y Traductores FISI 2014-II

Augusto Cortez Vsquez Pag.14/20
Mientas aparezcan nuevos estados se repetir el proceso para los nuevos estados. En el
ejemplo aparecen los estados A, B, C, D.

Finalmente tenemos el autmata determinista equivalente, correspondiente e la expresin
regular r = (a/b)*ab

b
C

b b
a
a b
A B D


a a

M(E, A, ,
0
, F)
E={A, B, C, D} A = { a, b} F = {D}

a b

A B C

B B D

C B C

D B C


El autmata finito es un modelo matemtico que puede implementarse desde un simple
dispositivo electrnico (Flip-flop) hasta un computador completo. Tiene como funcin
primordial servir para describir el comportamiento de ciertos programas de computadoras
que no contienen hardware. Estos modelos son tiles en el estudio de la teora de lenguajes
y compiladores y en otros sistemas que requieran de un anlisis lexicogrfico y sintctico
de un lenguaje.

Ejercicio 7
Muestre el autmata determinista para los autmatas no deterministas del ejercicio 3

AUTMATAS COCIENTES

Si M es el autmata M(E, , ,
0
, F)
E : conjunto de estados
: conjunto finito de smbolos
: funcin siguiente
F : Conjunto de estados de aceptacin o salida
Lenguajes y Traductores FISI 2014-II

Augusto Cortez Vsquez Pag.15/20

0
: estado inicial , esta en el conjunto E
Trabajando sobre el conjunto de estados de M, podemos describir una relacin R sobre E
de la siguiente forma :

Para todo p, q E, p R q si y solo si (p,x) R (q,x) para todo x

Si esta relacin se cumple , entonces decimos que R determina una relacin de
congruencia y a su vez genera un Autmata cociente. Es decir si para un par de estados
equivalentes en R se produce siempre pares equivalentes de estados bajo cualquier x S.

Esta relacin R sobre E determina un conjunto cociente llamada Autmata cociente M/R,
donde el conjunto de estados es precisamente :
E/R = {[] / E}

El autmata cociente ser : M/R = (E/R, , ', [
0
] ,F/R)

E/R : conjunto de estados ( clases de equivalencia de E)
: conjunto finito de smbolos
' : funcin siguiente, definida : ': E/R x E/R
F/R : Conjunto de estados de aceptacin
[
0
] : clase inicial , [
0
] E/R

Ejemplo 8
Sea M(E, , ,
0
,F)
donde: E={0,1,2,3,4,5} = {a,b}


a b
1 0 1 0 0 0
0 0 4 0 1 0 1 0 1
1 1 0 1 0 1 0 0 0
2 2 4 R = 0 1 0 1 0 1
3 5 2 0 0 0 0 1 0
4 4 3 0 1 0 1 0 1
5 3 2

Podemos verificar que R es de equivalencia por ser reflexiva, simtrica y transitiva.
Adems se obtiene la particin de E determinado por R compuesta por las clases de
equivalencia sobre E

[0] = {0, 2} [1] = {1, 3, 5} [4] = {4}

Construimos M'(E/R, , ',
0
,F) E/R ={ [0], [1], [4] }
el alfabeto es el mismo:

Lenguajes y Traductores FISI 2014-II

Augusto Cortez Vsquez Pag.16/20
Para todo p, q [0], a se tiene (p, a) R (q, a)
es decir que partiendo de algn estado de [0] y ocurre una
a en la entrada, se llega a algn elemento de [0].

Lo mismo ocurre para las dems clases, cuando ocurre un a en la entrada. Sin embargo
cuando ocurre una b en la entrada, vemos que:
para todo p [0] se tiene (p, b) [4],

para todo p [1] se tiene (p, b) [0],
para todo p [4] se tiene (p, b) [1].
de acuerdo a esto ' es :
a a a
' a b
[0] [1] [4]
[0] [0] [4] b b
[1] [1] [0]
[4] [4] [1] b


Simplificacin de un autmata finito

Para M =(E, , ,
0
, F )

E : conjunto de estados
: alfabeto de entrada
: funcin de transicin : E x E

0
: estado inicial
F : conjunto de estados de aceptacin

Si definimos una relacin de equivalencia R, de la forma siguiente:
Para todo a, b E y W
*
, decimos que:
a es compatible con b Si y solo si (a, w) y (b, w) pertenecen ambas a F o ninguna
pertenece a F.

R es reflexiva, simtrica y transitiva por tanto es de equivalencia.
Sea W
*
, definimos w' = x . w (x concatenado con w)
Si a R b entonces (a, w') y (b, w') ambos pertenecen a F o ninguno pertenece a F
Pero: (a, w') = (a, x.w) = ( (a, x),w)
(b, w') = (b, x.w) = ( (b, x),w)

por tanto (a, x) y (b, x) son compatibles en w
para todo W
*
, es decir (a, x) R (b, x)

luego si a, b E y x a R b implica que (a, x) R (b, x)

Lenguajes y Traductores FISI 2014-II

Augusto Cortez Vsquez Pag.17/20
por tanto R es de congruencia, y determina el autmata cociente M':
M'= M/R = (E/R, , ',
o
, F/R)
Podemos verificar que L(M) = L(M')
Sea w L(M),
w es una secuencia del lenguaje, por tanto es reconocida por
el autmata M, es decir:
(
o
,w) F , '([
0
],w) = [ (
o
,w)] F/R
por tanto w L(M')
Sea w e L(M')
'([
o
],w) = [ (
o
,w)] F/R
esto es para algn a E se cumple que a R (
o
, w)
entonces a es compatible con (
o
, w) en w' para w'
*


Minimizacin del nmero de estados

Para reducir el numero de estados de un autmata se construye un nuevo autmata
cuyos estados resultan de particionar sucesivamente el conjuntos de estados de la maquina
inicial hasta obtener una particin que tengan transiciones de estados de un grupo hacia
estados del mismo grupo.

Algoritmo

Entrada : M (autmata determinista)
Salida : M
s
(autmata determinista simplificado)
Mtodo :

1 Se parte el conjunto E en dos grupos : estados finales, y estados no finales P(E) = {F,E-F}
2 Para cada grupo G de P(E) , hallar una particin P(G), de tal forma que dos estados
estn en el mismo subgrupo, si para todos los smbolos del alfabeto, tienen transiciones
hacia el mismo subgrupo.
3 Repetir 1 y 2 hasta que se tengan grupos que ya no se puedan partir.

Al final se tendr una particin, en el que cada grupo ya no se pueda subdividir. Los
elementos de esta particin son las clases de equivalencia de E. Estas clases se consideraran
como los estados de la maquina simplificada.

Ejercicio 8
Construir el autmata no determinista por el mtodo descrito para las siguientes
expresiones regulares del ejercicio (2)

a) (a/b)*ab
b) b(a/b)*
c) l(l/d)*
d) (ab*ab*ab*)*

Lenguajes y Traductores FISI 2014-II

Augusto Cortez Vsquez Pag.18/20
Ejemplo 9
Consideremos el autmata no determinista construido en el ejemplo 7, y consideremos su
autmata determinista obtenido a partir de el.

b
C

b b
a
a b
A B D


a a

M(E, A, ,
0
, F)
E={A, B, C, D} A = { a, b} F = {D}

a b

A B C

B B D

C B C

D B C


Aplicando el mtodo de simplificacin:

Hallamos una particin de E , en dos conjuntos: los estados finales y los estados no finales:
E = {{D}{A,B,C}}

Hallamos una particin del conjunto {A,B,C}
E = {{D},{A,C},{B}}
Ntese que :

- Estando en el estado D, con una a, se pasa a B y con una b se pasa a C.
- Estando en el estado B, con una a, se queda en el estado B, y con una b se pasa al
estado D.
- Estando en los estados A-C, con una a se pasa al estado B, y con una b se
queda en el estado A-C

Luego la maquina simplificada, tiene como estados a las clases E ={[A],[B],[D]}

Donde [A]={A,C} ,[B]={B} y [D]={D}
La maquina simplificada es la siguiente:
Lenguajes y Traductores FISI 2014-II

Augusto Cortez Vsquez Pag.19/20


b a

a b
[A]

[B] [D]

a
b

M(E, , ,
0
, F) E={[A],

[B], [D]} = { a, b} F = {[D]}

a b

[A]

[B] [A]
[B] [B] [D]
[D] [B] [A]

Esta mquina es la misma que se construyo inicialmente en el ejemplo 432

Construccin de una gramtica a partir de una expresin regular

Sea r expresin regular , podemos construir M(r) autmata que reconoce secuencias
generadas por r, es decir L( r) = L(M)
M se define formalmente como: M = (E, , ,
o
, F)
A partir de M podemos construir la gramtica G(V
N
, V
T
, S, P), tal que:
L(G) = L (M) = L( r)

Mtodo 1 :
Paso 1: hacemos V
T
= smbolos terminales
V
N
= E smbolos no terminales
S =
0
axioma o smbolo inicial

Paso 2: si se cumple en la matriz de transicin que

(
i,
a) =
j
para algn a
entonces construimos la regla de produccin

p :
i
a
j


Paso 3: si se cumple en la matriz de transicin que

i
F (
i
es estado final )

entonces construimos la regla de produccin
p :
i




Lenguajes y Traductores FISI 2014-II

Augusto Cortez Vsquez Pag.20/20
Mtodo 2 :
Se cumplen los Paso 1 y Paso 2 del mtodo 1
y aadimos un nuevo paso 3:

Paso 3: si se cumple en la matriz de transicin que
(
i,
a) F , para algn a entonces construimos la regla de produccin
p :
i
a

la gramtica construida por el mtodo 2 no posee producciones .

Ejercicio 9
Convertir cada uno de los autmatas del ejercicio 8 a autmata determinista

Ejercicio 10
Hallar la gramtica para los autmatas reducidos del ejercicio 6

R RE EF FE ER RE EN NC CI IA AS S B BI IB BL LI IO OG GR RA AF FI IC CA AS S

[1] [AHO 2004] Aho A.,Sethi,Ullman Compiladores, principios, tcnicas y
herramientas; Addison-Wesley1990, Wilmington-Delaware EUA.
[2] [BECK 1988] BBECK Leland Software de Sistemas
Addisson Wesley iberoamericana Wilmington Delaware 1988
[3] [BROOKSHEAR 1993] BROOKSHEAR J. Glean
Teora de la computacin
Addisson Wesley iberoamericana Wilmington Delaware 1993
[4] [CORTEZ 2011] Cortez Vsquez, Augusto. Matemticas Discretas, Edit San
Marcos Lima Peru
[5] [CORTEZ 2002] Cortez Vsquez, Augusto. Lenguajes y compiladores, UCSS
2013 Lima Peru..
[6] [DEITEL 1987] Deitel Harvey M.. Introduccin a los sistemas operativos;
Addison-Wesley, Iberoamenricana 1987 Wilmigton Deleware E.U.A:
[7] [HOPCROFT 1993] Hopcroft Jhon, Ullman Jeffrey
Introduccin a la teora de autmatas Edit. CECSA 1993
[8] [JOHNSONBAUGH 1999] Johnsonbaugh Richard Mateamticas Discretas; Prentice
Hall 1999
[9] [KOLMAN 1997] Kolman-Busby-Ross Matematicas Discretas; Prentice Hall 1997
[10] [PEA 1998] PEA MARI, Ricardo Diseo de programas, Formalismo y abstraccin
Prentice Hall Madrid 1998
[10] [PRATT 1988] Terrence W. Pratt. Lenguajes de programacin, Diseo e
implementacin; Prentice Hall Hispanoamericana 1988
[11] [SETHI 1992] SETHI, Ravi LENGUAJES DE PROGRAMACION, Conceptos y
Constructores; Addison-Wesley, 1992 .
[12] [TEUFEL 1990] Teufel-Smithd-Teufel. Compiladores, Conceptos fundamentales;
Addison-Wesley, 1990 .

S-ar putea să vă placă și