Notas1

Páginas: 14 (3254 palabras) Publicado: 30 de agosto de 2015
Introducción a compiladores

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.

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS