compilador, traductor,ensamblador

Download Compilador, traductor,ensamblador

If you can't read please download the document

Upload: javier-flores

Post on 11-Aug-2015

58 views

Category:

Documents


3 download

TRANSCRIPT

CARRERA. ING. SISTEMAS COMPUTACIONALES MATERIA. LENGUAJES Y AUTMATAS NOMBRE DEL MAESTRO(A). MC. LORENA SANTOS ESPINOZA NOMBRE DEL ALUMNO JAVIER FLORES MONTALVO GRADO. SEXTO SEMESTRE

AUTOR: JAVIER FLORES MONTALVO

INTRODUCCINPara llevar a cabo la creacin de un lenguaje de programacin (lenguaje artificial) es de suma importancia conocer que es un traductor, intrprete, cargador, ligador, ensamblador y compilador es por eso que en este trabajo e incluido varias definiciones para tener un concepto ms claro de cada uno de los temas que tratare.

QU ES UN TRADUCTOR? DEFINICIN 1Un traductor entre dos lenguajes de programacin, es un programa que realiza una transformacin (una traduccin) entre ellos: el lenguaje de entrada al traductor (lenguaje fuente) y el de salida del traductor (lenguaje destino); el traductor acepta un texto escrito en el lenguaje fuente (representativo de un determinado algoritmo/programa) y emite como salida una representacin de ese mismo algoritmo/programa codificada en el lenguaje destino. El traductor est escrito en un lenguaje de implementacin Li, o tambin llamado host. El proceso de traduccin no altera el significado del programa traducido. El traductor analiza el programa de entrada verificando que est correctamente codificado segn la definicin del lenguaje fuente; si el programa analizado no tiene errores se puede traducir; en caso contrario, el traductor avisa de los errores detectados. La entrada al traductor se denomina programa fuente y la salida programa destino (o tambin cdigo generado por el traductor).

DEFINICIN 2Para facilitar el trabajo de programacin y hacer los programas ms legibles, resolviendo las limitaciones que presentan los lenguajes mquina, se han desarrollado lenguajes de programacin que permiten utilizar una simbologa y terminologa prximas a las tradicionalmente utilizadas en la descripcin de problemas. Estos lenguajes se denominan genricamente lenguajes simblicos. Como la computadora nicamente puede interpretar y ejecutar cdigo mquina, existen programas traductores, que traducen o trasladan programas desde el lenguaje simblico al lenguaje mquina. En general existen traductores para convertir programas escritos en un lenguaje a otro. El programa inicial se denomina programa fuente, y el programa obtenido tras el proceso de traduccin, programa objeto.

AUTOR: JAVIER FLORES MONTALVO

DEFINICIN 3Es un programa que recibe como entrada cdigo escrito en un cierto lenguaje y produce como salida cdigo en otro lenguaje. Generalmente el lenguaje de entrada es de ms alto nivel que el de salida. Ejemplos de traductores son los ensambladores y los compiladores.

DEFINICIN 4Programa que procesa un texto fuente y genera un texto objeto. El traductor est escrito en un lenguaje de implementacin (LI) o tambin denominado lenguaje de host. El texto fuente est escrito en lenguaje fuente (LF), por ejemplo un lenguaje de alto nivel. El texto objeto est escrito en lenguaje objeto (LO), por ejemplo un lenguaje mquina, ensamblador u otro lenguaje de alto nivel.

El lenguaje fuente (LF) es el lenguaje origen que transforma el traductor (por ejemplo C, C++, Pascal, FORTRAN, PL/I, COBOL, ADA, MODULA-2, BASIC, C...). Tambin pueden ser lenguajes de bajo nivel. El lenguaje objeto (LO) es el lenguaje al que se traduce el texto fuente. Los lenguajes objeto pueden ser por ejemplo otro lenguaje de alto nivel, el lenguaje mquina de un microprocesador determinado, un lenguaje ensamblador,... El lenguaje de implementacin (LI) o lenguaje host es el lenguaje en que est escrito el traductor. Puede ser cualquier lenguaje, desde un lenguaje de alto nivel a un lenguaje mquina

PROCESOS DE TRADUCCIN DE UN PROGRAMA

AUTOR: JAVIER FLORES MONTALVO

