Computación
1 Lenguajes, gramáticas y procesadores 1-33
1.1 Gödel y Turing 1
1.2 Autómatas. 2
1.3 Lenguajes y gramáticas 3
1.4 Máquinas abstractas y lenguajes formales 3-5
1.5 Alfabetos, símbolos y palabras 5
1.6 Operaciones con palabras 5-7
1.7 Lenguajes 7-11
1.8 Ejercicios 11
1.9 Conceptos básicos sobre gramáticas 11-15
1.10 Tipos de gramáticas 15-19
1.11 Árboles de derivación 19-23
1.12 Gramáticas limpias y bien formadas 23-25
1.13 Lenguajes naturales y artificiales 25-30
1.14 Resumen 30
1.15 Bibliografía 31
2 Tabla de símbolos 33-64
2.1 Complejidad temporal de los algoritmos de búsqueda 33-38
2.2 El tipo de datos diccionario 38-44
2.3 Implementación del tipo de dato diccionario con tablas hash 44-55
2.4 Tabla de símbolos para lenguajes con estructuras de bloques 55-62
2.5 Información adicional sobre los identificadores en las tablas de símbolos 65-70
2.6 Resumen 62
2.7 Ejercicios y otro material práctico 62
2.8 Bibliografía 63-64
3 Análisis morfológico 65-88
3.1 Introducción 65-67
3.2 Expresiones regulares 67-68
3.3 Autómata finito no determinista (AFND) para una expresión regular 68-71
3.4 Autómata finito determinista (AFD) equivalente a un AFND 71-73
3.5 Autómata finito mínimo equivalente a uno dado 73-75
3.6 Implementación de autómatas finitos deterministas 75-76
3.7 Otras tareas del analizador morfológico 76-77
3.8 Errores morfológicos 77-78
3.9 Generación automática de analizadores morfológicos: la herramienta lex 78-85
3.10 Resumen 85-86
3.11 Ejercicios 86-87
3.12 Bibliografía 87-88
4 Análisis sintáctico 89-190
4.1 Conjuntos importantes en una gramática 90-93
4.2 Análisis sintáctico descendente 93-114
4.3 Análisis sintáctico ascendente 114-168
4.4 Gramáticas de precedencia simple 170-183
4.5 Resumen 183
4.6 Ejercicios 183-190
5 Análisis semántico 191-242
5.1 Introducción al análisis semántico 191-199
5.2 Gramática de atributos 199-217
5.3 Incorporación del analizador semántico al sintáctico 217-228
5.4 Gramáticas de atributos para el análisis semántico de los lenguajes de programación 228-233
5.5 Algunas herramientas para la generación de analizadores semánticos 233-240
5.6 Resumen. 240
5.7 Bibliografía 241
5.8 Ejercicios 241-242
6 Generación de código 243-285
6.1 Generación directa de código ensamblador en un solo paso 243-258
6.2 Código intermedio 258-282
6.3 Resumen 282
6.4 Ejercicios 282-284
7 Optimización de código 285-316
7.1 Tipos de optimizaciones 286
7.2 Instrucciones especiales 286-287
7.3 Reordenación de código 287-288
7.4 Ejecución en tiempo de compilación 288-292
7.5 Eliminación de redundancias 292-299
7.6 Reordenación de operaciones 300-304
7.7 Optimización de bucles 304-309
7.8 Optimización de regiones 309-313
7.9 Identificación y eliminación de asignaciones muertas 313-314
7.10 Resumen 314-315
7.11 Ejercicios 315-316
8 Intérpretes 317-326
8.1 Lenguajes interpretativos 318-319
8.2 Comparación entre compiladores e intérpretes 319-322
8.3 Aplicaciones de los intérpretes 322
8.4 Estructura de un intérprete 322-326
8.5 Resumen 326
8.6 Bibliografía 326
9 Tratamiento de errores 327-336
9.1 Detección de todos los errores verdaderos 327-329
9.2 Detección incorrecta de errores falsos 329-330
9.3 Generación de errores innecesarios 330-331
9.4 Corrección automática de errores 331-333
9.5 Recuperación de errores en un intérprete 333-334
9.6 Resumen 334-336
10 Gestión de la memoria 337-354
10.1 Gestión de la memoria en un compilador 337-347
10.2 Gestión de la memoria en un intérprete 347-353
10.3 Resumen 353-354
Índice analítico 355-361
Título completamente adaptado al programa de la asignatura: Procesadores de Lenguaje o también conocida como compiladores.
© 2001-2024 Fundación Dialnet · Todos los derechos reservados