Teoría, Diseño e Implementación de Compiladores de Lenguajes

El presente libro aborda la teoría, el diseño y la implementación de las fases por las que un código fuente pasa en el proceso de compilación, intentando dar un enfoque práctico, esto es, acercándolo a la construcción de un lenguaje de programación real. Se presenta cómo es el desarrollo y funcionamiento de un compilador, empezando por la definición del lenguaje, pasando por los posibles diseños de todas y cada una de las fases de las que se compone (análisis léxico, sintáctico y semántico), hasta proponer una implementación de cada una de ellas.
La estructura que sigue este libro consiste en presentar, por cada una de estas fases de la compilación, primero, los conceptos teóricos de la misma y, después, su diseño e implementación, haciendo uso de las distintas alternativas que se presentan.
Para lograr una mejor comprensión por parte del lector, se facilitará el código fuente y sus correspondientes archivos ejecutables de dos versiones de analizadores sintácticos diferentes y una tercera implementación con la fase semántica, a partir de uno de los analizadores sintácticos anteriores.

Escritor
Colección
Profesional
Materia
Programación informática/desarrollo de softwar
Idioma
  • Castellano
EAN
9788499644868
ISBN
978-84-9964-486-8
Páginas
337
Edición
1
Fecha publicación
01-01-2016
eBook
12,34 €
Descuento 5%12,99 €

248,66 MX$12,34 US$Comprar en E-BOOK Grupo RA-MA
También disponible en

Índice de contenido

Introducción
Capítulo 1. Definición del lenguaje: Planteamiento teórico
1.1 Ventajas del uso de gramáticas libres de contexto
1.2 Definición del vocabulario básico para la definición de Lenguajes
1.3 Especificación sintáctica de los lenguajes de programación: Gramáticas libres de contexto
Capítulo 2. Definición del lenguaje: Diseño
2.1 Diseño del lenguaje de programación
2.2 Producciones del analizador léxico
2.3 PRODUCCIONES DEL ANALIZADOR SINTÁCTICO
Capítulo 3. analizador léxico: Planteamiento teórico
3.1 Responsabilidad del analizador léxico como fase de un compilador
3.2 ¿Por qué separar el análisis léxico del análisis sintáctico?
3.3 Tratamiento de los errores léxicos
3.4 Definición del vocabulario básico para un analizador léxico
3.5 Especificación de un analizador léxico
3.5.1 Reconocimiento de los componentes léxicos
3.5.2 Implementación del DT
Capítulo 4. análisis léxico: Diseño e implementación
4.1 Diseño del analizador léxico
4.2 Estudio de la implementaci ón del analizador léxico
4.2.1 Implementación del DT: Estado inicial
4.2.2 Implementación del DT: Estados finales
4.2.3 Implementación del DT: Algunos tokens interesantes
Capítulo 5. analizador sintáctico: Planteamiento teórico
5.1 Responsabilidades del analizador sintáctico como fase de un compilador
5.2 Tratamiento de errores sintácticos
5.2.1 ¿Qué información debe ofrecer un manejador de errores ante un error?
5.2.2 Estrategias de recuperación de errores en analizadores sintácticos
5.3 Definición del vocabulario básico para un analizador sintáctico
5.4 Clasificación de los métodos de análisis sintáctico
5.5 Métodos de análisis descendente
5.5.1 Analizador sintáctico por descenso recursivo
5.5.2 Analizador sintáctico predictivo (por descenso recursivo sin retroceso)
5.5.3 Analizador sintáctico predictivo y no recursivo
5.5.4 Recuperación de errores en análisis sintácticos predictivos
5.6 Métodos de análisis ascendente
5.6.1 Ventajas
5.6.2 Inconvenientes
5.6.3 Método por desplazamiento y reducción
5.6.4 Analizadores sintácticos LR
5.6.5 Recuperación de errores en analizadores sintácticos LR
Capítulo 6. análisis sintáctico: Diseño e implementación
6.1 Primeros pasos comunes
6.2 Estudio del diseño y la implementaci ón DEL ANALIZADOR SINTÁCTICO PREDICTIVO Y NO RECURSIVO
6.2.1 Diseño del analizador sintáctico predictivo y no recursivo
6.2.2 Estudio de la implementación del analizador sintáctico predictivo y no recursivo
6.3 Estudio del diseño y la implementaci ón del analizador sintáctico SLR
6.3.1 Diseño del analizador sintáctico SLR
6.3.2 Estudio de la implementación del analizador sintáctico SLR
6.4 Tratamiento de los errores sintácticos
6.4.1 Método que gestiona los errores sintácticos
6.4.2 Tratamiento de errores si la cima de la pila es un terminal
6.4.3 Tratamiento de errores si la cima es un no terminal
Capítulo 7. analizador semántico: Planteamiento teórico
7.1 Responsabilidades del analizador semántico como fase de un compilador
7.2 Definición del vocabulario básico para un analizador semántico
7.2.1 Definiciones dirigidas por sintaxis y esquemas de traducción
7.3 Clasificación de los métodos de análisis semántico
7.3.1 Métodos de análisis descendente
7.3.2 Métodos de análisis ascendente
Capítulo 8. análisis semántico: Diseño e implementación
8.1 Definición dirigida por sinta xis de las reglas semánticas
8.1.1 Asignación de tipos a las variables declaradas
8.1.2 Comprobación de que los elementos que se comparan en la condición de un if y un while sean del mismo tipo
8.1.3 Comprobación de tipos en asignaciones
8.2 Diseño del analizador sintáctico SLR
8.2.1 Primeros y Siguientes
8.2.2 GLC numerada
8.2.3 Conjunto canónico de elementos LR(0)
8.2.4 Construcción de la tabla de análisis sintáctico SLR
8.2.5 Desarrollo de un ejemplo para comprobar el funcionamiento del analizador a nivel sintáctico y semántico.
8.3 Estudio de la implementaci ón del analizador semántico
8.3.1 Estructuras de datos utilizadas
8.3.2 Implementación de la estructura de datos con las reglas semánticas
8.3.3 Proceso de análisis semántico
Anexo A: Manual de uso del compilador
A.1 La ventana principal
A.2 La compilación
A.3 Ejemplos de los errores que el compilador realizado "sabe" detectar
A.3.1 Ejemplos de errores léxicos
A.3.2 Ejemplos de errores sintácticos
A.3.3 Ejemplos de errores semánticos
BIBLIOGRAFÍA
Material adicional
ÍNDICE ALFA BÉTICO

Libros relacionados