TEMA
Compiladores
OBJETIVO GENERAL.
Conocer la definición de Compiladores y Traductor mediante diferentes fuentes de consulta, para obtener una definición concreta.
MARCO TEÓRICO.
Compilador.
Para conocer la definición de compiladores primeramente se ha visto necesario conocer un poco acerca de la historia.
Historia
En 1946 se desarrolló la primera computadora digital. En un principio, estas máquinas ejecutaban instrucciones consistentes en códigos numéricos que señalaban a los circuitos de la máquina los estados correspondientes a cada operación, lo que se denominó lenguaje máquina.
Pronto los primeros usuarios de estos ordenadores descubrieron la ventaja de escribir sus programas mediante claves más fáciles de recordar que esos códigos; al final, todas esas claves juntas se traducían manualmente a lenguaje máquina. Estas claves constituyen los llamados lenguajes ensambladores.
El primer compilador fue escrito por Grace Hopper, en 1952 para el lenguaje de programación A-0, En 1950 John Backus dirigió una investigación en IBM sobre un lenguaje algebraico. En 1954 se empezó a desarrollar un lenguaje que permitía escribir fórmulas matemáticas de manera traducible por un ordenador; le llamaron FORTRAN (FORmulae TRANslator). Fue el primer lenguaje de alto nivel y se introdujo en 1957 para el uso de la computadora IBM modelo 704.
Surgió así por primera vez el concepto de un traductor como un programa que traducía un lenguaje a otro lenguaje. En el caso particular de que el lenguaje a traducir es un lenguaje de alto nivel y el lenguaje traducido de bajo nivel, se emplea el término compilador.
La tarea de realizar un compilador no fue fácil. El primer compilador de FORTRAN tardó 18 años-persona en realizarse y era muy sencillo. Este desarrollo de FORTRAN estaba muy influenciado por la máquina objeto en la que iba a ser implementado.
El primer compilador auto contenido, es decir, capaz de compilar su propio código fuente fue el creado para Lisp por Hart y Levin en el MIT en 1962.
DEFINICIÓN DE COMPILADOR.
ü Según José Huidobro afirma que “Compilador es el que traduce todo el programa fuente a código maquina, dejándolo dispuesto para su ejecución, tras alguna preparación complementaria. Requieren mucha memoria para almacenar el programa objeto y son muy rápidos en las ejecuciones sucesivas”.
Un compilador se estructura en dos módulos o procesos principales:
· Análisis: El “explorador” realiza un análisis lexicográfico leyendo el programa fuente y el “reconocedor” se encarga del análisis sintáctico para comprobar que es correcto. No realiza ninguna traducción.
· Síntesis: Es la parte que realiza propiamente la traducción.
ü Según Iván Pérez en su obra titulada Lenguaje de Compiladores, afirma que “Un traductor es un programa que traduce un lenguaje a otro lenguaje. Si el lenguaje a traducir es uno de alto nivel y el lenguaje traducido de bajo nivel, se utiliza el término compilador. ”
Internet Explorer “Es el tipo de traductor más conocido. Se trata de un programa que traduce código fuente escrito en un lenguaje de alto nivel (Pascal) en código máquina (no siempre). Son más rápidos que los intérpretes pero presentan mayor dificultad a la hora de detectar errores.
Un compilador es un programa que lee el código escrito en un lenguaje (lenguaje origen), y lo traduce o traduce en un programa equivalente escrito en otro lenguaje (lenguaje objetivo).
Como una parte fundamental de este proceso de traducción, el compilador le hace notar al usuario la presencia de errores en el código fuente del programa. Anexo 1
El compilador deriva su nombre de la manera en que trabaja, buscando en todo el código fuente, recolectando y reorganizando las instrucciones. Un compilador difiere de un intérprete en que el intérprete toma cada línea de código y la analiza y ejecuta mientras que el compilador mira el código por completo.
Los compiladores requieren de un tiempo antes de poder generar un ejecutable, sin embargo los programas creados con compiladores se ejecutan mucho más rápido que un mismo programa ejecutado con un intérprete.
Cada lenguaje de programación de alto nivel (excepto los estrictamente imperativos) viene con un compilador.
Dado que los compiladores traducen código fuente a código objeto, el cual es único para cada tipo de máquina, existen múltiples compiladores para un mismo lenguaje. Por ejemplo lenguaje C tiene un compilador para PC, otro para Apple Macintosh, además existen muchas casa que desarrollan compiladores para una misma plataforma y un mismo lenguaje, por ejemplo Microsoft y Borland tienen sus compiladores propios para lenguaje C. Diagrama a bloques de la operación de un buen compilador. Anexo 2
CRITERIO GRUPAL.
Un compilador es aquel que traduce un programa escrito a un lenguaje de programación.
Traductor
Un traductor es un programa que traduce o convierte desde un texto o programa escrito en un lenguaje fuente hasta un texto o programa escrito en un lenguaje destino produciendo, si cabe, mensajes de error. Los traductores engloban tanto al compilador como al intérprete.
Esquema inicial para un traductor: anexo 3
Es importante destacar la velocidad en la que hoy en día se hacen. En la década de 1950, se consideró a los traductores como programas notablemente difíciles de escribir. El primer compilador de FORTRAN, por ejemplo, necesitó para su implementación 18 años de trabajo en grupo. Hasta que apareció la teoría de autómatas no se pudo acelerar ni formalizar la creación de traductores.
No hay comentarios:
Publicar un comentario