Teoría de autómatas. Un enfoque práctico. Recortables. Thelma Cantú María Gpe. Mendoza

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Teoría de autómatas. Un enfoque práctico. Recortables. Thelma Cantú María Gpe. Mendoza"

Transcripción

1 Teoría de autómatas. Un enfoque práctico Recortables Thelma Cantú María Gpe. Mendoza

2 1.1 Búsqueda de lenguajes Alumno: 1 Nombre del lenguaje Alfabeto: Dónde se utiliza? Cuál es el beneficio para la humanidad? 2 Nombre del lenguaje Alfabeto: Dónde se utiliza? Cuál es el beneficio para la humanidad? 3 Nombre del lenguaje Alfabeto: Dónde se utiliza? Cuál es el beneficio para la humanidad? 4 Nombre del lenguaje Alfabeto: Dónde se utiliza? Cuál es el beneficio para la humanidad? 5 Nombre del lenguaje Alfabeto: Dónde se utiliza? Cuál es el beneficio para la humanidad? Teoría de autómatas. Un enfoque práctico 2

3 1.2 Ejercicios de conjuntos Alumno: Conjuntos: A = {ab, bc, cd} B = {aa, b, cc} C = {a, b, c} D = {b, d, e} E = {b, d, f} F = {a, f, g, h, i, j} G = {Edgar, Carlos, Eugenio, Alan, Marco, Jesús, Rey, Librado, Agustín} H = {Herrera, Edgar, Juárez, Martínez, Nampulá, Solís, Vidaña, González} Operaciones de conjuntos: 1. P(A) 2. P(B) 3. C D E 4. E D 5. D F C 6. C-E B-D 7. C F B 8. Determine las cadenas resultantes de *=(A B C) 9. Elabore una lista de las cadenas de A* 10. F E 11. Compruebe la ley conmutativa con los conjuntos C y D. 12. Compruebe la ley asociativa con los conjuntos D, E y F. 13. Compruebe la ley distributiva con los conjuntos D, E y F. 14. Obtenga las cadenas de *(G H) 15. Obtenga las cadenas de + (G H) RESULTADOS: Teoría de autómatas. Un enfoque práctico 3

4 1.3 Cuadro comparativo de las características de 10 lenguajes de programación de alto nivel Fecha: / / Lenguaje Aplicación Tipo de programación Lenguaje programado Otra característica Alumno: Teoría de autómatas. Un enfoque práctico 4

5 1.4 Línea de tiempo Alumno: Elabore una línea de tiempo (por décadas y generaciones) que incluya las características de los lenguajes con base en el desarrollo del hardware. Teoría de autómatas. Un enfoque práctico 5

6 1.5 Cuadro sinóptico Alumno: Elabore un cuadro sinóptico o esquema para organizar los conceptos relativos a los diferentes tipos de lenguajes de programación. Trate de ir de lo general a lo particular. Teoría de autómatas. Un enfoque práctico 6

7 1.6 Técnicas de búsqueda Alumno: Investigue (por lo menos) cinco diferentes técnicas de búsqueda. Incluya sus aplicaciones y características principales. 1 Técnica de búsqueda Aplicación Características Teoría de autómatas. Un enfoque práctico 7

8 2.1 Definición regular Alumno: Diseñe la definición regular para un lenguaje de programación en lenguaje natural (español). Nota: Defina cada una de las expresiones regulares que integran la definición regular. Teoría de autómatas. Un enfoque práctico 8

9 2.2 Definición regular de URL Alumno: Diseñe una definición regular para analizar una entrada URL (Uniform Resource Locator), es decir, la dirección de un sitio de Internet. Nota: Defina cada una de las expresiones regulares que integran la definición regular. Teoría de autómatas. Un enfoque práctico 9

10 2.3 Definición regular del RFC Alumno: Diseñe una definición regular para analizar el Registro Federal de Contribuyentes. Nota: Defina cada expresión regular que integra a la definición regular. Teoría de autómatas. Un enfoque práctico 10

11 2.4 Definición regular de CURP Alumno: Diseñe una definición regular para la clave CURP. Nota: Definir cada una de las expresiones regulares que integran la definición regular. Teoría de autómatas. Un enfoque práctico 11

12 3.1 Alfabeto Alumno: Defina el alfabeto para cada diagrama de transición de los operadores de expresiones regulares que se presentan, y describa brevemente el significado de la representación gráfica. Alternativo DT1 Descripción Alternativo DT2 Unario OP1 Unario OP2 Unario OP3 Sumario Interrogario Potenciario Expresión aritmética Teoría de autómatas. Un enfoque práctico 12

13 3.2 Matriz de transición Alumno: Diseñe la matriz de transición para cada uno de los diagramas del desprendible 3.1. Alternativo DT1: Alfabeto Estado L D del CAT Alternativo DT2: Alfabeto Estado " ' del CAT Unario OP1: Alfabeto Estado L D del CAT Unario OP2: Alfabeto Estado L D del CAT Unario OP3: Sumario: Estado Alfabeto Estado Alfabeto Interrogación: Potencia: Expresión aritmética: Teoría de autómatas. Un enfoque práctico 13

14 3.3 Elementos de definición formal de un autómata Alumno: Para cada autómata finito definido en la sección de diagramas de transición, obtenga los elementos correspondientes de la definición formal del autómata, e identifique el tipo de autómata. Q q0 F Tipo de autómata Alternativo DT1 Alternativo DT2 Unario OP1 Unario OP2 Unario OP3 Sumario Interrogación Potencia Expresión aritmética Teoría de autómatas. Un enfoque práctico 14

15 3.4 Dominio de la definición formal de autómatas AFND en AFD Alumno: Complete los elementos de la definición formal de autómatas y los diagramas de transición correspondientes, tome como base las siguientes tablas de transición de estados. 1. q0 = q0 F = {q2, q4} δ 0 1 q0 {q0, q1} {q0, q3} q1 {} {q2} q2 {q2} {q2} q3 {q4} {} q4 {q4} {q4} 2. q0 = q0 F = {q0, q3} δ a b q0 {q0} {q3, q2} q1 {q0, q2} φ q2 {q0, q1, q2} {q0, q1} q3 {q0} {q3} Teoría de autómatas. Un enfoque práctico 15

16 3.5 Conversión de AFND a AFD Alumno: Convierta cada AFND del desprendible 3.4 a AFD; desarrolle el proceso por pasos. Teoría de autómatas. Un enfoque práctico 16

17 3.6 Diagrama de transición de estados minimizados Alumno: Obtenga, de cada AFD resultante de la actividad 3.5, un diagrama de transiciones de los estados minimizados. Teoría de autómatas. Un enfoque práctico 17

18 4.1 Mapa cognitivo Alumno: Elabore un mapa cognitivo de las características y operación de las máquinas de Turing. Teoría de autómatas. Un enfoque práctico 18

19 4.2 Cuadro comparativo Alumno: Elabore un cuadro comparativo que ilustre las diferencias y semejanzas entre los autómatas finitos y las máquinas de Turing. Condición AF MT Cantidad de estados iniciales Cantidad de estados finales Problemas al aceptar la cadena Lectura de la cadena Estado de error Aceptación de la cadena Tratamiento de la cadena de entrada Movimientos adicionales Funcionalidad Teoría de autómatas. Un enfoque práctico 19

20 4.3 Diagrama de máquinas de Turing Alumno: Tomando en cuenta las propuestas siguientes, realice los diagramas de máquinas de Turing necesarios e identifique los elementos que componen la definición formal. 1. Encontrar el siguiente patrón en la cadena a partir de la primera celda: xxy. En qué situación esta máquina de Turing podría tener un problema de parada? 2. Eliminar todos los símbolos del alfabeto a partir de la celda actual y hasta encontrar un blanco; la posición final del cabezal debe ser la celda en donde inició sus cálculos. Teoría de autómatas. Un enfoque práctico 20

21 4.4 Máquinas de Turing Alumno: Diseñe máquinas de Turing compuestas para cada máquina del desprendible Encontrar el siguiente patrón en la cadena a partir de la primera celda: xxy. 2. Eliminar todos los símbolos del alfabeto a partir de la celda actual y hasta encontrar un blanco; la posición final del cabezal debe ser la celda en donde inició sus cálculos. Teoría de autómatas. Un enfoque práctico 21

22 4.5 Máquina de Turing y secuencia de configuraciones Alumno: Diseñe una máquina de Turing para cada uno de los siguientes lenguajes; determine los elementos de la definición formal y la secuencia de las configuraciones de la cadena para cada máquina. 1. L = {(xy) m z(xy) n ; m, n N + }; configuración inicial de la cinta: ΔxyxyzxyxyxyΔΔ L = { (abc1) m ; m N + }; configuración inicial de la cinta: Δabc1abc1abc1ΔΔ 3. L = {a l b m c n d ñ ; l, m, n, ñ>=2}; configuración inicial de la cinta: ΔaaaabbbccddΔΔ 4. L = {0100) n (10) m ; n, m N + }; configuración inicial de la cinta: Δ ΔΔ Teoría de autómatas. Un enfoque práctico 22

