Compiladores.
Enviado por Anthony Valverde • 3 de Junio de 2016 • Ensayo • 1.813 Palabras (8 Páginas) • 215 Visitas
Compiladores
En términos informáticos los traductores son acciones que una persona que estudie o esté involucrada dentro de este ámbito se verá obligado a interactuar o desarrollar, estos traductores son programas cuya función principal es la de traducir o convertir desde un texto o programa escrito en un lenguaje fuente hasta un texto o programa escrito en un lenguaje destino, acortándose así el “hueco” que existe entre la forma de expresarse de las personas y maquinas que es una de las cosas que se ha buscado desde sus orígenes para facilitarle las cosas a las personas, a la actualidad existen diferentes tipos de traductores desde traductores de idioma hasta aquellos que realizan una traducción a nivel de código, entre ellos podemos encontrar lo que son compiladores, interpretes, conversores entre otros.
En la década de 1950 esto tipo de programas eran considerados demasiado difíciles al momento de escribirlos, tenemos por ejemplo el del compilador FORTRAN (FORmulae TRANslator) el primer compilador, considerado el primer lenguaje de alto nivel su funcionalidad era la de permitir escribir fórmulas matemáticas de manera traducible por un ordenador, un detalle importante es que este compilador estaba muy influenciado por la máquina objeto en la que iba a ser implementado lo cual lo hacía muy dependiente de la misma , considerado un gran avance en el ámbito de traductores ya que permitía una programación más cómoda y breve para lo que existía en ese momento lo cual se reflejaba en un ahorro de tiempo y trabajo significativo pero para su implementación llevo nada más que 18 años de trabajo en grupo, todo esto se pudo mejorar al momento que apareció la teoría de autómatas lo cual permitió acelerar y formalizar la creación de traductores, ahora existen muchos tipos de compiladores entre algunos tenemos el ensamblador que permite una traducción de una sentencia fuente a una instrucción en código maquina; conversores fuente-fuente encargados de pasar un lenguaje de alto nivel a otro lenguaje de alto nivel; compilador cruzado el cual obtiene código para ejecutar en otra máquina; autocompilador este es escrito en el mismo lenguaje que se va a compilar; descompilador este realiza un proceso inverso a la compilación, estos son algunos ejemplos de los tipos de compiladores que existen.
Muchas veces el proceso de traducción no es directo, es decir habrá caso que para pasar de un lenguaje ‘A’ a un lenguaje ‘B’ se necesitará utilizar un lenguaje intermedio C, entonces el proceso de traducción quedaría de la siguiente manera, primero paso lenguaje ‘A’ a ‘C’ , segundo paso lenguaje ‘C’ a ‘B’, muchas veces llevar a cabo este proceso es conveniente al momento de traducir, el primer paso que realiza es llamado front-end y el segundo se llama back-end, este proceso entra en la parte llamada código intermedio, una parte que se lleva a cabo al momento de diseñar un compilador.
El proceso de diseño de un compilador se lo puede dividir en dos fases, la primera esta encargada de analizar la entrada y genera estructuras intermedias mientras que la otra sintetiza la salida, estas fases son llamadas análisis y síntesis, cada una cuenta varios parámetros aplicados para la correcta traducción del lenguaje, tomando esto en cuenta se puede decir que el proceso de traducción consiste en tener un lenguaje fuente pasar por su fase de análisis y síntesis para terminar en un lenguaje destino.
La fase de análisis tiene como objetivo controlar la corrección del programa fuente, y la de generar la estructura necesaria para llevar a cabo la síntesis, esta fase es vital para lograr una traducción exitosa es por eso que también es la encargada de mostrar los mensajes de error al momento de traducir, los parámetros que tiene esta fase son 3 tenemos el análisis lexicográfico el cual es el encargado de dividir el código fuente en los componentes básicos (números, identificadores de usuario, palabras reservadas, signos de puntuación ) a cada uno de estos componentes se los asocia a una categoría; como segundo parámetro tenemos al análisis sintáctico este parámetro es el encargado de comprobar que la estructura de los componentes básicos sea la correcta basadas en reglas gramaticales; por ultimo tenemos el parámetro de análisis semántico aquí es donde se comprueba lo demás, hablamos de lo relacionado a significado, rangos de valores, existencia de variables etc, cabe resaltar que en cualquiera de estos parámetros de análisis puede haber errores, una vez haber pasado de manera éxitos estos parámetros el compilador está listo para pasar a la fase de síntesis.
La fase de síntesis al igual que la de análisis cuenta con varios parámetros que hay que tomar en cuenta para cumplir con el objetivo del mismo el cual es el de construir el programa objeto deseado a partir de las estructuras generadas por la fase de análisis, como primer parámetro este el llamado generación de código intermedio el cual genera un código independiente de la maquina lo facilitaría en la optimización de código, aquí entran los denominados front-end y back-end, cabe resaltar que este parámetro debe ser independiente de la maquina; como segundo parámetro esta la generación de código maquina el cual crea un fichero ‘.exe’ que sería un ejecutable o fichero ‘obj’ que es un fichero que posee una estructura de registros, código maquina o información este fichero pasa por un enlazador el cual ayuda a generar el ejecutable final; como último parámetro tenemos la fase de optimización, el cual puede realizarse durante los dos parámetros anteriores, ser una fase aislada o estar integrada con ellas, todo esto es lo que compete a la parte de síntesis
...