QU ES UN INTRPRETE? DEFINICIN 1Es un programa que traduce un lenguaje de alto nivel al lenguaje de mquina de una computadora. El programa siempre permanece en su forma original (programa fuente) y traduce cuando est en la fase de ejecucin instruccin por instruccin. El intrprete en los lenguajes de programacin simula una mquina virtual, donde el lenguaje de mquina es similar al lenguaje fuente.

DEFINICIN 2Un intrprete hace que un programa fuente escrito en un lenguaje vaya, sentencia a sentencia, traducindose a cdigo objeto y sea ejecutado directamente por la computadora. El intrprete capta una sentencia fuente y la traduce, expandindola en una o varias instrucciones mquina, que ejecuta inmediatamente, no crendose, por tanto, un fichero o programa objeto almacenable en memoria masiva para posteriores ejecuciones.

DEFINICIN 3Los intrpretes no producen un lenguaje objetivo como en los compiladores. Un intrprete lee el cdigo como est escrito e inmediatamente lo convierte en acciones; es decir, lo ejecuta en ese instante. Existen lenguajes que utilizan un intrprete (como por ejemplo JAVA) que traduce en el instante mismo de lectura el cdigo en lenguaje mquina para que pueda ser ejecutado. La siguiente figura muestra el funcionamiento de un intrprete.

PROCESOS DE UN INTRPRETE

AUTOR: JAVIER FLORES MONTALVO

QU ES UN CARGADOR? DEFINICIN 1La fase siguiente es introducir o cargar el programa absoluto en memoria, y prepararlo para su ejecucin. Estas operaciones las realiza una utilidad denominada cargador. Tradicionalmente las funciones que se asignan a un cargador son las siguientes: 1. Asignar espacio en la memoria principal para el programa. Obviamente esta asignacin debe realizarse en espacios libres. 2. Cada programa o mdulo relocalizable puede hacer llamadas a otros mdulos del programa absoluto. Es necesario ajustar las direcciones de las instrucciones de llamada, de forma que estas queden definidas. Esto no es posible antes de la creacin del mdulo absoluto, ya que cada mdulo relativo no puede conocer a priori dnde se encontrarn los mdulos y sus instrucciones. Una de las funciones de los cargadores tradicionales es realizar estos enlaces. 3. El programa absoluto tiene sus direcciones numeradas de 0 a n (son direcciones relativas). El cargador, teniendo en cuenta las zonas de memoria asignadas (que no necesariamente han de ser contiguas) reajusta las direcciones para que correspondan a direcciones fsicas reales. 4. Pasa las instrucciones de memoria masiva a memoria principal; es decir, realiza la operacin de carga propiamente dicha. En los sistemas actuales las cuatro funciones anteriores pueden estar dispersas en diversos mdulos y no pertenecer todas al cargador.

DEFINICIN 2Un cargador es un programa que coloca en la memoria, para su ejecucin, el programa guardado en algn dispositivo de almacenamiento secundario. Dependiendo de la manera en que se manejen los procesos de liga y de carga, podemos clasificar a los cargadores en: Cargadores iniciales. Indican a la computadora la forma de poner, dentro de la memoria principal, unos datos que estn guardados en un perifrico de memoria externa (cinta, disco, etc.). Sirven para cargar en la memoria pequeos programas que inician el funcionamiento de una computadora.

AUTOR: JAVIER FLORES MONTALVO

Cargadores de arranque Con la mquina vaca e inactiva, no hay necesidad de hacer relocalizacin de programas, tan solo se puede especificar la direccin absoluta del programa que se cargue en primer lugar. Cargadores absolutos. Como ya se mencion el programa cargador pone en memoria las instrucciones guardadas en sistemas externos. Independientemente de que sea un cargador inicial o no, si dichas instrucciones se almacenan siempre en el mismo espacio de memoria (cada vez que se ejecuta el programa cargador), se dice que es un cargador absoluto. Cargadores con relocalizacin. En ocasiones, un mismo programa necesita ejecutarse en diferentes posiciones de memoria. Para esto la traduccin debe estar realizada en forma adecuada, es decir, no utilizando referencias absolutas a direcciones de memoria, sino referencias relativas a una direccin especial llamada direccin de relocalizacin. Cargadores ligadores. Conocidos tambin por su trmino ingls Link editor o simplemente Linker, es muy comn tambin referirse a l por la castellanizacin del nombre ingls, . A la accin de montar se le llama asimismo vulgarmente . Montar un programa consiste en aadir al programa objeto obtenido en la traduccin las rutinas externas a las que hace referencia dicho programa