23 4.6 Programación de una máquina de Turing Alumno: Diseñe, a partir de las características siguientes, un programa que simule el comportamiento de las máquinas de Turing, incluyendo la configuración de cinta: 1. El programa proporciona un menú de operaciones básicas de las máquinas de Turing, a través del cual el usuario puede hacer elecciones para formar una máquina compuesta. 2. El usuario proporciona la cadena de entrada. 3. El usuario proporciona la posición de la celda en donde inicia los cálculos la máquina de Turing. Consideraciones para la evaluación del profesor: Cantidad de elementos en el menú de operaciones Presentación del alfabeto Presentación de la cadena mediante celdas Existe la opción para colocar el cabezal en la cinta? Visualización gráfica de la máquina Proceso por pasos de los movimientos de la máquina Movimientos del cabezal a medida que avanza la máquina de Turing Hay problema de parada? Aceptación de la cadena Teoría de autómatas. Un enfoque práctico 23

24 5.1 Diseño de un lenguaje de programación propio Alumno: Instrucción Descripción Sintaxis Argumentos Teoría de autómatas. Un enfoque práctico 24

25 Instrucción Descripción Sintaxis Argumentos Teoría de autómatas. Un enfoque práctico 25

26 Instrucción Descripción Sintaxis Argumentos Teoría de autómatas. Un enfoque práctico 26

27 Instrucción Descripción Sintaxis Argumentos Teoría de autómatas. Un enfoque práctico 27

28 Instrucción Descripción Sintaxis Argumentos Teoría de autómatas. Un enfoque práctico 28

29 Instrucción Descripción Sintaxis Argumentos Teoría de autómatas. Un enfoque práctico 29

30 Instrucción Descripción Sintaxis Argumentos Teoría de autómatas. Un enfoque práctico 30

31 Instrucción Descripción Sintaxis Argumentos Teoría de autómatas. Un enfoque práctico 31

32 Operadores Descripción Sintaxis Constantes numéricas Descripción Sintaxis Cadenas Descripción Sintaxis Comentarios Descripción Sintaxis Caracteres especiales Descripción Sintaxis Teoría de autómatas. Un enfoque práctico 32

33 Operadores Descripción Sintaxis Constantes numéricas Descripción Sintaxis Cadenas Descripción Sintaxis Comentarios Descripción Sintaxis Caracteres especiales Descripción Sintaxis Teoría de autómatas. Un enfoque práctico 33

34 Operadores Descripción Sintaxis Constantes numéricas Descripción Sintaxis Cadenas Descripción Sintaxis Comentarios Descripción Sintaxis Caracteres especiales Descripción Sintaxis Teoría de autómatas. Un enfoque práctico 34

35 Teoría de autómatas. Un enfoque práctico 35 Fecha: / / 5.2 Definición regular de un lenguaje propio Alumno: Nombre Expresión regular

36 Nombre Expresión regular Teoría de autómatas. Un enfoque práctico 36

37 Consideraciones para la evaluación del profesor: Contenido de las definiciones regulares: Símbolo inicial Evita la ambigüedad Palabras reservadas Operadores aritméticos Operadores relacionales Operadores lógicos Constantes numéricas (enteras y reales) Identificadores Comentarios Cadenas Caracteres especiales Evaluación: Teoría de autómatas. Un enfoque práctico 37

38 5.3 Diagrama tu propio lenguaje Alumno: Diagrama de transición Teoría de autómatas. Un enfoque práctico 38

39 Diagrama de transición Teoría de autómatas. Un enfoque práctico 39

40 Consideraciones para la evaluación del profesor: Contenido del diagrama de transición: Estado inicial Estados finales definidos Evita la ambigüedad Palabras reservadas Operadores aritméticos Operadores relacionales Operadores lógicos Identificadores Constantes numéricas (enteras y reales) Comentarios Cadenas Caracteres especiales Evaluación: Teoría de autómatas. Un enfoque práctico 40

41 5.4 Matriz de un lenguaje de programación propio Alumno: Nota: Realizar esta matriz en un archivo de Excel con las columnas y filas necesarias. Teoría de autómatas. Un enfoque práctico 41

42 Consideraciones para la evaluación del profesor: Contenido de la matriz de transición: Caracteres aceptados por el lenguaje Estados bien definidos Columna de tokens Tokens definidos en los estados finales Definición de las casillas vacías Palabras reservadas Operadores aritméticos Operadores relacionales Operadores lógicos Constantes numéricas (enteras y reales) Identificadores Comentarios Cadenas Caracteres especiales Evaluación: Teoría de autómatas. Un enfoque práctico 42

43 5.5 Programación de un analizador léxico propio Alumno: Nombre del programa ejecutable: Integrantes del equipo: Describa las partes en que se dividió el producto final: Especifique de qué manera fueron asignadas dichas partes entre los integrantes del equipo: Tiempo estimado de programación: Tiempo real de programación: Si hay diferencia entre ambos tiempos explique por qué: Número de líneas de programación que se compilaron: Tiempo de ejecución: Nombre del archivo de tokens resultante: Tipo de estructura de datos utilizada como tabla de símbolos: Explique por qué eligieron ese tipo de estructura de datos: Teoría de autómatas. Un enfoque práctico 43

44 Consideraciones para la evaluación del profesor: Contenido de la vista del programa: Línea a compilar Conversión simultánea a tokens Línea resultante en tokens Número de línea Despliegue de error (si es que aplica) Número de errores Genera reporte de errores incluyendo las líneas Carga como archivo el programa a compilar Evaluación: Teoría de autómatas. Un enfoque práctico 44

45 6.1 Diagrama de sintaxis Alumno: Diagrama de sintaxis Teoría de autómatas. Un enfoque práctico 45

46 Diagrama de sintaxis Teoría de autómatas. Un enfoque práctico 46

47 Consideraciones para la evaluación del profesor: Contenido del diagrama de sintaxis: Manipulación adecuada de los símbolos Argumentos bien definidos Número de instrucciones correctas Número de instrucciones incompletas Evaluación: Teoría de autómatas. Un enfoque práctico 47

48 6.2 Árbol de derivación Alumno: Árbol de derivación Teoría de autómatas. Un enfoque práctico 48

49 Árbol de derivación Teoría de autómatas. Un enfoque práctico 49

50 Consideraciones para la evaluación del profesor: Contenido del árbol de derivación: Manipulación adecuada de los símbolos Argumentos bien definidos Número de instrucciones correctas Número de instrucciones incompletas Evaluación: Teoría de autómatas. Un enfoque práctico 50

51 Teoría de autómatas. Un enfoque práctico 51 Fecha: / / 6.3 Gramática libre de contexto Alumno: Izquierdo Derecho

52 Izquierdo Derecho Teoría de autómatas. Un enfoque práctico 52

53 Consideraciones para la evaluación del profesor: Contenido de la gramática libre de contexto: Manipulación adecuada de los símbolos Argumentos bien definidos Número de instrucciones correctas Número de instrucciones incompletas Evaluación: Teoría de autómatas. Un enfoque práctico 53

54 6.4 Diagramas de flujo Alumno: Diagramas de flujo Teoría de autómatas. Un enfoque práctico 54

55 Diagramas de flujo Teoría de autómatas. Un enfoque práctico 55

56 Consideraciones para la evaluación del profesor: Contenido del diagrama de flujo: Manipulación adecuada de los símbolos Analizador recursivo descendente Soluciona diversos ejemplos Analizador recursivo ascendente Soluciona diversos ejemplos Evaluación: Teoría de autómatas. Un enfoque práctico 56

57 6.5 Programación de un analizador sintáctico propio Alumno: Nombre del programa ejecutable: Integrantes del equipo: Describa las partes en que se dividió el producto final: Especifique de qué manera fueron asignadas dichas partes entre los integrantes del equipo: Tiempo estimado de programación: Tiempo real de programación: Si hay diferencias entre ambos tiempos, explique por qué: Número de líneas de programación que se compilaron: Tiempo de ejecución: Tipo de estructura de datos utilizada como tabla de símbolos: Explique la razón por la que eligieron ese tipo de estructura de datos: Teoría de autómatas. Un enfoque práctico 57

58 Consideraciones para la evaluación del profesor: Contenido de la vista del programa: Línea a compilar Conversión simultánea de la cadena de entrada Línea resultante Número de línea Despliegue de error (si es que aplica) Número de errores Genera reporte de errores, incluyendo las líneas Carga como archivo el archivo de tokens Evaluación: Teoría de autómatas. Un enfoque práctico 58

59 7.1 Árboles de expresión Alumno: Árboles de expresión Teoría de autómatas. Un enfoque práctico 59

60 Árboles de expresión Teoría de autómatas. Un enfoque práctico 60

61 Consideraciones para la evaluación del profesor: Contenido del árbol de expresión: Conversión adecuada del árbol de derivación Argumentos bien definidos Número de instrucciones correctas Número de instrucciones incompletas Evaluación: Teoría de autómatas. Un enfoque práctico 61

62 7.2 Reglas semánticas Alumno: Izquierdo Derecho Teoría de autómatas. Un enfoque práctico 62

63 Izquierdo Derecho Teoría de autómatas. Un enfoque práctico 63

64 Consideraciones para la evaluación del profesor: Contenido de las reglas semánticas Manipulación adecuada de los símbolos Conversión adecuada Número de instrucciones correctas Número de instrucciones incompletas Evaluación: Teoría de autómatas. Un enfoque práctico 64

