1.4 ensambladores y compiladores

17
1.4 TRADUCTOR Y SU ESTRUCTURA

Transcript of 1.4 ensambladores y compiladores

Page 1: 1.4 ensambladores y compiladores

1.4 TRADUCTOR Y SU ESTRUCTURA

Page 2: 1.4 ensambladores y compiladores

¿QUÉ ES UNA TRADUCTOR?

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 (código fuente) a una de salida (código objeto).

Page 3: 1.4 ensambladores y compiladores

1. 4. 1 ENSAMBLADORES

Ensamblador se refiere a un tipo de programa, informático que se encarga de traducir un fichero fuente escrito en un lenguaje ensamblador, a un fichero objeto  que contiene código máquina ejecutable directamente por la máquina para la que se ha generado.

Ejemplos: MASM

Page 4: 1.4 ensambladores y compiladores

 FUNCIÓN DE UN ENSAMBLADOR:

La tarea fundamental de un ensamblador es traducir un programa en lenguaje de ensamblador al código correspondiente en lenguaje de máquina.

.

Page 5: 1.4 ensambladores y compiladores

MOTIVOS PARA USAR ENSAMBLADOR

Mayor control de la computadora. Independencia de lenguaje. La mayoría de las computadoras pueden

ensamblar. Los programas hechos en lenguaje

ensamblador son generalmente más rápidos y consumen menos recursos del sistema.

Page 6: 1.4 ensambladores y compiladores

MOTIVOS PARA NO UTILIZAR

Demasiado complejo. Comprensión más profunda de la

computadora. Errores más frecuentes en el programa. Mayor tiempo de codificación. Difícilmente portable, es decir, un código

escrito para un microprocesador en particular necesita ser modificado muchas veces en su totalidad para poder ser usado en otro microprocesador.

Page 7: 1.4 ensambladores y compiladores

TIPOS DE ENSAMBLADORES

ENSAMBLADORES CRUZADOS: Se denominan así a los ensambladores que se utilizan en una computadora que posee el procesador diferente al que tendrán las computadoras donde se va a ejecutar el programa objeto producido.

ENSAMBLADORES RESIDENTES: Son aquellas que permanecen en la memoria principal de la computadora y cargar para su ejecución al programa objeto producido.

Page 8: 1.4 ensambladores y compiladores

MICRO ENSAMBLADORES: Al programa que indica al intérprete de instrucciones de la CPU como debe actuar se le denomina microprograma. El programa que ayuda a realizar este microprograma se llama micro ensamblador.

MACRO ENSAMBLADORES: Son ensambladores que permiten el uso de macroinstrucciones.

Page 9: 1.4 ensambladores y compiladores

ENSAMBLADORES DE UNA FASE: leen una línea y la traducen directamente para producir una instrucción de lenguaje maquina o la ejecuta si se trata de una pseudosinstrucción. Se construye la tabla de símbolos a medida que aparecen las definiciones de variables, etiquetas, etc.

ENSAMBLADORES DE DOS FASES: Realiza la traducción en dos etapas: 1° fase leen el programa fuente y construyen la tabla de símbolos, 2° fase vuelve a leer el programa fuente y pueden ir traduciendo totalmente pues reconocen la totalidad de los símbolos.

Page 10: 1.4 ensambladores y compiladores

1. 4. 2 COMPILADORES

Un compilador es querer traducir un programa de un lenguaje de alto nivel, a otro lenguaje de nivel inferior (típicamente  lenguaje máquina).

Los compiladores son programas o herramientas encargadas de compilar. Un compilador toma un texto (código fuente) escrito en un lenguaje de alto nivel y lo traduce a un lenguaje comprensible por las computadoras (código objeto).

Page 11: 1.4 ensambladores y compiladores

FASES DEL COMPILADOR

Page 12: 1.4 ensambladores y compiladores

CLASIFICACIÓN DE COMPILADORES

DE UNA PASADA: Examina el código fuente una vez, generando el código o programa objeto.

PASADAS MÚLTIPLES: Requiere pasos intermedios para producir código en otro lenguaje y una pasada final para producir y optimizar el código producido durante pasos anteriores.

Page 13: 1.4 ensambladores y compiladores

COMPILADORES INCREMENTALES: Generan un código objeto, instrucción por instrucción cuando el usuario teclea cada orden individual.

COMPILADOR CRUZADO: Se genera código en lenguaje objeto para una maquina diferente a la que se esta utilizando para compilar.

COMPILADOR CON MONTADOR: Compila distintos módulos de forma independiente y después es capaz de aplazarlos.

Page 14: 1.4 ensambladores y compiladores

AUTO COMPILADORES: Compilador que esta escrito en el mismo lenguaje que va a compilar.

META COMPILADOR: Es 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.

DESCOMPILADOR: Es un programa que acepta como entrada código maquina y la traduce a un lenguaje de alto nivel realizando el proceso inverso a la compilación.

Page 15: 1.4 ensambladores y compiladores

1.4.3 INTERPRETES

Un intérprete es un programa capaz de analizar y ejecutar otros programas, escritos en un lenguaje de alto nivel. Los intérpretes suelen contraponerse a los compiladores, ya que mientras que los segundos se encargan de traducir un programa desde su descripción en un lenguaje de programación al código máquina del sistema destino, los primeros sólo realizan la traducción a medida que sea necesario y normalmente, no guardan el resultado de dicha traducción.

Page 16: 1.4 ensambladores y compiladores

JavaScript, BASIC, LISP, Smalltalk y Python son ejemplos de lenguajes que son normalmente interpretados en vez de compilados.

Page 17: 1.4 ensambladores y compiladores

EL INTÉRPRETE TIENE ESTAS CARACTERÍSTICAS

Traduce y ejecuta una línea del programa a la vez.

Si hay error, detiene ejecución del programa Programas más lentos pero más portables y

flexibles