Está en la página 1de 27

Autmatas Finitos

Generalidades, relacin con lenguajes


regulares, ejemplos y aplicaciones

Por: Oscar Eduardo Snchez


Garcia.

1. Introduccin

Construccin de compiladores
Teora de Lenguajes Formales
y Autmatas
Matemticas

C d ig o e je c u ta b le

L e n g u a je d e a lto
n iv e l
p u b lic c las s A rray D e m o {
p u b lic s ta tic v o id m a in ( S tr in g [] a r g s ) {
in t[] a n A r r a y ;
a n A r r a y = n e w in t[1 0 ];
f o r ( i n t i = 0 ; i < a n A r r a y .l e n g t h ; i + + ) {
a n A r r a y [i] = i;
S y s t e m .o u t .p r i n t ( a n A r r a y [i ] + " ") ;
}
S y s t e m .o u t .p r i n t l n ( ) ;
}
}

C o m p ila d o r

Fases del
Compilador1

Autmatas Finitos

Anlisis
Lexicogrfico

Anlisis
Sintctico

Anlisis
Semntico

Generacin
de cdigo

Preparacin
para la
generacin
de cdigo

Optimizacin

Fases del Compilador segn Karen A. Lemone

2. Autmatas Finitos - AF

2.1 Ejemplo 1 de AF

q2

q1

b
Estados
Estado Inicial
Estados finales
Transiciones

q4

q3

q6

q5

d
Acepta o rechaza palabras

1)

q2

q4

q1

q3

q6

q5

Acepta bcc?

1)

q2

q4

q1

q3

q6

q5

Acepta bcc? S

2)

q2

q4

q1

q3

q6

q5

Acepta ab?

2)

q2

q4

q1

q3

q6

q5

Acepta ab? S

3)

q2

q4

q1

q3

q6

q5

Acepta bccc?

3)

q2

q4

q1

q3

q6

q5

Acepta bccc? No

4)

q2

q4

q1

q3

q6

q5

Acepta bca5c?
Nota: bca5c = bcaaaaac

4)

q2

q4

q1

q3

q6

q5

Acepta bca5c? S
Nota: bca5c = bcaaaaac

5)

q2

q4

q1

q3

q6

q5

Acepta bd4?

5)

q2

q4

q1

q3

q6

q5

Acepta bd4? S

6)

q2

q4

q1

q3

q6

q5

Acepta abc?

6)

q2

q4

q1

q3

q6

q5

Acepta abc? No

2.2 Ejemplo 2 de AF

q2

0 ,1 ,2 ,3 ,4 ,5 ,6 ,7 ,8 ,9

q1

q4

0 ,1 ,2 ,3 ,4 ,5 ,6 ,7 ,8 ,9

q3

0 ,1 ,2 ,3 ,4 ,5 ,6 ,7 ,8 ,9

0 ,1 ,2 ,3 ,4 ,5 ,6 ,7 ,8 ,9

q2

0 ,1 ,2 ,3 ,4 ,5 ,6 ,7 ,8 ,9

q1

q4

0 ,1 ,2 ,3 ,4 ,5 ,6 ,7 ,8 ,9

q3

0 ,1 ,2 ,3 ,4 ,5 ,6 ,7 ,8 ,9

Acepta:

42.7

0 ,1 ,2 ,3 ,4 ,5 ,6 ,7 ,8 ,9

q2

0 ,1 ,2 ,3 ,4 ,5 ,6 ,7 ,8 ,9

q1

q4

0 ,1 ,2 ,3 ,4 ,5 ,6 ,7 ,8 ,9

q3

0 ,1 ,2 ,3 ,4 ,5 ,6 ,7 ,8 ,9

Acepta:

.325

0 ,1 ,2 ,2 ,4 ,5 ,6 ,7 ,8 ,9

q2

0 ,1 ,2 ,3 ,4 ,5 ,6 ,7 ,8 ,9

q1

q4

0 ,1 ,2 ,3 ,4 ,5 ,6 ,7 ,8 ,9

q3

0 ,1 ,2 ,3 ,4 ,5 ,6 ,7 ,8 ,9

0 ,1 ,2 ,3 ,4 ,5 ,6 ,7 ,8 ,9

El autmata representa los


nmeros reales sin signo en
notacin normal

Acepta: 42.7
.325
3.14159
23.45

3. Aplicaciones

3. Autmatas y lenguajes de programacin de


computadores
Identificadores

Autmata Finito
no determinista

Enteros
Anlisis
lxico

Reales
Operadores
Cadenas de caracteres
For
If
While
Do while
expresiones

Anlisis sintctico

Autmata de pila no
determinista

Aplicaciones que requieren anlisis sintctico


Compilador para un computador de automatizacin
industrial
Herramienta de consulta de bases de datos distribuidas
Creacin de un motor de base de datos relacional
Creacin de un motor de base de datos OO (Base de
objetos) y su lenguaje de consulta (OQL)
Simulador robtico con lenguaje de programacin para
robots
Generador de analizador sintctico (YACC, JAVACC)

Investigacin y desarrollo

Bibliografa
KELLY, Dean. Teora de Autmatas y Lenguajes Formales.
Prentice Hall.
BRENA, Ramn. Autmatas y Lenguajes. Tec. Monterrey.
2003. Libro electrnico disponible en
http://lizt.mty.itesm.mx/~rbrena/AyL.html
ISASI VIUELA, Pedro ;MARTNEZ FERNANDEZ, Paloma;
BORRAJO MILLN, Daniel. Lenguajes, Gramticas y
Autmatas; Un enfoque prctico. Editorial Addison-Wesley.
HOPCROFT Y ULLMAN. Introduccin a la Teora de
Autmatas, Lenguajes y Computacin. Editorial Cecsa.

También podría gustarte