65 7.3 Programa tu analizador semántico Alumno: Nombre del programa ejecutable: Integrantes del equipo: Describa las partes en que se dividió el producto final: Especifique de qué manera fue asignada cada una de las partes entre los integrantes del equipo: Tiempo estimado de programación: Tiempo real de programación: Si hay diferencia entre ambos tiempos, explique por qué: Tipo de analizador que se eligió programar: 1 pasada, 2 pasadas, 3 pasadas Número de líneas de programación que se compilaron: Tiempo de ejecución: Tipo de estructura de datos utilizada como tabla de símbolos: Explique la razón por la que eligieron ese tipo de estructura de datos: Teoría de autómatas. Un enfoque práctico 65

66 Consideraciones para la evaluación del profesor: Contenido de la vista del programa: Línea a compilar Conversión simultánea de la cadena de entrada Línea resultante Número de línea Despliegue de error (si es que aplica) Número de errores Genera reporte de errores, incluyendo las líneas Carga como archivo el archivo de tokens Número de pasadas Actualización de la tabla de símbolos Conversión del archivo temporal Funcionamiento del método recursivo Contadores de instrucciones compuestas Tiempo de ejecución de cada pasada Evaluación: Teoría de autómatas. Un enfoque práctico 66

67 8.1 Diagrama de flujo de conversión a notación prefijo Alumno: Diagrama de flujo prefijo Teoría de autómatas. Un enfoque práctico 67

68 Diagrama de flujo prefijo Teoría de autómatas. Un enfoque práctico 68

69 Consideraciones para la evaluación del profesor: Contenido del diagrama de flujo: Manipulación adecuada de los símbolos Conversión exitosa Contempla el uso de los paréntesis Contempla operaciones múltiples Evaluación: Teoría de autómatas. Un enfoque práctico 69

70 8.2 Diagrama de flujo de conversión a notación postfija Alumno: Diagrama de flujo postfijo Teoría de autómatas. Un enfoque práctico 70

71 Diagrama de flujo postfijo Teoría de autómatas. Un enfoque práctico 71

72 Consideraciones para la evaluación del profesor: Contenido del diagrama de flujo: Manipulación adecuada de los símbolos Conversión exitosa Contempla el uso de los paréntesis Contempla operaciones múltiples Evaluación: Teoría de autómatas. Un enfoque práctico 72

73 8.3 Programación de un convertidor a notación prefija o postfija Alumno: Fecha: / / Nombre del programa ejecutable: Integrantes del equipo: Describa las partes en que se dividió el producto final: Especifique de qué manera fueron asignadas dichas partes entre los integrantes del equipo: Tiempo estimado de programación: Tiempo real de programación: Si hay diferencias entre ambos tiempos, explique por qué: Qué diferencia observa en cuanto a complejidad entre la programación de ambas notaciones? Número de conversiones con que se hicieron pruebas: Tiempo de ejecución: Tipo de estructura de datos utilizada: Explique la razón por la que eligieron ese tipo de estructura de datos: Teoría de autómatas. Un enfoque práctico 73

74 Consideraciones para la evaluación del profesor: Contenido de la vista del programa: Captura de la expresión aritmética Selección entre las dos notaciones Línea resultante Manejo de los paréntesis Despliegue de error (si es que aplica) Tiempo de ejecución Evaluación: Teoría de autómatas. Un enfoque práctico 74

75 8.4 Construcción de una tripleta Alumno: Triplo Dato objeto Dato fuente Operador Teoría de autómatas. Un enfoque práctico 75

76 Consideraciones para la evaluación del profesor: Contenido de las tripletas: Operaciones temporales adecuadas Conversión adecuada Número de instrucciones correctas Número de instrucciones incompletas Evaluación: Teoría de autómatas. Un enfoque práctico 76

77 8.5 Construcción de un cuádruplo Alumno: Cuádruplo Dato objeto Dato fuente 1 Dato fuente 2 Operador Teoría de autómatas. Un enfoque práctico 77

78 Consideraciones para la evaluación del profesor: Contenido de los cuádruplos: Operaciones temporales adecuadas Conversión adecuada Número de instrucciones correctas Número de instrucciones incompletas Evaluación: Teoría de autómatas. Un enfoque práctico 78

79 8.6 Programación de un convertidor a tripleta o cuádruplo Alumno: Nombre del programa ejecutable: Integrantes del equipo: Describa las partes en que se dividió el producto final: Especifique de qué manera fueron asignadas dichas partes entre los integrantes del equipo: Tiempo estimado de programación: Tiempo real de programación: Si hay diferencia entre ambos tiempos, explique por qué: Qué diferencia observa en cuanto a complejidad entre la programación de ambas técnicas? Número de conversiones con que se hicieron pruebas: Tiempo de ejecución: Tipo de estructura de datos utilizada: Explique la razón por la que eligieron ese tipo de estructura de datos: Teoría de autómatas. Un enfoque práctico 79

80 Consideraciones para la evaluación del profesor: Contenido de la vista del programa: Lectura del programa fuente Selección entre las dos técnicas Estructuras resultantes Número de instrucciones correctas Número de instrucciones incorrectas Tiempo de ejecución Evaluación: Teoría de autómatas. Un enfoque práctico 80

81 9.1 Detección de expresiones locales susceptibles de optimización Alumno: Algoritmo Teoría de autómatas. Un enfoque práctico 81

82 Algoritmo Teoría de autómatas. Un enfoque práctico 82

83 Consideraciones para la evaluación del profesor: Contenido del algoritmo: Toma como entrada los triplos o cuádruplos Detecta las expresiones locales Optimiza el código intermedio Evaluación: Teoría de autómatas. Un enfoque práctico 83

84 9.2 Diagrama de flujo de detección de expresiones locales Alumno: Expresiones locales Fecha: / / Teoría de autómatas. Un enfoque práctico 84

85 Expresiones locales Teoría de autómatas. Un enfoque práctico 85

86 Consideraciones para la evaluación del profesor: Contenido del diagrama de flujo: Manipulación adecuada de los símbolos Detección exitosa Corrección exitosa Evaluación: Teoría de autómatas. Un enfoque práctico 86

87 9.3 Programación de un detector de expresiones locales Alumno: Nombre del programa ejecutable: Integrantes del equipo: Describa las partes en que se dividió el producto final: Especifique de qué manera fueron asignadas dichas partes entre los integrantes del equipo: Tiempo estimado de programación: Tiempo real de programación: Si hay diferencia entre ambos tiempos, explique por qué: Qué diferencia observa en cuanto a complejidad entre la programación de ambas técnicas? Número de conversiones con que se hicieron pruebas: Tiempo de ejecución: Tipo de estructura de datos utilizada: Explique la razón por la que eligieron ese tipo de estructura de datos: Teoría de autómatas. Un enfoque práctico 87

88 Consideraciones para la evaluación del profesor: Contenido de la vista del programa: Lectura de tripletas o cuádruplos Modificación adecuada del código intermedio Visualización previa y posterior Número de instrucciones correctas Número de instrucciones incorrectas Tiempo de ejecución Evaluación: Teoría de autómatas. Un enfoque práctico 88

89 9.4 Detección de bucles Alumno: Algoritmo Teoría de autómatas. Un enfoque práctico 89

90 Algoritmo Teoría de autómatas. Un enfoque práctico 90

91 Consideraciones para la evaluación del profesor: Contenido del algoritmo: Toma como entrada los triplos o cuádruplos Detecta los bucles Optimiza el código intermedio Evaluación: Teoría de autómatas. Un enfoque práctico 91

92 9.5 Diagrama de flujo de detección de bucles Alumno: Diagrama de flujo de detección de bucles Teoría de autómatas. Un enfoque práctico 92

93 Diagrama de flujo de detección de bucles Teoría de autómatas. Un enfoque práctico 93

94 Consideraciones para la evaluación del profesor: Contenido del diagrama de flujo: Manipulación adecuada de los símbolos Detección exitosa Corrección exitosa Evaluación: Teoría de autómatas. Un enfoque práctico 94

95 9.6 Programa tu detector de bucles Alumno: Nombre del programa ejecutable: Integrantes del equipo: Describa las partes en que se dividió el producto final: Especifique de qué manera fueron asignadas dichas partes entre los integrantes del equipo: Tiempo estimado de programación: Tiempo real de programación: Si hay diferencia entre ambos tiempos, explique por qué: Qué diferencia observa en cuanto a complejidad entre la programación de ambas técnicas? Número de conversiones con que se hicieron pruebas: Tiempo de ejecución: Tipo de estructura de datos utilizada: Explique la razón por la que eligieron ese tipo de estructura de datos: Teoría de autómatas. Un enfoque práctico 95

96 Consideraciones para la evaluación del profesor: Contenido de la vista del programa: Lectura de tripletas o cuádruplos Modificación adecuada del código intermedio Visualización previa y posterior Número de instrucciones correctas Número de instrucciones incorrectas Tiempo de ejecución Evaluación: Teoría de autómatas. Un enfoque práctico 96

97 9.7 Detecta los GLOBALES Alumno: Algoritmo Teoría de autómatas. Un enfoque práctico 97

98 Algoritmo Teoría de autómatas. Un enfoque práctico 98

99 Consideraciones para la evaluación del profesor: Contenido del algoritmo: Toma como entrada los triplos o cuádruplos Detecta los problemas globales Optimiza el código intermedio Evaluación: Teoría de autómatas. Un enfoque práctico 99

