COMPILADORES
INTRODUCCION
Los compiladores son programas de computadora que traducen un lenguaje a otro. Toman un lenguaje de alto nivel (como C o C++) y lo convierten en un código objeto (conocido también como lenguaje maquina).
El propósito de este texto es el de proporcionar la información básica de los compiladores, además de ofrecer al lector todas las herramientas necesarias para diseñar y programar un compilador real.
El estudio de las técnicas de codificación práctica en si mismo requiere de una cuidadosa planeación, ya que incluso con buenos fundamentos teóricos los detalles de la codificación pueden ser complejos y abrumadores.
OBJETIVOS
Se entenderá y aprenderá la manera de manejar un compilador, así como las diversas herramientas que nos ayudarán a poder elaborar un compilador real. El compilador debe de leer un lenguaje objeto (lenguaje de alto nivel) y transformarlo en un lenguaje objeto (lenguaje maquina).
DESARROLLO
El avenimiento de la computadora con programa almacenado, iniciado por John von Neumann a finales de 1940, se hizo necesario escribir secuencias de códigos, o programas, que darían como resultado que estas computadoras realizaran los cálculos deseados. Al principio estos programas se escribían en lenguaje maquina, el cual son códigos numéricos que representaban las operaciones reales de la maquina que iban a efectuarse.
La escritura de tales códigos es muy tediosa y consume mucho tiempo pronto fue reemplazado por el lenguaje ensamblador. Un ensamblador traduce los códigos simbólicos y las localidades de memoria del lenguaje ensamblador a los códigos numéricos correspondientes de lenguaje maquina. El lenguaje ensamblador mejoró enormemente la velocidad y exactitud. Sin embargo el lenguaje ensamblador tiene varios defectos: Es difícil de escribir leer y comprender.
Programas relacionados con los compiladores.
Intérpretes: Traductor de lenguaje, como un compilador, pero la diferencia es que ejecuta el programa fuente inmediatamente, en vez de generar un código objeto que se ejecuta después de que se completa la traducción. Cualquier lenguaje de programación se puede interpretar o compilar.
Ensambladores: Un ensamblador es un traductor para el lenguaje ensamblador de una computadora en particular, el lenguaje ensamblador es una forma simbólica de lenguaje maquina de la computadora.
Ligadores: Tanto los compiladores como los ensambladores a menudo dependen de un programa conocido como ligador el cual recopila el código que se compila o ensamblador por separado en diferentes archivos objeto, en un archivo que es directamente ejecutable. Un ligador también conecta un programa objeto con el código de funciones de librerías estándar así como recursos suministrados por el sistema operativo de la computadora, tales como asignadores de memoria y dispositivos de entrada y salida.
Cargadores: Con frecuencia un compilador, ensamblador o ligadores producirá un código que no está organizado ni listo para ejecutarse. Se dice que tal código es relocalizable y un cargador resolverá todas las direcciones relocalizables relativas a una dirección base, o de inicio, dada.
Preprocesadores: Un preprocesador es un programa separado que es invocado por el compilador antes de que comience la traducción real. Un preprocesador de este tipo puede eliminar los comentarios, incluir estos archivos y ejecutar sustituciones de macro.
Editores: Los compiladores por lo regular aceptan programas fuente escritos utilizando cualquier editor que pueda producir un archivo estándar, tal y como un archivo ASCIL, los compiladores han sido integrados junto con los editores y otros programas en un ambiente de desarrollo interactivo. Tales editores se denominan basados en estructura y ya incluyen alguna de las operaciones de un compilador, de manera de, por ejemplo pueden informarse al programador de los errores a medida que el programa se valla escribiendo en logar de hacerlo cuando esta compilado.
Depuradores: Un depurador es un programa que puede utilizarse para determinar los errores de ejecución en un programa compilado. La ejecución de un programa con un depurador de diferencia de la ejecución directa en que el depurador se mantiene al tanto de la mayoría o la totalidad de la información sobre el código fuente, tal como los números de línea y los nombres de las variables y procedimientos. También puede detener la ejecución en ubicaciones previamente especificadas denominadas puntos de ruptura, además de proporcionar la información de cuales funciones se han invocado y cuáles son los valores actuales de las variables.
Perfiladores: Un perfilador es un programa que recolecta estadísticas sobre el comportamiento de un programa objeto durante la ejecución.
Administradores de proyecto: Los modernos proyectos de software por lo general son tan grandes que deben de ser emprendidos por grupos de programadores en lugar de un solo programador. Es importante que los archivos que se están trabajando por personas distintas se encuentren coordinados y este es el trabajo de un programa de administración de proyectos.
Por ejemplo: Un administrador de proyecto debería coordinar la mezcla de diferentes versiones del mismo archivo producido por programadores diferentes.
CONCLUSION
No hay comentarios:
Publicar un comentario