DEFINICIN 3Un cargador es un programa que coloca en la memoria para su ejecucin, el programa guardado en algn dispositivo de almacenamiento secundario. El cargador consiste en un juego de instrucciones que permiten al dispositivo de entrada (teclado o unidad de cinta) asignar la direccin de inicio de la memoria y asegurar que el computador leer el programa y lo cargara byte a byte.

CULES SON LAS FUNCIONES DE UN CARGADOR?Es un programa del sistema que realiza la carga, pero muchos cargadores tambin incluyen relocalizacin y ligado. Algunos sistemas tienen un ligador(o editor de ligado) para realizar las operaciones de enlace, y un cargador separado para la relocalizacin y la carga.

AUTOR: JAVIER FLORES MONTALVO

TIPOS DE CARGADORES?1. *Carga Absoluta y Relocalizable 2. *Cargadores Estticos 3. *Cargadores Dinmicos

CULES SON LOS CARGADORES DE CARGA ABSOLUTA Y RELOCALIZABLE?*El proceso de carga absoluta consiste en que con la mquina vaca o inactiva no hay necesidad de hacer relocalizacin de programas tan solo se puede especificar la direccin absoluta del programa que se cargue en primer lugar. *Relocalizacin: Los cargadores que permiten la relocalizacin de programas se denominan cargadores relocalizadores o relativos.

QU ES UN CARGADOR DINMICOS?*El cargador dinmico (dld.so) se utiliza para cargar dinmicamente bibliotecas compartidas durante el inicio ejecutable.

PROCESOS DE UN CARGADOR

AUTOR: JAVIER FLORES MONTALVO

QU ES UN LIGADOR?Es un programa que enlaza todos los programas o mdulos obteniendo lo que denominamos programa ejecutable. Un ligador es un programa de sistema que combina dos o ms programas objeto separado y permite que se hagan referencias unos a otros, o sea, que cada uno de estos programas puedan hacer referencia a cdigo variables de los otros programas con los que est enlazado.

CULES SON LAS PRINCIPALES FUNCIONES DE UN LIGADOR?1. Los editores de ligado pueden efectuar varias funciones ltimas adems de la simple preparacin de un programa objeto para su ejecucin. 2. Se pueden utilizar para construir paquetes de subrutinas u otras secciones que suelen utilizar juntas.

CULES SON LOS TIPOS DE LIGADORES?1. EDITORES DE LIGADO. La diferencia fundamental entre un editor de ligado y un cargador ligador es: Primero se ensambla o compila el programa fuente, produciendo un programa objeto (que puede contener varias secciones de control diferentes). 2. LIGADOR DINAMICO. El ligador dinmico ofrece algunas ventajas sobre los otros tipos de ligado. Proporciona la posibilidad de cargar las rutinas slo cuando y si se necesitan. Si las subrutinas son grandes o tienen muchas referencias externas, se pueden conseguir ahorros considerables de tiempo y espacio de memoria. 3. EDITOR DE LIGADO DEL SISTEMA /370. La tcnica de referencia a un nmero se usa para mejorar la eficiencia. El programa de salida del editor de ligado se llama mdulo de carga, y puede cargarse en la memoria para su ejecucin, y suele contener suficiente informacin para permitir que el editor de ligado los reprocese.

CULES SON LOS LIGADORES ESTTICOS?Cuando se utilizan subrutinas en un programa, el cdigo ejecutable de cada una de ellas debe encontrarse en memoria al tiempo de ejecucin. Para esto, antes de cargar un programa, debe ligarse su cdigo objeto con los cdigos objeto (guardados en uno o ms archivos) de cada una de las subrutinas invocadas por l, obteniendo as un programa ejecutable que contiene tanto el cdigo del mdulo invocador como el cdigo de los mdulos invocados.

AUTOR: JAVIER FLORES MONTALVO

CULES SON LOS LIGADORES DINMICOS?Ligado dinmico El ligado dinmico ofrece algunas ventajas sobre los otros tipos de ligado. Proporciona la posibilidad de cargar las rutinas slo cuando y si se necesitan. Si las subrutinas son grandes o tienen muchas referencias externas, se pueden conseguir ahorros considerables de tiempo y espacio de memoria.

