Está en la página 1de 5

Tarea 1.

Definición de compiladores e intérpretes.


Compilador: es un programa que recibe como datos de entrada un programa fuente y
genera como salida un conjunto de instrucciones escritas en ensamblador conocido como
programa objeto que la computadora va a ejecutar. La compilación se divide en un
análisis semántico, sintáctico y léxico del programa fuente y en la síntesis que se refleja en
el lenguaje objeto.

Ventajas con respecto al intérprete:

 Autónomo y eficiente: los programas que se compilan es que son unidades


autónomas listas para ser ejecutadas. Debido a que ya se encuentran compiladas
en archivos binarios de lenguaje máquina, no es necesaria una segunda aplicación
o paquete que el usuario deba mantener actualizado.
 Optimización de hardware: Los usuarios pueden enviar opciones específicas a los
compiladores, relacionadas con los detalles del hardware en el que se ejecutará el
programa. Esto permite que el compilador genere código en lenguaje máquina que
hace un uso más eficiente del hardware especificado

Intérprete: es un programa capaz de analizar y ejecutar otros programas escritos en un


lenguaje de alto nivel y recibe como entrada un programa fuente y entrega como salida
resultados. Se caracteriza por traducir y ejecutar, de una en una, las instrucciones del
código fuente de un programa, pero, sin generar como salida código objeto. El proceso
que realiza un intérprete es el siguiente: lee la primera instrucción del código fuente, la
traduce a código objeto y la ejecuta; a continuación, hace lo mismo con la segunda
instrucción; y así sucesivamente, hasta llegar a la última instrucción del programa, siempre
y cuando, no se produzca ningún error que detenga el proceso.

Ventajas con respecto al compilador:

 Flexibilidad: Los programas interpretados suelen ser más lentos que los
compilados debido a la necesidad de traducir el programa mientras se ejecuta,
pero a cambio son más flexibles como entornos de programación y depuración
 Facilidad en la depuración
 Independencia de la plataforma

Preguntas
Pregunta 1. Considere un navegador web simple que toma como entrada una cadena
textual en HTML y muestra los gráficos presentados en la pantalla. ¿Qué proceso muestra,
de compilación o interpretación?

Los navegadores web muestran el proceso de interpretación pues procesa el código


fuente de la página durante su tiempo de ejecución.

Pregunta 2. Al diseñar un compilador, te enfrentarás a muchas compensaciones. ¿Cuáles


son las cinco cualidades que usted, como usuario, consideras más importantes en un
compilador que vas a comprar? ¿Esa lista cambia cuando eres el diseñador del
compilador? ¿Qué te dice tu lista sobre un compilador que implementarás?

1. código fácil y comprensible.


2. directivas de compilador
3. funciones intrínsecas del compilador
4.  la optimización
5. un editor integrado

Una de las características de los compiladores y que algunas personas consideran como
desventaja es que dado que un compilador traduce el código fuente a un lenguaje
máquina específico, los programas deben ser compilados específicamente para el sistema
operativo donde se está trabajando por lo tanto las especificaciones del compilador
cambiaran en base a la necesidad del programador.

La lista habla sobre un compilador que tiene buena integración de los analizadores léxicos
y sintácticos, que el código generado es más fácil de entender y depurar y que cuenta con
herramientas que faciliten el trabajo de optimización y depuración.

Tarea 1.2

Arquitectura de los compiladores e intérpretes.


Arquitectura del compilador 

Un compilador puede dividirse en dos fases en función de la forma en que se compila.

Fase de Análisis

Conocido como el extremo frontal del compilador, la fase análisis del compilador lee el
programa fuente, lo divide en partes fundamentales y, a continuación, verifica la
existencia de léxico, gramática y errores de sintaxis. La fase de análisis genera una
representación intermedia del programa fuente y tabla de símbolos, que deberían ser
alimentados a la fase de síntesis como entrada.

Fase de Síntesis

Conocido como el back-end del compilador, la fase de síntesis genera al programa de


destino con la ayuda de código fuente representación intermedia y tabla de símbolos.

Un compilador puede tener muchas fases y pasa.

 Pass : un pase se refiere a la travesía de un compilador a través de todo el


programa.
 Fase: una fase de un compilador es una etapa distinguible, que toma la entrada de
la etapa anterior, los procesos y los rendimientos de salida que puede ser utilizado
como entrada para la siguiente etapa. Un pase puede tener más de una fase.

Arquitectura del Interprete

 La organización interna de la mayoría de los intérpretes se descompone en los módulos:


Traductor a Representación Interna: Toma como entrada el código del programa P en
Lenguaje Fuente, lo analiza y lo transforma a la representación interna correspondiente a
dicho programa P.

Representación Interna (P/RI): La representación interna debe ser consistente con el


programa original.

Tabla de símbolos: Durante el proceso de traducción, es conveniente ir creando una tabla


con información relativa a los símbolos que aparecen. 

Entre los tipos de representación interna, los árboles sintácticos son los más utilizados y, si
las características del lenguaje lo permiten, pueden utilizarse estructuras de pila para una
mayor eficiencia.

Preguntas

Nombra cada una de las partes que forman la arquitectura del compilador.

1. análisis léxico
2. análisis sintáctico
3. análisis semántico
4. generación código intermedio
5. optimización de código

Nombrar cada una de las partes que forman la arquitectura del intérprete.

1. análisis léxico
2. análisis sintáctico
3. análisis semántico
4. generación de resultados

También podría gustarte