100 9.8 Diagrama de flujo de detección de problemas globales Alumno: Expresiones globales Fecha: / / Teoría de autómatas. Un enfoque práctico 100

101 Expresiones globales Teoría de autómatas. Un enfoque práctico 101

102 Consideraciones para la evaluación del profesor: Contenido del diagrama de flujo: Manipulación adecuada de los símbolos Detección exitosa Corrección exitosa Evaluación: Teoría de autómatas. Un enfoque práctico 102

103 9.9 Programación de un detector de problemas globales Alumno: Nombre del programa ejecutable: Integrantes del equipo: Describa las partes en que se dividió el producto final: Especifique de qué manera fue asignada cada una de las partes entre los integrantes del equipo: Tiempo estimado de programación: Tiempo real de programación: Si hay diferencia entre ambos tiempos, explique por qué: Qué diferencia observa en cuanto a complejidad entre la programación de ambas técnicas? Número de conversiones con que se hicieron pruebas: Tiempo de ejecución: Tipo de estructura de datos utilizada: Explique la razón por la que eligieron ese tipo de estructura de datos: Teoría de autómatas. Un enfoque práctico 103

104 Consideraciones para la evaluación del profesor: Contenido de la vista del programa: Lectura de tripletas o cuádruplos Modificación adecuada del código intermedio Visualización previa y posterior Número de instrucciones correctas Número de instrucciones incorrectas Tiempo de ejecución Evaluación: Teoría de autómatas. Un enfoque práctico 104

105 9.10 Detecta los mirillas Alumno: Algoritmo Teoría de autómatas. Un enfoque práctico 105

106 Algoritmo Teoría de autómatas. Un enfoque práctico 106

107 Consideraciones para la evaluación del profesor: Contenido del algoritmo: Toma como entrada los triplos o cuádruplos Detecta las mirillas Optimiza el código intermedio Evaluación: Teoría de autómatas. Un enfoque práctico 107

108 9.11 Diagrama de flujo de detección de mirillas Alumno: Expresiones mirillas Teoría de autómatas. Un enfoque práctico 108

109 Expresiones mirillas Teoría de autómatas. Un enfoque práctico 109

110 Consideraciones para la evaluación del profesor: Contenido del diagrama de flujo: Manipulación adecuada de los símbolos Detección exitosa Corrección exitosa Evaluación: Teoría de autómatas. Un enfoque práctico 110

111 9.12 Programa tu detector de mirillas Alumno: Nombre del programa ejecutable: Integrantes del equipo: Describa las partes en que se dividió el producto final: Especifique de qué manera fue asignada cada una de las partes entre los integrantes del equipo: Tiempo estimado de programación: Tiempo real de programación: Si hay diferencia entre ambos tiempos, explique por qué: Qué diferencia observa en cuanto a complejidad entre la programación de ambas técnicas? Número de conversiones con que se hicieron pruebas: Tiempo de ejecución: Tipo de estructura de datos utilizada: Explique la razón por la que eligieron ese tipo de estructura de datos: Teoría de autómatas. Un enfoque práctico 111

112 Consideraciones para la evaluación del profesor: Contenido de la vista del programa: Lectura de tripletas o cuádruplos Modificación adecuada del código intermedio Visualización previa y posterior Número de instrucciones correctas Número de instrucciones incorrectas Tiempo de ejecución Evaluación: Teoría de autómatas. Un enfoque práctico 112

DATOS DE IDENTIFICACIÓN. Materia: Introducción a la teoría de los lenguajes formales Definición de alfabeto ETAPA PREINSTRUCCIONAL

DATOS DE IDENTIFICACIÓN. Materia: Introducción a la teoría de los lenguajes formales Definición de alfabeto ETAPA PREINSTRUCCIONAL Actividades ACTIVIDAD 1.1 Introducción a la teoría de los lenguajes formales Definición de alfabeto 30 minutos Búsqueda de diferentes lenguajes Desarrollar el análisis de textos y el aprendizaje autónomo.

Más detalles

Nombre de la asignatura: Lenguajes y Autómatas I. Créditos: Aportación al perfil

Nombre de la asignatura: Lenguajes y Autómatas I. Créditos: Aportación al perfil Nombre de la asignatura: Lenguajes y Autómatas I Créditos: 2 3 5 Aportación al perfil Desarrollar, implementar y administrar software de sistemas o de aplicación que cumpla con los estándares de calidad

Más detalles

Capítulo 9. Introducción a los lenguajes formales. Continuar

Capítulo 9. Introducción a los lenguajes formales. Continuar Capítulo 9. Introducción a los lenguajes formales Continuar Introducción Un lenguaje es un conjunto de símbolos y métodos para estructurar y combinar dichos símbolos. Un lenguaje también recibe el nombre

Más detalles

Generación de Código Intermedio

Generación de Código Intermedio Generación de Código Intermedio Programación II Margarita Álvarez Generación de código intermedio Con la generación de código intermedio se inicia la tarea de síntesis. Aunque un programa fuente se puede

Más detalles

UNIVERSIDAD NACIONAL DE EDUCACIÓN A DISTANCIA Escuela Técnica Superior de Ingeniería Informática Procesadores de Lenguajes. Tema 2.

UNIVERSIDAD NACIONAL DE EDUCACIÓN A DISTANCIA Escuela Técnica Superior de Ingeniería Informática Procesadores de Lenguajes. Tema 2. UNIVERSIDAD NACIONAL DE EDUCACIÓN A DISTANCIA Escuela Técnica Superior de Ingeniería Informática Procesadores de Lenguajes Tema 2 Análisis Léxico Javier Vélez Reyes jvelez@lsi.uned.es Objetivos del Tema

Más detalles

NOTAS PARA LA MATERIA LENGUAJES DE PROGRAMACIÓN

NOTAS PARA LA MATERIA LENGUAJES DE PROGRAMACIÓN NOTAS PARA LA MATERIA LENGUAJES DE PROGRAMACIÓN G r a m á t i c a s UNIVERSIDAD DE SONORA DEPARTAMENTO DE MATEMÁTICAS LICENCIATURA EN CIENCIAS DE LA COMPUTACIÓN Dra. María de Guadalupe Cota Ortiz Lenguaje

Más detalles

Coordinación de Ciencias Computacionales INAOE. Teoría de Autómatas y Lenguajes Formales. Temario detallado para examen de ingreso 2012

Coordinación de Ciencias Computacionales INAOE. Teoría de Autómatas y Lenguajes Formales. Temario detallado para examen de ingreso 2012 Coordinación de Ciencias Computacionales INAOE Teoría de Autómatas y Lenguajes Formales Temario detallado para examen de ingreso 2012 1. Autómatas 1.1. Por qué estudiar la teoría de autómatas? 1.1.1. Introducción

Más detalles

Teoría de Autómatas y Compiladores [ICI-445] Capítulo 2: Autómatas Finitos