PROCESOS DE UN LIGADOR

AUTOR: JAVIER FLORES MONTALVO

QU ES UN ENSAMBLADOR? DEFINICIN 1Ensamblador se refiere a un tipo de programa, informtico que se encarga de traducir un fichero fuente escrito en un lenguaje ensamblador, a un fichero objeto que contiene cdigo mquina ejecutable directamente por la mquina para la que se ha generado, en si la funcin de un ensamblador es traducir un programa en lenguaje de ensamblador al cdigo correspondiente en lenguaje de mquina.

DEFINICIN 2Se define como un lenguaje de programacin que se usa para dar directamente rdenes al ordenador. A diferencia de otros lenguajes, que usan el sistema operativo como intermediario para ejecutar las tareas (le dicen al sistema operativo que haga una cosa y este es quien se encarga de hacrselo saber al ordenador), el lenguaje ensamblador (en ingls assembly) no usa intermediarios, sino que directamente leda las rdenes a la mquina. Conviene diferenciar para no confundirnos por un lado el trmino lenguaje ensamblador, y por otro el trmino ensamblador. El primero sera el lenguaje de programacin como tal, mientras el segundo sera el programa que convierte un fichero escrito en lenguaje ensamblador en cdigo mquina o binario para que le ordenador pueda leerlo.

PROCESO DE UN ENSAMBLADOR

AUTOR: JAVIER FLORES MONTALVO

QU ES UN COMPILADOR? DEFINICIN 1Un compilador es un programa informtico que traduce un programa escrito en un lenguaje de programacin a otro lenguaje de programacin, o tambin genera aplicaciones que sean directamente utilizables en un ordenador o computadora. Un compilador lee el cdigo fuente creado en un determinado lenguaje de programacin, lo interpreta, comprueba su sintaxis y traduce a lenguaje o cdigo mquina toda la serie de instrucciones, generando el archivo ejecutable final (Programa compilado).

TIPOS DE COMPILADORESCompiladores cruzados: generan cdigo para un sistema distinto del que estn funcionando. Compiladores optimizadores: realizan cambios en el cdigo para mejorar su eficiencia, pero manteniendo la funcionalidad del programa original. Compiladores de una sola pasada: generan el cdigo mquina a partir de una nica lectura del cdigo fuente. Compiladores de varias pasadas: necesitan leer el cdigo fuente varias veces antes de poder producir el cdigo mquina. Compiladores JIT (Just In Time): forman parte de un intrprete y compilan partes del cdigo segn se necesitan.

DEFINICIN 2Un compilador es un programa que lee el cdigo escrito en un lenguaje (lenguaje origen), y lo traduce en un programa equivalente escrito en otro lenguaje (lenguaje objetivo). Como una parte fundamental de este proceso de traduccin, el compilador le hace notar al usuario la presencia de errores en el cdigo fuente del programa.

PROCESOS DE UN COMPILADOR

AUTOR: JAVIER FLORES MONTALVO

CONCLUSINUn traductor es el que nos ayuda a darle instrucciones a un ordenador por el cual nosotros empezamos escribiendo un lenguaje de alto nivel mientras el traductor se encarga de traducirlo a un bajo nivel para que de esta manera el ordenador pueda entender lo que queremos que haga. Desde luego que los cargadores y los ligadores son de suma importancia ya que nos ayudan en el trascurso del proceso para poder tener una comunicacin con el ordenador Quiero poner muy en claro que no confundamos el nombre de lenguaje ensamblador y ensamblador ya que el lenguaje ensamblador est enfocado ms al propio lenguaje mientras que el ensamblador es un programa que convierte en fichero escrito en lenguaje ensamblador Par a poder traducir un programa necesitamos la ayuda de un compilador o un interpretador. Unos programadores prefieren utilizar el compilador ya que al final de su proyecto lo que obtienen es un archivo ejecutable y de esa forma poder proteger su cdigo, mientras que otros prefieren usar el interpretador la diferencia es que el interpretador necesita el cdigo para llevar a cabo su ejecucin mientras que el compilador es ms que suficiente el ejecutable.

AUTOR: JAVIER FLORES MONTALVO