Un traductor es un mediador entre dos entidades: emisoras y receptoras,
los mediadores enmascaran la complejidad y heterogeneidad de los lenguajes. Un traductor convierte un lenguaje de entrada (cdigo fuente) a una de salida (cdigo objeto). Un traductor se define como un programa que traduce o convierte desde un texto o programa escrito en un lenguaje fuente hasta un texto o programa equivalente escrito en un lenguaje destino produciendo, si cabe, mensajes de error. Los traductores engloban tanto a los compiladores (en los que el lenguaje destino suele ser cdigo mquina) como a los intrpretes (en los que el lenguaje destino est constituido por las acciones atmicas que puede ejecutar el intrprete). La figura 1.1 muestra el esquema bsico que compone a un compilador/intrprete.
Tipos de traductores. Compiladores Es aquel traductor que tiene como entrada una sentencia en lenguaje formal y como salida tiene un fichero ejecutable, es decir, realiza una traduccin de un cdigo de alto nivel a cdigo mquina (tambin se entiende por compilador aquel programa que proporciona un fichero objeto en lugar del ejecutable final). Intrpretes Es como un compilador, solo que la salida es una ejecucin. El programa de entrada se reconoce y ejecuta a la vez. No se produce un resultado fsico (cdigo mquina) sino lgico (una ejecucin). Su principal ventaja es que permiten una fcil depuracin. Entre los inconvenientes podemos citar, en primer lugar, la lentitud de ejecucin, ya que al ejecutar a la vez que se traduce no puede aplicarse un alto grado de optimizacin. Otro inconveniente es que durante la ejecucin, el intrprete debe residir en memoria, por lo que consumen ms recursos. La figura 1.2 muestra los pasos a seguir en estos lenguajes para obtener una ejecucin.
En el proceso de traduccin se identifican dos fases principales:
Fase de Anlisis
Fase de Sntesis
1.7 Fases De Un Compilador.
Definicin de Compilador. Un compilador es un programa informtico que traduce un programa escrito en un lenguaje de programacin a otro lenguaje de programacin, es decir programa que permite traducir el cdigo fuente de un programa en lenguaje de alto nivel, a otro lenguaje de nivel inferior (lenguaje mquina). Generando un programa equivalente a capaz de interpretar. FASES DE UN COMPILADOR.
Anlisis Lxico. En esta fase se lee los caracteres del programa fuente y se agrupan en cadenas que representan los componentes lxicos. A la secuencia de caracteres que representa un componente lxico se le llama lexema (o con su nombre en ingls token). Anlisis Sintctico. Los componentes lxicos se agrupan en frases gramaticales que el compilador utiliza para sintetizar la salida. Anlisis Semntico. Intenta detectar instrucciones que tengan la estructura sintctica correcta, pero que no tengan significado para la operacin implicada. Generacin de cdigo Intermedio. Se puede considerar esta operacin intermedia como un subprograma para una mquina abstracta, a esta representacin debe tener dos propiedades importantes: debe ser fcil de producir y fcil de traducir al programa objeto. Optimizacin de Cdigo. Se trata de mejorar el cdigo intermedio, de modo que resulte un cdigo de mquina ms rpido de ejecutar. Generacin de Cdigo. Esta constituye la fase final de un compilador. Administrador de la tabla de smbolos. Se encarga de manejar los accesos a la tabla de smbolos, en cada una de las etapas de compilacin de un programa. Manejador de errores. Es posible encontrar errores. De esta forma podrn controlarse ms eficientemente los errores encontrados en cada una de las fases de la compilacin de un programa. Cada fase puede encontrar errores y debe tratarlo para continuar con la Compilacin, permitiendo detectar ms errores Las fases de Anlisis Sintctico y Semntico manejan la mayora de los errores En el Anlisis Semntico se detectan errores donde la estructura sintctica es correcta pero no tiene significado la operacin (Por. ej. sumar dos ID, donde uno es el nombre de una matriz y el otro un nombre de procedimiento). Programas Relacionados con un Compilador. Preprocesadores (producen la entrada para una computadora). Procesamiento de Macros Inclusin de archivos Preprocesadores racionales (estructura de control) Extensiones a lenguajes (bases de datos).
Ensambladores Producen cdigo ensamblador que se pasa a un ensamblador para su procesamiento (versin mnemotcnica del cdigo de mquina: nombres de operaciones y nombres de direcciones de memoria).