Teoría de Autómatas y Compiladores [ICI-445] Capítulo 2: Autómatas Finitos Teoría de Autómatas y Compiladores [ICI-445] Capítulo 2: Autómatas Finitos Dr. Ricardo Soto [ricardo.soto@ucv.cl] [http://www.inf.ucv.cl/ rsoto] Escuela de Ingeniería Informática Pontificia Universidad

Más detalles

ANÁLISIS LÉXICO Ing. Ronald Rentería Ayquipa

ANÁLISIS LÉXICO Ing. Ronald Rentería Ayquipa ANÁLISIS LÉXICO Ing. Ronald Rentería Ayquipa ANALIZADOR LÉXICO (AL) El Analizador léxico (scanner), lee la secuencia de caracteres del programa fuente, caracter a caracter, y los agrupa para formar unidades

Más detalles

SSL Guia de Ejercicios

SSL Guia de Ejercicios 1 SSL Guia de Ejercicios INTRODUCCIÓN A LENGUAJES FORMALES 1. Dado el alfabeto = {a, b, c}, escriba las palabras del lenguaje L = {x / x }. 2. Cuál es la cardinalidad del lenguaje L = {, a, aa, aaa}? 3.

Más detalles

Unidad II: Análisis semántico

Unidad II: Análisis semántico Unidad II: Análisis semántico Se compone de un conjunto de rutinas independientes, llamadas por los analizadores morfológico y sintáctico. El análisis semántico utiliza como entrada el árbol sintáctico

Más detalles

Ciencias de la Computación I

Ciencias de la Computación I Ciencias de la Computación I Gramáticas Regulares Expresiones Regulares Gramáticas - Intuitivamente una gramática es un conjunto de reglas para formar correctamente las frases de un lenguaje - Por ejemplo,

Más detalles

Tema: Análisis Léxico

Tema: Análisis Léxico Compiladores. Guía 2 1 Facultad: Ingeniería Escuela: Computación Asignatura: Compiladores Tema: Análisis Léxico Contenido En esta guía se dará a conocer la manera en que un compilador realiza el análisis

Más detalles

Unidad 4. Autómatas de Pila

Unidad 4. Autómatas de Pila Unidad 4. Autómatas de Pila Una de las limitaciones de los AF es que no pueden reconocer el lenguaje {0n1n} debido a que no se puede registrar para todo n con un número finito de estados. Otro lenguaje

Más detalles

Máquinas Secuenciales, Autómatas y Lenguajes. Tema 4: Expresiones Regulares. Luis Peña

Máquinas Secuenciales, Autómatas y Lenguajes. Tema 4: Expresiones Regulares. Luis Peña Máquinas Secuenciales, Autómatas y Lenguajes Tema 4: Expresiones Regulares Luis Peña Sumario Tema 4: Expresiones Regulares. 1. Concepto de Expresión Regular 2. Teoremas de Equivalencia Curso 2012-2013

Más detalles

Conceptos básicos sobre gramáticas

Conceptos básicos sobre gramáticas Procesamiento de Lenguajes (PL) Curso 2014/2015 Conceptos básicos sobre gramáticas Gramáticas y lenguajes Gramáticas Dado un alfabeto Σ, un lenguaje es un conjunto (finito o infinito) de cadenas de símbolos

Más detalles

16 Análisis sintáctico I

16 Análisis sintáctico I 2 Contenido Recordando la estructura de un compilador Recordando el análisis léxico l análisis sintáctico Comparación con el análisis léxico l Rol del Parser Lenguajes de programación Gramáticas structura

Más detalles

PROGRAMACIÓN II AÑO 2009 TALLER 3: TEORÍA DE LENGUAJES Y AUTÓMATAS

PROGRAMACIÓN II AÑO 2009 TALLER 3: TEORÍA DE LENGUAJES Y AUTÓMATAS Licenciatura en Sistemas de Información PROGRAMACIÓN II AÑO 2009 TALLER 3: TEORÍA DE LENGUAJES Y AUTÓMATAS UNSE FCEyT 1. DESCRIPCIÓN Este taller consta de tres partes. En cada una de ellas se especifican

Más detalles

Tema 1. Introducción

Tema 1. Introducción Departamento de Tecnologías de la Información Tema 1 Introducción Ciencias de la Computación e Inteligencia Artificial Índice 1.1 Conceptos 1.2 Un poco de historia 1.3 Estructura de un compilador 1.4 Teoría

Más detalles

PROCESADORES DE LENGUAJE EXAMEN FINAL 8-JUNIO-07

PROCESADORES DE LENGUAJE EXAMEN FINAL 8-JUNIO-07 PROCESADORES DE LENGUAJE EXAMEN FINAL 8-JUNIO-07 1. En qué método de análisis sintáctico puede suceder que en la construcción del árbol de derivación de las posibles expansiones de un símbolo no terminal

Más detalles

Contenido. Capítulo 1. Teoría de conjuntos. 1. Capítulo 2. Lenguaje. 39. Capítulo 3. Lenguajes formales. 55

Contenido. Capítulo 1. Teoría de conjuntos. 1. Capítulo 2. Lenguaje. 39. Capítulo 3. Lenguajes formales. 55 Contenido Capítulo 1. Teoría de conjuntos. 1 1.1 Conjuntos.... 3 1.1.1 Definiciones básicas.... 3 1.1.2 Operaciones sobre conjuntos.... 6 1.1.3 Diagrama de Venn.... 7 1.1.4 Álgebra de conjuntos.... 7 1.2

Más detalles

El proceso del Análisis Léxico

El proceso del Análisis Léxico El proceso del Análisis Léxico El proceso de análisis léxico se refiere al trabajo que realiza el scanner con relación al proceso de compilación. El scanner representa una interfaz entre el programa fuente

Más detalles

Algoritmos. Medios de expresión de un algoritmo. Diagrama de flujo

Algoritmos. Medios de expresión de un algoritmo. Diagrama de flujo Algoritmos En general, no hay una definición formal de algoritmo. Muchos autores los señalan como listas de instrucciones para resolver un problema abstracto, es decir, que un número finito de pasos convierten

Más detalles

PROGRAMA INSTRUCCIONAL AUTOMATAS Y LENGUAJES FORMALES

PROGRAMA INSTRUCCIONAL AUTOMATAS Y LENGUAJES FORMALES UNIVERSIDAD FERMIN TORO VICE RECTORADO ACADEMICO UNIVERSIDAD FACULTAD DE INGENIERIA ESCUELA DE MANTENIMIENTO MECÁNICO ESCUELA DE TELECOMUNICACIONES ESCUELA DE ELÉCTRICA ESCUELA DE COMPUTACIÓN PROGRAMA

Más detalles

1. Define que es un Autómatas finitos determinanticos y cuáles son sus elementos constitutivos (explique cada uno de ellos).

1. Define que es un Autómatas finitos determinanticos y cuáles son sus elementos constitutivos (explique cada uno de ellos). Unidad 2.- Lenguajes Regulares Los lenguajes regulares sobre un alfabeto dado _ son todos los lenguajes que Se pueden formar a partir de los lenguajes básicos?, {_}, {a}, a 2 _, por medio De las operaciones

Más detalles

Procesadores de Lenguaje

Procesadores de Lenguaje Procesadores de Lenguaje Repaso TALF Cristina Tîrnăucă Dept. Matesco, Universidad de Cantabria Fac. Ciencias Ing. Informática Primavera de 2013 La Jerarquía de Chomsky Cuatro niveles de lenguajes formales

Más detalles

UNIVERSIDAD TECNOLOGICA DE PEREIRA FACULTAD DE INGENIERIAS

UNIVERSIDAD TECNOLOGICA DE PEREIRA FACULTAD DE INGENIERIAS Asignatura Código Gramática y Lenguajes Formales IS405 Créditos 4 Intensidad semanal Requisitos 6 Horas IS323 Justificación Objetivo general Dar al estudiante toda una gran base teórica sobre Ciencias

Más detalles

Examen. Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia de la Computación. Segundo Semestre, 2003.

Examen. Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia de la Computación. Segundo Semestre, 2003. Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia de la Computación Examen IIC 2222 Teoría de Autómatas y Lenguajes Formales Segundo Semestre, 2003 Este examen tiene

Más detalles

NOMBRE DEL CURSO: Laboratorio de Lenguajes Formales y de Programación

NOMBRE DEL CURSO: Laboratorio de Lenguajes Formales y de Programación UNIVERSIDAD DE SAN CARLOS DE GUATEMALA FACULTAD DE INGENIERIA ESCUELA DE CIENCIAS Y SISTEMAS NOMBRE DEL CURSO: Laboratorio de Lenguajes Formales y de Programación CODIGO: 796 CREDITOS: 3 ESCUELA: Ciencias

Más detalles

Controla el flujo de tokens reconocidos por parte del analizador léxico. 4.2 Introduccion a las gramaticas libres de contexto y arboles de derivacion

Controla el flujo de tokens reconocidos por parte del analizador léxico. 4.2 Introduccion a las gramaticas libres de contexto y arboles de derivacion UNIDAD IV Analisis Sintactico 4.1 Introduccion Sintaxis significa estructura del orden de las palabras en una frase. La tarea del analisis sintactico es revisar si los símbolos aparecen en el orden correcto

Más detalles

1. Cadenas EJERCICIO 1

1. Cadenas EJERCICIO 1 LENGUAJES FORMALES Y AUTÓMATAS CURSO 2006/2007 - BOLETÍN DE EJERCICIOS Víctor J. Díaz Madrigal y José Miguel Cañete Departamento de Lenguajes y Sistemas Informáticos 1. Cadenas La operación reversa aplicada

Más detalles

MÁQUINAS DE TURING CIENCIAS DE LA COMPUTACION I 2009

MÁQUINAS DE TURING CIENCIAS DE LA COMPUTACION I 2009 MÁQUINAS DE TURING Las máquinas de Turing, así como los AF y los AP se utilizan para aceptar cadenas de un lenguaje definidas sobre un alfabeto A. El modelo básico de máquina de Turing, tiene un mecanismo

Más detalles

Introducción. Las gramáticas definen las reglas que definen a los lenguajes Las reglas pueden tener una diversa variedad de esquemas

Introducción. Las gramáticas definen las reglas que definen a los lenguajes Las reglas pueden tener una diversa variedad de esquemas Gramáticas Introducción Las gramáticas definen las reglas que definen a los lenguajes Las reglas pueden tener una diversa variedad de esquemas En algunos lenguajes, una sucesión de símbolos depende del

Más detalles

Tema: Análisis Semántico

Tema: Análisis Semántico Compiladores. Guía 7 1 Facultad: Ingeniería Escuela: Computación Asignatura: Compiladores Tema: Análisis Semántico Contenido En esta guía se desarrollará una tabla de símbolos y se asociará al analizador

Más detalles

División Académica de Informática y Sistemas

División Académica de Informática y Sistemas Área de formación Sustantiva Profesional Nombre de la asignatura Docencia frente a grupo según SATCA Trabajo de Campo Supervisado según SATCA HCS HPS TH C HTCS TH C TC 2 2 4 4 0 0 0 4 Clave de la asignatura

Más detalles

Tema: Autómatas de Estado Finitos

Tema: Autómatas de Estado Finitos Compiladores. Guía 2 1 Facultad: Ingeniería Escuela: Computación Asignatura: Compiladores Tema: Autómatas de Estado Finitos Contenido En esta guía se aborda la aplicación de los autómatas en el campo de

Más detalles

Unidad 4. Autómatas de Pila

Unidad 4. Autómatas de Pila Unidad 4. Autómatas de Pila Una de las limitaciones de los AF es que no pueden reconocer el lenguaje {0 n 1 n } debido a que no se puede registrar para todo n con un número finito de estados. Otro lenguaje

Más detalles

ESCUELA: UNIVERSIDAD DEL ISTMO

ESCUELA: UNIVERSIDAD DEL ISTMO 1.-IDENTIFICACIÓN ESCUELA: UNIVERSIDAD DEL ISTMO CLAVE: 3041 GRADO: ING. EN COMPUTACIÓN, CUARTO SEMESTRE TIPO DE TEÓRICA/PRÁCTICA ANTECEDENTE CURRICULAR: 3033.- OBJETIVO GENERAL Proporcionar al alumno

Más detalles

SÍLABO DEL CURSO DE COMPILADORES Y LENGUAJES DE PROGRAMACIÓN

SÍLABO DEL CURSO DE COMPILADORES Y LENGUAJES DE PROGRAMACIÓN SÍLABO DEL CURSO DE COMPILADORES Y LENGUAJES DE PROGRAMACIÓN I. INFORMACIÓN GENERAL 1.1 Facultad Ingeniería 1.2 Carrera Profesional Ingeniería en Sistemas Computacionales 1.3 Departamento 1.4 Requisito

Más detalles

Tema 3: Gramáticas regulares. Teoría de autómatas y lenguajes formales I

Tema 3: Gramáticas regulares. Teoría de autómatas y lenguajes formales I Tema 3: Gramáticas regulares Teoría de autómatas y lenguajes formales I Bibliografía Hopcroft, J. E., Motwani, R., y Ullman, J. D. Introducción a la Teoría de Autómatas, Lenguajes y Computación. Addison

Más detalles

Etapas en la solución de un problema

Etapas en la solución de un problema Algoritmo Conjunto de pasos, procedimientos o acciones que nos permiten alcanzar un resultado o resolver un problema. Etapas en la solución de un problema Problema Análisis profundo del problema Construcción

Más detalles

TIPOS DE GRAMATICAS JERARQUIAS DE CHOMSKY

TIPOS DE GRAMATICAS JERARQUIAS DE CHOMSKY TIPOS DE GRAMATICAS JERARQUIAS DE CHOMSKY Para el estudio de este tema es necesario analizar dos tipos de gramáticas de la clasificación de Chomsky, las regulares y las independientes de contexto, las

Más detalles

NOMBRE DEL CURSO: Laboratorio de Lenguajes Formales y de Programación

NOMBRE DEL CURSO: Laboratorio de Lenguajes Formales y de Programación UNIVERSIDAD DE SAN CARLOS DE GUATEMALA FACULTAD DE INGENIERIA ESCUELA DE CIENCIAS Y SISTEMAS NOMBRE DEL CURSO: Laboratorio de Lenguajes Formales y de Programación CODIGO: 796 CREDITOS: 3 ESCUELA: Ciencias

Más detalles

DEL AUTÓMATA FINITO A LA EXPRESIÓN REGULAR

DEL AUTÓMATA FINITO A LA EXPRESIÓN REGULAR DEL AUTÓMATA FINITO A LA EXPRESIÓN REGULAR Muchas veces es más fácil y seguro dibujar el DT de un AF que reconozca al lenguaje, para luego obtener la ER a partir de este autómata. Se presenta un método

Más detalles

GLOSARIO 1. Qué es bit y byte? Bit: Es la unidad mínima de información. Puede ser 0 o 1. Byte: Es el conjunto de 8 bits. Ejemplo:

GLOSARIO 1. Qué es bit y byte? Bit: Es la unidad mínima de información. Puede ser 0 o 1. Byte: Es el conjunto de 8 bits. Ejemplo: Cuestionario Modulo 1.1 GLOSARIO 1. Qué es bit y byte? Bit: Es la unidad mínima de información. Puede ser 0 o 1. Byte: Es el conjunto de 8 bits. Ejemplo: 1001 0110. 2. qué es Dato? Definición: Es toda

Más detalles

ESPECIFICACIÓN DE SÍMBOLOS

ESPECIFICACIÓN DE SÍMBOLOS 1 UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA DEPARTAMENTO DE COMPUTACIÓN ESPECIFICACIÓN DE SÍMBOLOS Elaborado el Sábado 24 de Julio de 2004 I.- COMPONENTES LÉXICOS, PATRONES Y LEXEMAS (extraído de

Más detalles

Compiladores e intérpretes Introducción

Compiladores e intérpretes Introducción Introducción Profesor: Eridan Otto Introducción Perspectiva histórica Motivación Definiciones Componentes y fases de un compilador 1 Introducción Definiciónes básicas Traductor: desde un punto de vista

Más detalles

Lenguajes y Compiladores Aspectos Formales (Parte 1) Compiladores

Lenguajes y Compiladores Aspectos Formales (Parte 1) Compiladores Facultad de Ingeniería de Sistemas Lenguajes y Aspectos Formales (Parte 1) 1 Aspectos Formales Los compiladores traducen lenguajes que están formalmente definidos a través de reglas que permiten escribir

Más detalles

Tema: Autómata de Pila

Tema: Autómata de Pila Facultad: Ingeniería Escuela: Computación Asignatura: Compiladores 1 Tema: Autómata de Pila Contenido La presente guía aborda los autómatas de pila, y se enfoca en la aplicación que se le puede dar a estas

Más detalles

Funcionamiento del A.L.

Funcionamiento del A.L. ANALIZADOR LEXICO 1 Funcionamiento del A.L. Programa fuente Analizador léxico Componente léxico Obtén el siguiente componente léxico Analizador sintáctico Tabla de símbolos 2 Maneja el fichero del programa

Más detalles

300CIG007 Computabilidad y Lenguajes Formales: Autómatas Finitos

300CIG007 Computabilidad y Lenguajes Formales: Autómatas Finitos 300CIG007 Computabilidad y Lenguajes Formales: Autómatas Finitos Pontificia Universidad Javeriana Cali Ingeniería de Sistemas y Computación Prof. Gloria Inés Alvarez V. Qué es un computador? Todos lo sabemos!!!

Más detalles

Algoritmo para la obtención de los estados accesibles

Algoritmo para la obtención de los estados accesibles UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DEPARTAMENTO DE INFORMÁTICA Y ANÁLISIS NUMÉRICO INGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS SEGUNDO CURSO, SEGUNDO CUATRIMESTRE TEORÍA DE AUTÓMATAS

Más detalles

UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DEPARTAMENTO DE INFORMÁTICA Y ANÁLISIS NUMÉRICO INGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS

UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DEPARTAMENTO DE INFORMÁTICA Y ANÁLISIS NUMÉRICO INGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DEPARTAMENTO DE INFORMÁTICA Y ANÁLISIS NUMÉRICO INGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS SEGUNDO CURSO, SEGUNDO CUATRIMESTRE TEORÍA DE AUTÓMATAS

Más detalles

Introducción a la lingüística computacional

Introducción a la lingüística computacional Introducción a la lingüística computacional César Antonio Aguilar Facultad de Lenguas y Letras 17/08/2017 Cesar.Aguilar72@gmail.com Síntesis de la clase pasada (1) En la clase anterior nos dedicamos a

Más detalles

Compiladores. Análisis Sintáctico Ascendente. Adrian Ulises Mercado Martínez. Facultad de Ingeniería, UNAM. 5 de septiembre de 2013

Compiladores. Análisis Sintáctico Ascendente. Adrian Ulises Mercado Martínez. Facultad de Ingeniería, UNAM. 5 de septiembre de 2013 Compiladores Análisis Sintáctico Ascendente Adrian Ulises Mercado Martínez Facultad de Ingeniería, UNAM 5 de septiembre de 2013 Adrian Ulises Mercado Martínez (FI,UNAM) Compiladores 5/07/2013 1 / 34 Índice

Más detalles

Sintaxis y Semántica del Lenguaje

Sintaxis y Semántica del Lenguaje Gramáticas y Autómatas Wilo Carpio Cáceres 110813 1 Sintaxis y Semántica del Lenguaje Wilo Carpio Cáceres 2013 Gramáticas y Autómatas Wilo Carpio Cáceres 110813 2 INTRODUCCION A LOS COMPILADORES Wilo Carpio

Más detalles

Texto: Hopcroft, J. E., Motwani, R., Ullman, J.D., Introduction to Automata Theory, Languajes, and Computation. 3rd Edition. Addison Wesley, 2007.

Texto: Hopcroft, J. E., Motwani, R., Ullman, J.D., Introduction to Automata Theory, Languajes, and Computation. 3rd Edition. Addison Wesley, 2007. Universidad de Puerto Rico Recinto de Mayagüez Facultad de Artes y Ciencias DEPARTAMENTO DE CIENCIAS MATEMÁTICAS Programa de Autómata y Lenguajes Formales Curso: Autómata y Lenguajes Formales Codificación:

Más detalles

Nuestro objetivo es demostrar que autómata = lógica Qué significa esto? Queremos encontrar una lógica que defina a los lenguajes regulares

Nuestro objetivo es demostrar que autómata = lógica Qué significa esto? Queremos encontrar una lógica que defina a los lenguajes regulares Autómata = Lógica Nuestro objetivo es demostrar que autómata = lógica Qué significa esto? Queremos encontrar una lógica que defina a los lenguajes regulares Pero antes: Vamos a hacer un breve repaso sobre

Más detalles

MODELOS DE COMPUTACION I Preguntas Tipo Test. 1. El lema de bombeo puede usarse para demostrar que un lenguaje determinado es regular.

MODELOS DE COMPUTACION I Preguntas Tipo Test. 1. El lema de bombeo puede usarse para demostrar que un lenguaje determinado es regular. MODELOS DE COMPUTACION I Preguntas Tipo Test Indicar si son verdaderas o falsas las siguientes afirmaciones: 1. El lema de bombeo puede usarse para demostrar que un lenguaje determinado es regular. 2.

Más detalles

Toda copia en PAPEL es un "Documento No Controlado" a excepción del original.

Toda copia en PAPEL es un Documento No Controlado a excepción del original. S U P E RIO R DE MISANTLA Apartado: 7.1 Copia No. Código:PD-SCD-1016 Versión No.: 02 Hoja : 2 de 12 4.- COMPETENCIAS A DESARROLLAR 4.1 Competencias Específicas: Diseña mediante el uso de reglas semánticas

Más detalles

Tema 4: Gramáticas independientes del contexto. Teoría de autómatas y lenguajes formales I

Tema 4: Gramáticas independientes del contexto. Teoría de autómatas y lenguajes formales I Tema 4: Gramáticas independientes del contexto Teoría de autómatas y lenguajes formales I Bibliografía Hopcroft, J. E., Motwani, R., y Ullman, J. D. Introducción a la Teoría de Autómatas, Lenguajes y Computación.

Más detalles

UNIVERSIDAD NACIONAL DE EDUCACIÓN A DISTANCIA Escuela Técnica Superior de Ingeniería Informática Procesadores de Lenguajes. Tema 3.

UNIVERSIDAD NACIONAL DE EDUCACIÓN A DISTANCIA Escuela Técnica Superior de Ingeniería Informática Procesadores de Lenguajes. Tema 3. UNIVRSIDAD NACIONAL D DUCACIÓN A DISTANCIA scuela Técnica Superior de Ingeniería Informática Procesadores de Lenguajes Tema 3 Parte I Análisis Sintáctico Javier Vélez Reyes jvelez@lsi.uned.es Objetivos

Más detalles

Unidad I Introducción a la programación de Sistemas. M.C. Juan Carlos Olivares Rojas

Unidad I Introducción a la programación de Sistemas. M.C. Juan Carlos Olivares Rojas Unidad I Introducción a la programación de Sistemas M.C. Juan Carlos Olivares Rojas Agenda 1.1 Qué es y que estudia la programación de sistemas? 1.2 Herramientas desarrolladas con la teoría de programación

Más detalles

Tema 5. Análisis semántico

Tema 5. Análisis semántico Departamento de Tecnologías de la Información Tema 5 Análisis semántico Ciencias de la Computación e Inteligencia Artificial Índice 5.1 Características del análisis semántico 5.2 Gramáticas atribuidas

Más detalles

Tema 1.4. Un lenguaje mínimo y su procesador: El lenguaje objeto y la máquina virtual

Tema 1.4. Un lenguaje mínimo y su procesador: El lenguaje objeto y la máquina virtual Tema 1.4. Un lenguaje mínimo y su procesador: El lenguaje objeto y la máquina virtual Profesor Federico Peinado Elaboración del material José Luis Sierra Federico Peinado Ingeniería en Informática Facultad

Más detalles

Tema 2 Conceptos básicos de programación. Fundamentos de Informática

Tema 2 Conceptos básicos de programación. Fundamentos de Informática Tema 2 Conceptos básicos de programación Fundamentos de Informática Índice Metodología de la programación Programación estructurada 2 Pasos a seguir para el desarrollo de un programa (fases): Análisis

Más detalles

Las Etapas de la Compilación

Las Etapas de la Compilación Las de la Compilación El en la Compilación Universidad de Cantabria Outline 1 El Problema 2 Las y el Qué pasos son necesarios dar para hallar la estructura de un programa? En qué pasos podemos dividirlos

Más detalles

Unidad 2. Introducción Lenguajes y Compiladores

Unidad 2. Introducción Lenguajes y Compiladores Unidad 2 Introducción Lenguajes y Compiladores Principal material bibliográfico utilizado Compiladores Principios, técnicas y herramientas. Aho y Ullman. Addison Wesley. www.jorgesanchez.net www.iqcelaya.itc.mx/~vicente/programacion/tradcomp.pdf

Más detalles

Diseño de Compiladores I. Estructura General de un Compilador

Diseño de Compiladores I. Estructura General de un Compilador Diseño de Compiladores I Estructura General de un Compilador PROGRAMA FUENTE COMPILADOR SALIDA Mensajes de Error 2 Un compilador es un programa que traduce un programa escrito en lenguaje fuente y produce

Más detalles

LENGUAJES Y GRAMÁTICAS

LENGUAJES Y GRAMÁTICAS LENGUAJES Y GRAMÁTICAS Orlando Arboleda Molina Escuela de Ingeniería de Sistemas y Computación de La Universidad del Valle 20 de septiembre de 2008 Contenido Lenguajes y Gramáticas Gramáticas Gramáticas

Más detalles

Área: INFORMÁTICA. Saber- Saber: Identificar DFD como herramienta para escribir los algoritmos de forma lógica.

Área: INFORMÁTICA. Saber- Saber: Identificar DFD como herramienta para escribir los algoritmos de forma lógica. Guía No: 2 Subdirección de Educación Departamento de Educación Contratada Colegio CAFAM Bellavista CED GUIA DE APRENDIZAJE Docente: Luz del Carmen Barrera Área: INFORMÁTICA Fecha: II BIMESTRE 2014 Grado:

Más detalles

ÍNDICE UNIDAD 2: GENERACION DE CODIGO INTERMEDIO

ÍNDICE UNIDAD 2: GENERACION DE CODIGO INTERMEDIO ÍNDICE UNIDAD 2: GENERACION DE CODIGO INTERMEDIO 2. NOTACIONES 3 2.. PREFIJA.4 2..2 INFIJA....4 2.2.3 POSTFIJA.. 5 2.2 REPRESENTACIONES DE CÓDIGO INTERMEDIO....5 2.2. NOTACIÓN POLACA. 7 2.2.2 CÓDIGO P....8

Más detalles

Pontificia Universidad Católica del Ecuador

Pontificia Universidad Católica del Ecuador 1. DATOS INFORMATIVOS: MATERIA O MÓDULO: COMPILADORES E INTERPRETES CÓDIGO: 10730 CARRERA: NIVEL: SISTEMAS QUINTO No. CRÉDITOS: 4 CRÉDITOS TEORÍA: 4 CRÉDITOS PRÁCTICA: - SEMESTRE / AÑO ACADÉMICO: 2 / 2010

Más detalles

Ciencias de la Computación I

Ciencias de la Computación I Ciencias de la Computación I Autómatas Finitos No Determinísticos Minimización de Autómatas Finitos Determinísticos Agosto 2007 Autómatas Finitos Determinísticos Para cada estado y para cada símolo se

Más detalles

Introducción a la Teoría de Autómatas, Lenguajes y Computación

Introducción a la Teoría de Autómatas, Lenguajes y Computación Introducción a la Teoría de Autómatas, Lenguajes y Computación Gustavo Rodríguez Gómez y Aurelio López López INAOE Propedéutico 2010 1 / 53 Capítulo 2 Autómatas Finitos 2 / 53 1 Autómatas Finitos Autómatas

Más detalles

CAPITULO 2: LENGUAJES

CAPITULO 2: LENGUAJES CAPITULO 2: LENGUAJES 2.1. DEFINICIONES PREIAS SIMBOLO: Es una entidad indivisible, que no se va a definir. Normalmente los símbolos son letras (a,b,c,.., Z), dígitos (0, 1,.., 9) y otros caracteres (+,

Más detalles

Un. VI. Generador de código intermedio.

Un. VI. Generador de código intermedio. Un. VI. Generador de código intermedio. La administración de la memoria se da en esta etapa. Se debe considerar tanto la memoria estática como dinámica, y en esta se utilizan generalmente pilas. Los lenguajes

Más detalles

Tema 1: Introducción. Teoría de autómatas y lenguajes formales I

Tema 1: Introducción. Teoría de autómatas y lenguajes formales I Tema 1: Introducción Teoría de autómatas y lenguajes formales I Bibliografía Hopcroft, J. E., Motwani, R., y Ullman, J. D. Introducción a la Teoría de Autómatas, Lenguajes y Computación. Addison Wesley.

Más detalles

Análisis léxico. Formalización y desarrollo. Procesadores de Lenguajes. Ingeniería Técnica superior de Ingeniería Informática

Análisis léxico. Formalización y desarrollo. Procesadores de Lenguajes. Ingeniería Técnica superior de Ingeniería Informática Procesadores de Lenguajes Ingeniería Técnica superior de Ingeniería Informática Departamento de Lenguajes y Sistemas informáticos Análisis léxico Formalización y desarrollo Javier Vélez Reyes jvelez@lsi.uned.es

Más detalles

TÍTULO: MATEMÁTICA DISCRETA Y LÓGICA Disponibilidad

TÍTULO: MATEMÁTICA DISCRETA Y LÓGICA Disponibilidad TÍTULO: MATEMÁTICA DISCRETA Y LÓGICA Disponibilidad Calculo proposicional 1 Argumentos y proposiciones lógicas 1 Algunos argumentos lógicos importantes 2 Proposiciones 4 Conexiones lógicas 5 Negación (tabla)

Más detalles

Análisis semántico Tabla de símbolos, chequeo de tipos y representaciones internas

Análisis semántico Tabla de símbolos, chequeo de tipos y representaciones internas Análisis semántico Tabla de símbolos, chequeo de tipos y representaciones internas Análisis semático c 2001 José Fortes Gálvez p.1 Análisis?... semántico? La semántica corresponde al significado asociado

Más detalles

Lenguajes y Compiladores Análisis Sintáctico Parte I. Teoría Lenguajes 1

Lenguajes y Compiladores Análisis Sintáctico Parte I. Teoría Lenguajes 1 Facultad de Ingeniería de Sistemas Lenguajes y Compiladores Análisis Sintáctico Parte I 1 Introducción El analizador sintáctico recibe una secuencia de tokens y decide si la secuencia está correcta o no.

Más detalles

MATERIA: INTRODUCCIÓN A LA INFORMÁTICA

MATERIA: INTRODUCCIÓN A LA INFORMÁTICA PRUEBAS DE ACCESO PARA MAYORES DE 25 Convocatoria 2013-2014 MATERIA: INTRODUCCIÓN A LA INFORMÁTICA Notas informativas: No se admiten contestaciones a lápiz. Se descontará 0,5 puntos por cada 5 faltas de

Más detalles

John Venn Matemático y filósofo británico creador de los diagramas de Venn

John Venn Matemático y filósofo británico creador de los diagramas de Venn Georg Cantor Matemático Alemán creador de la teoría de conjuntos John Venn Matemático y filósofo británico creador de los diagramas de Venn August De Morgan Matemático ingles creador de leyes que llevan

Más detalles

Sintaxis y Semántica. Tema 3. Sintaxis y Semántica. Expresiones y Lenguajes Regulares. Dr. Luis A. Pineda ISBN:

Sintaxis y Semántica. Tema 3. Sintaxis y Semántica. Expresiones y Lenguajes Regulares. Dr. Luis A. Pineda ISBN: Tema 3 Expresiones y Lenguajes Regulares Dr Luis A Pineda ISBN: 970-32-2972-7 Sintaxis y Semántica En us uso normal, las expresiones lingüística hacen referencia a objetos individuales, así como a sus

Más detalles

TEORIA DE AUTOMATAS.

TEORIA DE AUTOMATAS. TEORIA DE AUTOMATAS. RELACION DE PROBLEMAS II.. Construir un AFND capaz de aceptar una cadena u {, }, que contenga la subcadena. Construir un AFND capaz de aceptar una cadena u {, }, que contenga la subcadena.

Más detalles

Compiladores: Análisis Sintáctico. Pontificia Universidad Javeriana Cali Ingenieria de Sistemas y Computación Prof. Gloria Inés Alvarez V.

Compiladores: Análisis Sintáctico. Pontificia Universidad Javeriana Cali Ingenieria de Sistemas y Computación Prof. Gloria Inés Alvarez V. Compiladores: Análisis Sintáctico Pontificia Universidad Javeriana Cali Ingenieria de Sistemas y Computación Prof. Gloria Inés Alvarez V. Sintaxis Define la estructura del lenguaje Ejemplo: Jerarquía en

Más detalles

INAOE. Expresiones Regulares. Operadores y Operandos. Equivalencia de Lenguajes de FA y Lenguajes RE. Leyes Algebraicas de las. Expresiones Regulares

INAOE. Expresiones Regulares. Operadores y Operandos. Equivalencia de Lenguajes de FA y Lenguajes RE. Leyes Algebraicas de las. Expresiones Regulares INAOE (INAOE) 1 / 52 Contenido 1 2 3 4 (INAOE) 2 / 52 Es un equivalente algebraico para un autómata. Utilizado en muchos lugares como un lenguaje para describir patrones en texto que son sencillos pero

Más detalles

Principios de Computadoras II

Principios de Computadoras II Departamento de Ingeniería Electrónica y Computadoras Operadores y Expresiones rcoppo@uns.edu.ar Primer programa en Java 2 Comentarios en Java Comentario tradicional (multi-línea) Comentario de línea Comentario

Más detalles

10 Análisis léxico VI Compiladores - Profr. Edgardo Adrián Franco Martínez

10 Análisis léxico VI Compiladores - Profr. Edgardo Adrián Franco Martínez 2 Contenido Clasificación de los autómatas finitos Autómata finito no determinista (AFND) Autómata finito determinista (AFD) Teorema sobre la transformación de AFND en AFD Transformación de una expresión

Más detalles

Campos Fecha de elaboración: 28 de Mayo de 2010 Fecha de última actualización:

Campos Fecha de elaboración: 28 de Mayo de 2010 Fecha de última actualización: PROGRAMA DE ESTUDIO Programa Educativo: Área de Formación : Licenciatura en Sistemas Computacionales Integral Profesional Compiladores Horas teóricas: 2 Horas prácticas: 2 Total de Horas: 4 Total de créditos:

Más detalles

PROGRAMA DE LABORATORIO SECCIÓN: ÁREA A LA QUE PERTENECE: POS-REQUISITO: AUXILIAR:

PROGRAMA DE LABORATORIO SECCIÓN: ÁREA A LA QUE PERTENECE: POS-REQUISITO: AUXILIAR: UNIVERSIDAD DE SAN CARLOS DE GUATEMALA FACULTAD DE INGENIERÍA ESCUELA DE CIENCIAS PROGRAMA DE LABORATORIO CÓDIGO: 777 CRÉDITOS: 4 NOMBRE CURSO: ESCUELA: PRE-REQUISITO: Organización de Lenguajes y Compiladores

Más detalles

GUIA EXAMEN FINAL/EXTRAORDINARIO

GUIA EXAMEN FINAL/EXTRAORDINARIO INSTITUTO SAN ANGEL DEL SUR ESCUELA NACIONAL PREPARATORIA INCORPORADA A LA UNAM CLAVE 1261 CICLO 2012-2013 Nombre del profesor: Ing. Jorge Padilla Gutiérrez Asignatura: INFORMATICA V GUIA EXAMEN FINAL/EXTRAORDINARIO

Más detalles

Introducción a la Programación

Introducción a la Programación Introducción a la Programación Fundamentos de Programación Ingeniería Informática en Sistemas de Información Alicia Troncoso 1 Contenido l Introducción l Mi primer programa l Etapas a seguir en la programación

Más detalles

Analizador Sintáctico RECURSIVO

Analizador Sintáctico RECURSIVO Compiladores 1 Argueta Cortes Jairo I. Universidad Nacional Autónoma de México Facultad de Ingeniería Compiladores Grupo 1 Analizador Sintáctico RECURSIVO ALUMNOS: ARGUETA CORTES JAIRO I. MENDOZA GAYTAN

Más detalles

Contenido. Capítulo I Sistemas numéricos 2. Capítulo II Métodos de conteo 40

Contenido. Capítulo I Sistemas numéricos 2. Capítulo II Métodos de conteo 40 CONTENIDO v Contenido Contenido de la página Web de apoyo... xi Página Web de apoyo... xvii Prefacio... xix Capítulo I Sistemas numéricos 2 1.1 Introducción... 4 1.2 Sistema decimal... 5 1.3 Sistemas binario,

Más detalles

Programación I Otoño 2017 FCFM - BUAP

Programación I Otoño 2017 FCFM - BUAP 1. Introducción a la programación Programación I Otoño 2017 FCFM - BUAP Contenido a) Computadora: definición, organización física y funcional b) Representación de la información en las computadoras: elementos

Más detalles

NOMBRE DEL CURSO: Organización de Lenguajes y Compiladores 2 CÓDIGO: 781 CRÉDITOS: 5 ÁREA A LA QUE PERTENECE:

NOMBRE DEL CURSO: Organización de Lenguajes y Compiladores 2 CÓDIGO: 781 CRÉDITOS: 5 ÁREA A LA QUE PERTENECE: UNIVERSIDAD DE SAN CARLOS DE GUATEMALA FACULTAD DE INGENIERÍA ESCUELA DE INGENIERÍA EN CIENCIAS Y SISTEMAS NOMBRE DEL CURSO: Organización de Lenguajes y Compiladores 2 CÓDIGO: 781 CRÉDITOS: 5 ESCUELA:

Más detalles

Programa de la asignatura Curso: 2008 / 2009 AUTÓMATAS Y LENGUAJES FORMALES (1314)

Programa de la asignatura Curso: 2008 / 2009 AUTÓMATAS Y LENGUAJES FORMALES (1314) Programa de la asignatura Curso: 2008 / 2009 AUTÓMATAS Y LENGUAJES FORMALES (1314) PROFESORADO Profesor/es: CÉSAR IGNACIO GARCÍA OSORIO - correo-e: cgosorio@ubu.es FICHA TÉCNICA Titulación: INGENIERÍA

Más detalles

INTRODUCCIÓN A COMPILADORES Y LENGUAJES FORMALES LENGUAJES FORMALES

INTRODUCCIÓN A COMPILADORES Y LENGUAJES FORMALES LENGUAJES FORMALES Todos los derechos de propiedad intelectual de esta obra pertenecen en exclusiva a la Universidad Europea de Madrid, S.L.U. Queda terminantemente prohibida la reproducción, puesta a disposición del público

Más detalles