Compiladores: Principios, técnicas y herramientas, 2da Edición, Alfred V. Aho, Monica S. Lam, Ravi Sethi y Jeffrey D. Ullman

Los lenguajes de programación son notaciones que describen los cálculos a las personas y las máquinas. Nuestra percepción del mundo en que vivimos depende de los lenguajes de programación, y a que todo el software que se ejecuta en todas las computadoras se escribió en algún lenguaje de programación. Pero antes de poder ejecutar un programa, primero debe traducirse a un formato en el que una computadora pueda ejecutarlo.

Los sistemas de software que se encargan de esta traducción se llaman compiladores.

Este libro trata acerca de cómo diseñar e implementar compiladores.

Aquí descubriremos que podemos utilizar unas cuantas ideas básicas para construir traductores para una amplia variedad de lenguajes y máquinas. Además de los compiladores, los principios y las técnicas para su diseño se pueden aplicar a tantos dominios distintos aparte, que es probable que un científico computacional las reutilice muchas veces en el transcurso de su carrera profesional.

El estudio de la escritura de los compiladores se relaciona con los lenguajes de programación, la arquitectura de las máquinas, la teoría de lenguajes, los algoritmos y la ingeniería de software.

En este capítulo preliminar presentaremos las distintas formas de los traductores de lenguaje, proporcionaremos una descripción general de alto nivel sobre la estructura de un compilador ordinario, y hablaremos sobre las tendencias en los lenguajes de programación y la arquitectura de máquinas que dan forma a los compiladores. Incluiremos algunas observaciones sobre la relación entre el diseño de los compiladores y la teoría de las ciencias computacionales, y un esquema de las aplicaciones de tecnología sobre los compiladores que van más allá de la compilación.

Terminaremos con una breve descripción de los conceptos clave de los lenguajes de programación que necesitaremos para nuestro estudio de los compiladores.

Contenido:

Prefacio.
1. Introducción.
2. Un traductor simple orientado a la sintaxis
3. Análisis léxico.
4. Análisis sintáctico.
5. Traducción orientada por la sintaxis.
6. Generación de código intermedio.
7. Entornos en tiempo de ejecución.
8. Generación de código.
9. Optimizaciones independientes de la máquina.
10. Paralelismo a nivel de instrucción.
11. Optimización para el paralelismo y la localidad.
12. Análisis interprocedural.

A. Un front-end completo.
A .l El lenguaje de código fuente.
A .2 Main.
A .3 Analizador léxico.
A .4 Tablas de símbolos y tipos.
A .5 Código intermedio para las expresiones.
A .6 Código de salto para las expresiones booleanas.
A .7 Código intermedio para las instrucciones.
A .8 Analizador sintáctico.
A .9 Creación del front-end.
B Búsqueda de soluciones linealmente independientes.
Índice

Formato:  pdf Comprimido:  zip Peso:  111.90 MB Lenguaje:  Español

Sin comentarios.

Deja tu Comentario