Compiladores E Intérpretes
Enviado por fperalta • 17 de Marzo de 2014 • 10.506 Palabras (43 Páginas) • 264 Visitas
Introducción
El material presentado en este manual es de la completa autoría de J.A.Román, a quien se ha solicitado su anuencia para ser modificado y utilizado para la asignatura de compiladores e interprete y a quien agradecemos su aprobación para que sea tanto utilizado como modificado para que cumpla con el perfil pedagógico que buscamos a fin de conseguir el mejor rendimiento de los estudiantes para esta asignatura.
Este material en principio es denominado por su autor con el nombre de Procesadores de Lenguajes y en su modificación y estructuración nosotros les hemos denominado Compiladores e Intérpretes.
Con este material no busco ni pretendo enseñarles a hacer un compilador ni un mucho menos un interprete, pues no puedo dar lo que no tengo. Lo que si conseguiremos es teorizar para poder comprender lo que es un compilador y un intérprete y entender como fusionan cada uno de ellos.
Para lograr este objetivo hemos divido el materia en dos grades partes.
Primero está el material base, que consiste en la documentación usado para el desarrollo diario de las clases y este a su vez se divide en temas que van desde lo mas elemental hasta llegar a la compresión y funcionamiento de los compiladores e interpretes.
Segundo está el material de apoyo que se compone del desarrollo de algunas partes importantes para la comprensión de los temas base.
Los temas apoyados con sus respectivas practicas y una buena coduccion pedagógica serán las herramientas usadas para llegar a comprender los conceptos abordados en esta asignatura.
Prof. Fernando Peralta Peralta.
Indice
1.- Introducción
2.- Procesadores de lenguajes
2.1- Traductores
2.2.- Ensambladores
2.3.- Compiladores
2.4.- Montadores de enlace
2.5.- Cargadores
2.6.- Intèrpretes
2.7.- Decompiladores
2.8.- Desensambladores
2.9.- Depuradores
2.10.- Analizadores de rendimiento
2.11.- Optimizadores de código
2.12.- Compresores
2.13.- Preprocesadores
2.14.- Formateadores
2.15.- Editores
3.- Los compiladores y la arquitectura de ordenadores. Portabilidad
4.- Lenguajes, gramáticas y autómatas
4.1- Metalenguajes
5.- Estructura y fases de un compilador
6.- Intérpretes. Definición y estructura. Tipos
6.1- Estructura de un intérprete
6.2- Ventajas del uso de intérpretes
6.3- Aplicaciones de los sistemas basados en intérpretes
6.4.1 Intérpretes puros
6.4.2 Intérpretes avanzados
6.4.3 Intérpretes incrementales
6.4.4 Evaluadores parciales
6.4.5 Compiladores “Just in Time”
6.4.6 Compilación continua
7.- Diseño e implantación de lenguajes de programación
7.1.- Principios de diseño
7.2.-. Definición de un lenguaje
7.3.- Técnicas de especificación semántica
7.4.- Máquinas abstractas
8.- Herramientas para la construcción de Procesadores de lenguaje
9.- Aplicaciones de los Procesadores de lenguajes
TEMA #1
1.- INTRODUCCIÓN A LOS PROCESADORES DE LENGUAJE
El objeto de esta materia está implícito en su título : procesar lenguajes.
Procesar :
• Someter a un proceso de transformación mediante operaciones programadas. Es decir transformar un origen (fuente) en un destino mediante una herramienta de transformación que permita operaciones programadas: el ordenador.
Lenguaje :
• Las relaciones humanas se llevan a cabo mediante el llamado lenguaje natural, aquel que surge antes que sus reglas gramaticales, pero en esta materia estamos tratando con ordenadores y éstos sólo aceptan y comprenden un lenguaje consistente en largas secuencias de “ceros y unos” ( de bajo nivel). Estas secuencias son ininteligibles para la mayoría de las personas y además son específicas para cada tipo de ordenador (lenguaje máquina). Para posibilitar la comunicación de órdenes al ordenador, programarlo, se utilizan los llamados lenguajes de programación.
• Un lenguaje de programación se puede definir de diferentes maneras:
o Es una notación formal para describir algoritmos y funciones que serán ejecutados por un ordenador.
o Es un lenguaje para comunicar instrucciones al ordenador.
o Es una convención para escribir descripciones que puedan ser evaluadas.
• En informática también se utilizan otros lenguajes que no son de programación y que tienen otras aplicaciones, como pueden ser para describir formatos de texto, gráficos, de sonido, etc. En cualquier caso, todos los lenguajes no naturales son formales, surgen primero las reglas gramaticales y se ajustan con todo rigor a ellas. Gracias a ello se pueden construir traductores ( término genérico que hace referencia al proceso de transformación) en ordenadores eficientes para los lenguajes de programación.
• Los lenguajes de programación se pueden clasificar desde diferentes puntos de vista:
o Según el grado de independencia de la máquina:
Lenguaje máquina
• La forma más baja de un lenguaje de programación.
• La notación que entiende directamente un ordenador.
• Binario o hexadecimal.
• Cada instrucción se representa:
o Un código numérico y
o Unas direcciones de memoria.
• Arquitectura de la máquina de Von Neumann. Conjunto de instrucciones basado en:
o Datos
o Operaciones aritméticas y lógicas
o Asignaciones de posiciones de memoria
o Control de flujo
Lenguaje ensamblador
• Versión simbólica de un lenguaje máquina:
o Cada código de operación se indica por un código simbólico: ADD, MUL...
o Asignaciones de memoria se dan con nombre simbólicos
Lenguaje de nivel intermedio (caso del lenguaje C)
• Características de los lenguajes máquina:
o Acceso directo a posiciones memoria
o Almacenar variables en registros del procesador
• Características de lenguajes de alto nivel:
o Manejo de estructuras de control
o Manejo de datos
Lenguaje de alto
...