Saltar al contenido principal
Teoría, Diseño e Implementación de Compiladores de Lenguajes

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

Aa.vv. / Ramallo Martinez, Alejandro / Martín Martínez, Francisco Javier

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 lo...

Editorial:
Ra-Ma
Año de edición:
2014
Materia:
Programación
ISBN:
978-84-9964-510-0
Páginas:
336
Encuadernación:
Rústica
Colección:
Informática
24,90 €
IVA incluido
Añadir a favoritos

Sinopsis

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.

Índice

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

Artículos relacionados

Comprender los Algoritmos

Comprender los Algoritmos

Y. Bhargava, Aditya

Los algoritmos que utilizas con más frecuencia ya han sido descubiertos, probados y comprobados. La segunda actualización de Comprender los algoritmos hace que sea muy fácil aprenderlos, comprenderlos y usarlos. Con explicaciones maravillosamente sencillas, más de 400 ilustraciones divertidas y docenas de ejemplos relevantes, aprenderás a desbloquear el poder de los algoritmos ...

✅ Disponible

36,95 €

Micropython en Proyectos. Una Introducción Práctica a la Programación de Microco

Micropython en Proyectos. Una Introducción Práctica a la Programación de Microco

Padin Romero, Beatriz / Dapena Janeiro, Ad / Padín Romero, Beatriz / Dapena Janeiro, Adriana

Desarrolle proyectos en MicroPython paso a paso Vivimos rodeados de microcontroladores. Estos pequeños ordenadores, programados para realizar tareas concretas, son la pieza central de muchos de los dispositivos electrónicos con los que interactuamos a diario: electrodomésticos, automóviles, sistemas de monitorización y control? Sin embargo, a pesar de su ubicuidad, su funciona...

✅ Disponible

22,80 €

Python Black Hat. Programación para Hackers y Pentesters

Python Black Hat. Programación para Hackers y Pentesters

Arnold, Tim / Seitz, Justin

Cuando se trata de crear herramientas de hackeo potentes y eficaces, Python es el lenguaje elegido por la mayoría de los analistas de seguridad. En este libro explorarás el lado más oscuro de las capacidades de Python: todo, desde escribir sniffers de red, robar credenciales de correo electrónico y acceder a directorios y carpetas por la fuerza hasta crear fuzzers de mutación, ...

✅ Disponible

32,95 €

Guía de Programación en C/C++

Guía de Programación en C/C++

Lopez, Eliezer

Medio siglo después, C y C++ son los lenguajes más eficientes de la historia y el fundamento de gran parte de la tecnología que utilizamos a diario. Creados por y para programadores, se siguen enseñando en miles de centros educativos y ofrecen multitud de ventajas a empresas relevantes en multitud de sectores.C y C++ están presentes en una amplia variedad de sectores gracias a ...

✅ Disponible

29,95 €

Curso Práctico con Unity 3D

Curso Práctico con Unity 3D

Cantón Nadales, David

El primer libro en español que guía el desarrollo de videojuegos con Unity, desde los fundamentos hasta la creación de builds ejecutables.Dirigido a principiantes y desarrolladores con experiencia, este libro te acompaña paso a paso, desde el uso del Unity Editor hasta la creación de videojuegos completos y optimizados. Aprenderás a manipular GameObjects, programar en C# y Visu...

✅ Disponible

29,95 €

Curso de Programacion con Rust

Curso de Programacion con Rust

Lopez, Eliezer

El lenguaje de programación Rust ha ganado popularidad en los últimos años debido a su enfoque en la seguridad y el rendimiento, y se ha convertido en una excelente opción para el desarrollo de aplicaciones críticas y sistemas de alto rendimiento. Con una comunidad en constante crecimiento y el respaldo de importantes empresas, Rust constituye una herramienta poderosa para desa...

✅ Disponible

30,95 €

Otros libros del autor

Mi Diario Secreto de Vacaciones

Mi Diario Secreto de Vacaciones

Aa.vv.

Un alegato lúcido, emotivo y esperanzador en defensa del mundo rural como alternativa real ante un modelo económico y social que nos empuja hacia el colapso. Vanesa Freixa, activista y habitante del Pirineo catalán, desmonta los clichés que oponen campo y ciudad, y defiende el ruralismo como una opción vital, ética y profundamente pol¡tica. Su experiencia personal âÇ"vivir con ...

✅ Disponible

11,95 €

Portugal 9

Portugal 9

Aa.vv.

Playas salvajes, pueblos detenidos en el tiempo y ciudades que vibran con arte urbano: Portugal es un país pequeño, pero lleno de contrastes. Puedes caminar entre viñedos centenarios en el Douro, escuchar fados en Lisboa o recorrer senderos entre encinas y olivares en el Alentejo. Desde la cocina casera hasta la artesanía contemporánea, las tradiciones siguen vivas en cada cele...

✅ Disponible

27,90 €

Mi Colgante de la Suerte

Mi Colgante de la Suerte

Aa.vv.

Un alegato lúcido, emotivo y esperanzador en defensa del mundo rural como alternativa real ante un modelo económico y social que nos empuja hacia el colapso. Vanesa Freixa, activista y habitante del Pirineo catalán, desmonta los clichés que oponen campo y ciudad, y defiende el ruralismo como una opción vital, ética y profundamente pol¡tica. Su experiencia personal âÇ"vivir con ...

✅ Disponible

9,95 €

Mi Juego de Grisette

Mi Juego de Grisette

Aa.vv.

Un alegato lúcido, emotivo y esperanzador en defensa del mundo rural como alternativa real ante un modelo económico y social que nos empuja hacia el colapso. Vanesa Freixa, activista y habitante del Pirineo catalán, desmonta los clichés que oponen campo y ciudad, y defiende el ruralismo como una opción vital, ética y profundamente pol¡tica. Su experiencia personal âÇ"vivir con ...

✅ Disponible

11,50 €

Pizza

Pizza

Aa.vv.

Descubra los secretos de la pizza, desde las recetas tradicionales de Nápoles y la vieja Italia hasta las más modernas variantes provenientes de todo el mundo. ...

✅ Disponible

5,95 €

Pasta

Pasta

Aa.vv.

Descubra todos los secretos de la pasta, desde las recetas tradicionales de la cocina italiana hasta las más vanguardistas. ...

✅ Disponible

5,95 €