1.4 ensambladores y compiladores

40,838 views

Published on

Published in: Education, Technology
3 Comments
5 Likes
Statistics
Notes
No Downloads
Views
Total views
40,838
On SlideShare
0
From Embeds
0
Number of Embeds
392
Actions
Shares
0
Downloads
901
Comments
3
Likes
5
Embeds 0
No embeds

No notes for slide

1.4 ensambladores y compiladores

  1. 1. 1.4 TRADUCTOR Y SU ESTRUCTURA
  2. 2. ¿QUÉ ES UNA TRADUCTOR? <ul><li>Un traductor es un mediador entre dos entidades: emisoras y receptoras, los mediadores enmascaran la complejidad y heterogeneidad de los lenguajes. </li></ul><ul><li>Un traductor convierte un lenguaje de entrada (código fuente) a una de salida (código objeto). </li></ul>
  3. 3. 1. 4. 1 ENSAMBLADORES <ul><li>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. </li></ul><ul><li>Ejemplos: MASM </li></ul>
  4. 4.   FUNCIÓN DE UN ENSAMBLADOR: <ul><li>La tarea fundamental de un ensamblador es traducir un programa en lenguaje de ensamblador al código correspondiente en lenguaje de máquina. </li></ul><ul><li>. </li></ul>
  5. 5. MOTIVOS PARA USAR ENSAMBLADOR <ul><ul><li>Mayor control de la computadora. </li></ul></ul><ul><ul><li>Independencia de lenguaje. </li></ul></ul><ul><ul><li>La mayoría de las computadoras pueden ensamblar. </li></ul></ul><ul><ul><li>Los programas hechos en lenguaje ensamblador son generalmente más rápidos y consumen menos recursos del sistema. </li></ul></ul>
  6. 6. MOTIVOS PARA NO UTILIZAR <ul><li>Demasiado complejo. </li></ul><ul><li>Comprensión más profunda de la computadora. </li></ul><ul><li>Errores más frecuentes en el programa. </li></ul><ul><li>Mayor tiempo de codificación. </li></ul><ul><li>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. </li></ul>
  7. 7. TIPOS DE ENSAMBLADORES <ul><li>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. </li></ul><ul><li>ENSAMBLADORES RESIDENTES: Son aquellas que permanecen en la memoria principal de la computadora y cargar para su ejecución al programa objeto producido. </li></ul>
  8. 8. <ul><li>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. </li></ul><ul><li>MACRO ENSAMBLADORES: Son ensambladores que permiten el uso de macroinstrucciones. </li></ul>
  9. 9. <ul><li>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. </li></ul><ul><li>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. </li></ul>
  10. 10. 1. 4. 2 COMPILADORES <ul><li>Un compilador es querer traducir un programa de un lenguaje de alto nivel, a otro lenguaje de nivel inferior (típicamente  lenguaje máquina). </li></ul><ul><li>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). </li></ul>
  11. 11. FASES DEL COMPILADOR
  12. 12. CLASIFICACIÓN DE COMPILADORES <ul><li>DE UNA PASADA: Examina el código fuente una vez, generando el código o programa objeto. </li></ul><ul><li>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. </li></ul>
  13. 13. <ul><li>COMPILADORES INCREMENTALES: Generan un código objeto, instrucción por instrucción cuando el usuario teclea cada orden individual. </li></ul><ul><li>COMPILADOR CRUZADO: Se genera código en lenguaje objeto para una maquina diferente a la que se esta utilizando para compilar. </li></ul><ul><li>COMPILADOR CON MONTADOR: Compila distintos módulos de forma independiente y después es capaz de aplazarlos. </li></ul>
  14. 14. <ul><li>AUTO COMPILADORES: Compilador que esta escrito en el mismo lenguaje que va a compilar. </li></ul><ul><li>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. </li></ul><ul><li>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. </li></ul>
  15. 15. 1.4.3 INTERPRETES <ul><li>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. </li></ul>
  16. 16. <ul><li>JavaScript, BASIC, LISP, Smalltalk y Python son ejemplos de lenguajes que son normalmente interpretados en vez de compilados. </li></ul>
  17. 17. EL INTÉRPRETE TIENE ESTAS CARACTERÍSTICAS <ul><li>Traduce y ejecuta una línea del programa a la vez. </li></ul><ul><li>Si hay error, detiene ejecución del programa </li></ul><ul><li>Programas más lentos pero más portables y flexibles </li></ul>

×