CONCEPTO DE TRADUCTOR: 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.
APLICACIÓN: Proceso de Compilación.
COMPILADOR: Es aquel traductor que tiene como entrada sentencias en un lenguaje formal y como salida tiene un fichero en un lenguaje de bajo nivel, es decir, realiza una traducción de un de lenguaje alto nivel (LAN) a código máquina. Ejemplo: C++ , Delphi , VisualBasic, etc.
INTERPRETE: Es un traductor/ejecutor que toma como entrada sentencias escritas en un lenguaje formal y como salida realiza la ejecución de dichas sentencias sin almacenarlas, es decir, que traduce sentencia por sentencia de un LAN y la va ejecutando sin crear un fichero donde se guarde el código de máquina correspondiente. Ejemplo: Lisp, Snobol, etc.
PSEUDOINTERPRETE: Algunos lenguajes intentan aunar las ventajas de los compiladores y de los intérpretes y evitar sus desventajas; son los lenguajes pseudointerpretados. En estos, el programa fuente pasa por un pseudocompilador que genera un pseudoejecutable. Para ejecutar este pseudoejecutable se le hace pasar por un motor de ejecución que lo interpreta de manera relativamente eficiente. Ejemplo: Java, Cobol, etc.
PREPROCESADORES: Permiten modificar el programa fuente antes de la verdadera compilación. Hacen uso de macroinstrucciones y directivas de compilación. Por ejemplo, en lenguaje C++, el preprocesador sustituye la directiva #include Uno.c por el código completo que contiene el fichero “Uno.c”, de manera que cuando el compilador comienza su ejecución se encuentra con el código ya insertado en el programa fuente. Algunas
otras directivas de preprocesamiento permiten compilar trozos de códigos opcionales (lenguajes C++ y Clipper): #ifndef, #endif, #define. Los preprocesadores suelen actuar de manera transparente para el programador, pudiendo incluso considerarse que son una fase preliminar del compilador.
INTÉRPRETES DE COMANDOS: Un intérprete de comandos traduce sentencias simples a invocaciones a programas de una biblioteca. Se utilizan especialmente en los sistemas operativos (la shell de Unix es un intérprete de comandos). Los programas invocados pueden residir en el kernel (núcleo) del sistema o estar almacenados en algún dispositivo externo como rutinas ejecutables que se traen a memoria bajo demanda. Por ejemplo, si bajo MS-DOS se teclea el comando copy se ejecutará la función de copia de ficheros del sistema operativo, que se encuentra residente en memoria.
ENSAMBLADOR: Un ensamblador es un compilador sencillo, en el que el lenguaje fuente tiene una estructura tan simple, que permite la traducción de cada sentencia fuente a una única instrucción en código
máquina. Al lenguaje que admite este compilador también se le llama lenguaje ensamblador o simbólico. Este lenguaje fuente utiliza nemotécnicos para hacer referencia a operaciones, registros, direcciones de memoria, etc. En definitiva, existe una correspondencia uno a uno entre las instrucciones ensamblador y las instrucciones máquina.
Ejemplo: Instrucción ensamblador INTEL 8088: MOV AH,09h
Código máquina generado en Binario: 1011- 0100- 0000- 1001
CONVERSORES FUENTE-FUENTE: Permiten traducir desde un LAN (Lenguaje de Alto Nivel) a otro LAN, con lo que se consigue una mayor portabilidad de estos lenguajes. Por ejemplo un conversor de Java a C++, permitiría ejecutar programas escritos en Java en computadores que solo tengan compilador de C++.
TRADUCTORES DE IDIOMAS: Son traductores de lenguajes naturales, es decir, tienen como entrada un texto escrito en un idioma y dan como salida una texto equivalente escrito en otro idioma. Por ejemplo: Systran (traductor Inglés-Español), Traductor del Google (varios idiomas al español y viceversa), etc.
COMPILADOR: Por regla general un compilador no produce un fichero ejecutable, sino que el código generado se estructura en módulos que se almacenan en un fichero objeto. Los ficheros objeto poseen información relativa tanto al código máquina como a una tabla de símbolos que almacena la estructura de las variables
y tipos utilizados por el programa fuente.
ENLAZADOR: Engloba en un único bloque los distintos módulos que almacenan código máquina, estructura el bloque de memoria destinado a almacenar las variables en tiempo de ejecución y genera el ejecutable final incorporando algunas rutinas adicionales procedentes de librerías.
CARGADOR: El fichero ejecutable consta de varios segmentos, entre ellos el de código máquina, el de datos y el de pila. En estos segmentos se hace referencia a direcciones de memoria principal en forma relativa. El cargador, que suele ser parte del S.O., coloca los diferentes segmentos del fichero ejecutable en las direcciones de memoria disponibles. De tal modo que a las direcciones relativas del código se le suma la dirección base del segmento correspondiente, para obtener la dirección absoluta de memoria que tomará el microprocesador para acceder a una variable o realizar una bifurcación.
Espero les sirva! Puntos
APLICACIÓN: Proceso de Compilación.
COMPILADOR: Es aquel traductor que tiene como entrada sentencias en un lenguaje formal y como salida tiene un fichero en un lenguaje de bajo nivel, es decir, realiza una traducción de un de lenguaje alto nivel (LAN) a código máquina. Ejemplo: C++ , Delphi , VisualBasic, etc.
INTERPRETE: Es un traductor/ejecutor que toma como entrada sentencias escritas en un lenguaje formal y como salida realiza la ejecución de dichas sentencias sin almacenarlas, es decir, que traduce sentencia por sentencia de un LAN y la va ejecutando sin crear un fichero donde se guarde el código de máquina correspondiente. Ejemplo: Lisp, Snobol, etc.
PSEUDOINTERPRETE: Algunos lenguajes intentan aunar las ventajas de los compiladores y de los intérpretes y evitar sus desventajas; son los lenguajes pseudointerpretados. En estos, el programa fuente pasa por un pseudocompilador que genera un pseudoejecutable. Para ejecutar este pseudoejecutable se le hace pasar por un motor de ejecución que lo interpreta de manera relativamente eficiente. Ejemplo: Java, Cobol, etc.
PREPROCESADORES: Permiten modificar el programa fuente antes de la verdadera compilación. Hacen uso de macroinstrucciones y directivas de compilación. Por ejemplo, en lenguaje C++, el preprocesador sustituye la directiva #include Uno.c por el código completo que contiene el fichero “Uno.c”, de manera que cuando el compilador comienza su ejecución se encuentra con el código ya insertado en el programa fuente. Algunas
otras directivas de preprocesamiento permiten compilar trozos de códigos opcionales (lenguajes C++ y Clipper): #ifndef, #endif, #define. Los preprocesadores suelen actuar de manera transparente para el programador, pudiendo incluso considerarse que son una fase preliminar del compilador.
INTÉRPRETES DE COMANDOS: Un intérprete de comandos traduce sentencias simples a invocaciones a programas de una biblioteca. Se utilizan especialmente en los sistemas operativos (la shell de Unix es un intérprete de comandos). Los programas invocados pueden residir en el kernel (núcleo) del sistema o estar almacenados en algún dispositivo externo como rutinas ejecutables que se traen a memoria bajo demanda. Por ejemplo, si bajo MS-DOS se teclea el comando copy se ejecutará la función de copia de ficheros del sistema operativo, que se encuentra residente en memoria.
ENSAMBLADOR: Un ensamblador es un compilador sencillo, en el que el lenguaje fuente tiene una estructura tan simple, que permite la traducción de cada sentencia fuente a una única instrucción en código
máquina. Al lenguaje que admite este compilador también se le llama lenguaje ensamblador o simbólico. Este lenguaje fuente utiliza nemotécnicos para hacer referencia a operaciones, registros, direcciones de memoria, etc. En definitiva, existe una correspondencia uno a uno entre las instrucciones ensamblador y las instrucciones máquina.
Ejemplo: Instrucción ensamblador INTEL 8088: MOV AH,09h
Código máquina generado en Binario: 1011- 0100- 0000- 1001
CONVERSORES FUENTE-FUENTE: Permiten traducir desde un LAN (Lenguaje de Alto Nivel) a otro LAN, con lo que se consigue una mayor portabilidad de estos lenguajes. Por ejemplo un conversor de Java a C++, permitiría ejecutar programas escritos en Java en computadores que solo tengan compilador de C++.
TRADUCTORES DE IDIOMAS: Son traductores de lenguajes naturales, es decir, tienen como entrada un texto escrito en un idioma y dan como salida una texto equivalente escrito en otro idioma. Por ejemplo: Systran (traductor Inglés-Español), Traductor del Google (varios idiomas al español y viceversa), etc.
COMPILADOR: Por regla general un compilador no produce un fichero ejecutable, sino que el código generado se estructura en módulos que se almacenan en un fichero objeto. Los ficheros objeto poseen información relativa tanto al código máquina como a una tabla de símbolos que almacena la estructura de las variables
y tipos utilizados por el programa fuente.
ENLAZADOR: Engloba en un único bloque los distintos módulos que almacenan código máquina, estructura el bloque de memoria destinado a almacenar las variables en tiempo de ejecución y genera el ejecutable final incorporando algunas rutinas adicionales procedentes de librerías.
CARGADOR: El fichero ejecutable consta de varios segmentos, entre ellos el de código máquina, el de datos y el de pila. En estos segmentos se hace referencia a direcciones de memoria principal en forma relativa. El cargador, que suele ser parte del S.O., coloca los diferentes segmentos del fichero ejecutable en las direcciones de memoria disponibles. De tal modo que a las direcciones relativas del código se le suma la dirección base del segmento correspondiente, para obtener la dirección absoluta de memoria que tomará el microprocesador para acceder a una variable o realizar una bifurcación.
Espero les sirva! Puntos

