Notas1
Páginas: 14 (3254 palabras)
Publicado: 30 de agosto de 2015
Universidad Autónoma de Aguascalientes
Prof. Eduardo Serna-Pérez
Correo-e: eduardo.serna@gmail.com
Introducción a compiladores
•
•
•
•
•
•
•
Definición de compilador
Historia de los compiladores
Tipos de traductores
Fases de un compilador
Agrupamiento de fases
Compiladores cruzados
Herramientas automáticas
Definición de compilador
• Los compiladores son programasde computadora que traducen de un
lenguaje a otro. Un compilador toma como su entrada un programa
escrito en lenguaje fuente y produce un programa equivalente escrito en
lenguaje objeto.
Lenguaje Fuente
Traductor
Mensajes de error
Lenguaje Destino
Definición de compilador
• Generalmente al lenguaje fuente se le asocia como lenguaje de alto nivel,
mientras al lenguaje objeto se el conocecomo código objeto (código de
maquina) escrito específicamente para una maquina objeto. A lo largo del
proceso de traducción el compilador debe informar la presencia de
errores en el lenguaje fuente.
• Diseñar y desarrollar un compilador, no es tarea fácil, y quizás pocos
profesionales de la computación se vean involucrados en esta tarea.
• No obstante, los compiladores se utilizan en casi todas lasformas de la
computación y cualquiera involucrado en esta área debería conocer la
organización y el funcionamiento básico de un compilador.
Historia de los Compiladores
• A finales de la década de 1940, comenzaron a construirse las primeras
computadoras digitales y fue necesario implementar un lenguaje capas de
realizar los cálculos, es aquí donde aparece el lenguaje de maquina que
representabasecuencias de códigos numéricos:
C7 06 0000 0002 (instrucción que mueve el número dos a la ubicación 0000)
• Desafortunadamente este lenguaje era tedioso de seguir y complicado de
mantener, por lo que esta forma de codificación fue reemplazada por el
lenguaje ensamblador, en el cual las instrucciones y las localidades de
memoria son formas simbólicas. Un ensamblador traduce de los códigossimbólicos a lenguaje de maquina. Aún con esta mejora, el lenguaje
ensamblador sigue siendo demasiado difícil de mantener:
MOV X, 2 (instrucción en ensamblador equivalente a la anterior)
Historia de los Compiladores
•
En este punto se presenta la necesidad de lenguajes que permitan escribir los
programas de forma concisa, similar a una notación matemática, y que se pudieran
traducir a código ejecutablepara una máquina dada:
X=2
•
En 1950, G. M. Hooper acuña el termino compilador y aparecen los primeros trabajos
sobre compiladores relacionados con la traducción de formulas aritméticas a código de
máquina.
•
John Backus lideró un grupo de trabajo en IBM para realizar de un traductor de código
máquina a fórmulas matemáticas. Resultando con gran éxito: la especificación de un
lenguaje de altonivel (FORTRAN, FORmule TRANslation) Trabajaron 18 personas
durante mas de un año en el proyecto.
•
Fúe un compilador hecho ad-hoc (a puro corazón), pues no existía una teoría formal,
sino que se iban resolviendo las construcciones una a una, para cada situación
particular.
Historia de los Compiladores
•
Noam Chomsky comienza sus estudios sobre la estructura del lenguaje natural. Sus
estudioslo condujeron a la clasificación de los lenguajes de acuerdo a una jerarquía de
sus gramáticas, además sus estudios sobre los algoritmos de reconocimiento derivaron
en una automatización del proceso de traducción mas eficiente.
•
1960, se diseña el lenguaje LISP. En un principio, el código LISP se traducía
manualmente a código máquina. Se escribió en LISP un programa capaz de interpretarprogramas LISP, que se tradujo manualmente a código de máquina, construyendo de
este modo un intérprete ejecutable de LISP.
•
Knuth desarrolla la mayoría de las técnicas de análisis sintáctico.
•
1970, se presentan los mayores avances en el área de lenguajes de programación.
•
Aparecen los primeros programas que automatizan los procesos de análisis léxico y
sintáctico. Surgiendo la llamada...
Leer documento completo
Regístrate para leer el documento completo.