Automatas finitos

27
Autómatas Finitos Generalidades, relación con lenguajes regulares, ejemplos y aplicaciones Por: Oscar Eduardo Sánchez Garcia.

Transcript of Automatas finitos

Page 1: Automatas finitos

Autómatas Finitos

Generalidades, relación con lenguajes regulares, ejemplos y aplicaciones

Por: Oscar Eduardo Sánchez Garcia.

Page 2: Automatas finitos

1. Introducción

Page 3: Automatas finitos

Construcción de compiladores

Teoría de Lenguajes Formales y Autómatas

Matemáticas

Page 4: Automatas finitos

public c las s ArrayD e m o { public s tatic vo id m ain(Str ing[] args ) { int[] anArray; anArray = ne w int[1 0 ]; fo r ( int i = 0 ; i < anArray.le ngth; i+ + ) { anArray[i] = i; Sys te m .o ut.pr int(anArray[i] + " ") ; } Sys te m .o ut.pr intln() ; }}

L e n g u a je d e a l to n iv e l

C ó d ig o e je c u ta b le

C o m p ila d o r

Page 5: Automatas finitos

Análisis Lexicográfico

Análisis Sintáctico

Análisis Semántico

OptimizaciónPreparación para la generación de código

Generación de código

Fas

es d

el

Com

pila

dor1

1 Fases del Compilador según Karen A. Lemone

Autómatas Finitos

Page 6: Automatas finitos

2. Autómatas Finitos - AF

Page 7: Automatas finitos

2.1 Ejemplo 1 de AF

q1

q2

q3

q4

q5

q6

a

c

b

c

a

c

d

Estados

Estado Inicial

Estados finales

Transiciones Acepta o rechaza palabras

Page 8: Automatas finitos

¿Acepta bcc?

q1

q2

q3

q4

q5

q6

a

c

b

c

a

c

d

1)

Page 9: Automatas finitos

¿Acepta bcc? Sí

q1

q2

q3

q4

q5

q6

a

c

b

c

a

c

d

1)

Page 10: Automatas finitos

¿Acepta ab?

q1

q2

q3

q4

q5

q6

a

c

b

c

a

c

d

2)

Page 11: Automatas finitos

¿Acepta ab? Sí

q1

q2

q3

q4

q5

q6

a

c

b

c

a

c

d

2)

Page 12: Automatas finitos

¿Acepta bccc?

q1

q2

q3

q4

q5

q6

a

c

b

c

a

c

d

3)

Page 13: Automatas finitos

¿Acepta bccc? No

q1

q2

q3

q4

q5

q6

a

c

b

c

a

c

d

3)

Page 14: Automatas finitos

¿Acepta bca5c?

q1

q2

q3

q4

q5

q6

a

c

b

c

a

c

d

4)

Nota: bca5c = bcaaaaac

Page 15: Automatas finitos

¿Acepta bca5c? Sí

q1

q2

q3

q4

q5

q6

a

c

b

c

a

c

d

4)

Nota: bca5c = bcaaaaac

Page 16: Automatas finitos

¿Acepta bd4?

q1

q2

q3

q4

q5

q6

a

c

b

c

a

c

d

5)

Page 17: Automatas finitos

¿Acepta bd4? Sí

q1

q2

q3

q4

q5

q6

a

c

b

c

a

c

d

5)

Page 18: Automatas finitos

¿Acepta abc?

q1

q2

q3

q4

q5

q6

a

c

b

c

a

c

d

6)

Page 19: Automatas finitos

¿Acepta abc? No

q1

q2

q3

q4

q5

q6

a

c

b

c

a

c

d

6)

Page 20: Automatas finitos

2.2 Ejemplo 2 de AF

q1

q2

q3

q4

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

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

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

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

.

Page 21: Automatas finitos

q1

q2

q3

q4

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

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

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

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

.

Acepta: 42.7

Page 22: Automatas finitos

q1

q2

q3

q4

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

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

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

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

.

Acepta: .325

Page 23: Automatas finitos

q1

q2

q3

q4

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

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

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

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

.

Acepta: 42.7 .325 3.14159 23.45

El autómata representa los números reales sin signo en notación normal

Page 24: Automatas finitos

3. Aplicaciones

Page 25: Automatas finitos

For

If

While

Do while

expresiones

3. Autómatas y lenguajes de programación de computadores

Identificadores

Enteros

Reales

Operadores

Cadenas de caracteres

Autómata Finito no determinista

Autómata de pila no determinista

Análisis léxico

Análisis sintáctico

Page 26: Automatas finitos

Aplicaciones que requieren análisis sintáctico

• Compilador para un computador de automatización industrial

• Herramienta de consulta de bases de datos distribuidas

• Creación de un motor de base de datos relacional

• Creación de un motor de base de datos OO (Base de objetos) y su lenguaje de consulta (OQL)

• Simulador robótico con lenguaje de programación para robots

• Generador de analizador sintáctico (YACC, JAVACC)

Investigación y desarrollo

Page 27: Automatas finitos

Bibliografía

KELLY, Dean. Teoría de Autómatas y Lenguajes Formales. Prentice Hall.

BRENA, Ramón. Autómatas y Lenguajes. Tec. Monterrey. 2003. Libro electrónico disponible en http://lizt.mty.itesm.mx/~rbrena/AyL.html

ISASI VIÑUELA, Pedro ;MARTÍNEZ FERNANDEZ, Paloma; BORRAJO MILLÁN, Daniel. Lenguajes, Gramáticas y Autómatas; Un enfoque práctico. Editorial Addison-Wesley.

HOPCROFT Y ULLMAN. Introducción a la Teoría de Autómatas, Lenguajes y Computación. Editorial Cecsa.