Fundamentos de Compiladores, Intérpretes y Traductores de Lenguajes de Programación
Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones
Escrito el en
español con un tamaño de 5,04 KB
Conceptos Fundamentales de Traductores y Compiladores
1. ¿Qué es un traductor?
Programa que traduce o convierte un texto o programa escrito en un lenguaje fuente a un texto o programa escrito en un lenguaje destino, produciendo, si es necesario, mensajes de error.
2. ¿Cuál es el funcionamiento de un traductor de idioma?
Traducen de un idioma dado a otro (por ejemplo, un traductor de inglés a español).
3. ¿Cómo funciona un compilador?
Es un traductor que toma como entrada una sentencia en lenguaje formal y produce como salida un fichero ejecutable, realizando una traducción de alto nivel a código máquina.
4. ¿Cómo funciona un intérprete?
Es similar a un compilador, pero su salida es una ejecución directa. El programa de entrada se interpreta y ejecuta a la vez.
5. ¿Qué son los lenguajes pseudointerpretados?
Son aquellos lenguajes en los que el programa fuente pasa por un pseudocompilador que genera un pseudoejecutable. Este pseudoejecutable se somete a un motor de ejecución. Esto ofrece la ventaja de la portabilidad, ya que basta con tener el motor de ejecución en cualquier máquina para poder ejecutar el pseudoejecutable.
Herramientas Especializadas en Procesamiento de Lenguajes
6. ¿Qué es un metacompilador y menciona ejemplos?
Se refiere a un programa que recibe como entrada las especificaciones del lenguaje para el que se desea obtener un compilador y genera como salida el compilador para ese lenguaje. El desarrollo de los metacompiladores se enfrenta a la dificultad de unir la generación de código con la parte de análisis.
7. ¿Cómo funciona un preprocesador?
Permite modificar el programa fuente antes de la compilación principal. Hacen uso de macroinstrucciones y directivas.
8. ¿Cuál es el objetivo de un intérprete de comandos?
Su función es traducir sentencias simples a llamadas a programas de una biblioteca. Son especialmente utilizados por Sistemas Operativos (ej. el shell de DOS o UNIX). Desencadenan la ejecución de programas que pueden estar residentes en memoria o encontrarse en disco.
9. ¿Para qué sirven los ensambladores y macroensambladores?
Ensamblador
Es un compilador sencillo donde el lenguaje fuente tiene una estructura simple que permite la traducción de una sentencia fuente a una instrucción en código máquina. El lenguaje utilizado se llama lenguaje ensamblador y tiene una correspondencia uno a uno entre sus instrucciones y el código máquina.
Macroensamblador
Es un ensamblador que incluye un preprocesador. Utiliza macroinstrucciones que se traducen a varias instrucciones máquina.
10. ¿Cuál es la diferencia entre un ensamblador y un macroensamblador?
- Ensamblador: Correspondencia uno a uno entre instrucciones y código máquina.
- Macroensamblador: Traduce macroinstrucciones a varias instrucciones máquina.
11. ¿Cuál es el funcionamiento de los conversores fuente-fuente?
Convierten un lenguaje de alto nivel a otro lenguaje de alto nivel, buscando una mayor portabilidad.
12. ¿Qué es un compilador cruzado?
Es un compilador que genera código para ser ejecutado en una máquina diferente a aquella donde se compila. Se utilizan en la fase de desarrollo de nuevos ordenadores.
El Proceso de Compilación y Estructuras de Datos
13. ¿Cuáles son las 3 funciones principales en el proceso de desarrollo de software?
Las tres funciones principales son:
- Compilar
- Enlazar (linkar)
- Ejecutar
14. ¿Qué es un fichero OBJ?
Es un fichero que posee una estructura de registros de longitudes variables. Algunos registros contienen código máquina, mientras que otros contienen información adicional, incluyendo datos sobre los objetos externos.
15. ¿Qué es una pasada de compilación?
Es el número de veces que se lee el programa fuente. En ciertas situaciones, no es suficiente leer el fichero fuente una sola vez para completar la compilación.
16. ¿Qué es la compilación incremental?
Es un método donde, al descubrir errores, en lugar de recompilar el programa fuente por completo, solo se compilan las modificaciones. Lo ideal es que únicamente se recompilen las partes afectadas por los errores, y que el código generado se reinserte en el fichero OBJ original.