Documente Academic
Documente Profesional
Documente Cultură
6 Estructura de un traductor
Traductores
Un traductor es 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.
Un ensamblador es un programa que traduce de un lenguaje ensamblador a lenguaje
mquina, mientras que un compilador es un programa que traduce de un lenguaje de alto
nivel
a
un
lenguaje
de
bajo
nivel
o
a
lenguaje
mquina.
Un traductor es un programa que toma el texto escrito en un lenguaje (el lenguaje fuente) y
lo convierte en el texto equivalente en un segundo lenguaje (el lenguaje destino u objeto).
Si el fuente es un lenguaje abstracto o de alto nivel y si el objetivo es un lenguaje de
ensamble de bajo nivel o de mquina, el traductor es un compilador.
Ensambladores.
Que es ensamblador y para qu sirve?
Cuando se empezaron a utilizar smbolos nmotcnicos, se escribieron programas para
traducir automticamente los programas escritos en lenguaje ensamblador a lenguaje
mquina. A estos programas traductores se les llamo ensambladores.
codificarlo con el lenguaje de alto nivel). Este punto se discute mas adelante en
ensamblador y lenguajes de alto nivel.
http://www.itlp.edu.mx/publica/tutoriales/progsis1/tema22.htm
Tipos de Ensambladores.
Aunque todos los ensambladores realizan bsicamente las mismas tareas, podemos
clasificarlos de acuerdo a caractersticas.
As podemos clasificarlos en:
Ensambladores Residentes.
Macroensambladores.
Microensambladores.
Estos ensambladores leen una lnea del programa fuente y la traducen directamente para
producir una instruccin en lenguaje mquina o la ejecuta si se trata de una
pseudoinstruccin. Tambin va construyendo la tabla de smbolos a medida que van
apareciendo las definiciones de variables, etiquetas, etc.
Debido a su forma de traduccin, estos ensambladores obligan a definir los smbolos antes
de ser empleados para que, cuando aparezca una referencia a un determinado smbolo en
una instruccin, se conozca la direccin de dicho smbolo y se pueda traducir de forma
correcta. Estos ensambladores son sencillos, baratos y ocupan poco espacio, pero tiene el
inconveniente indicado.
http://www.itlp.edu.mx/publica/tutoriales/progsis1/tema221.htm
El proceso de ensamble de uno, dos o ms pasos.
Como se vio en la seccin anterior, existen ensambladores que realizan su tarea en una o
ms fases o pasos.
El proceso de ensamble de un paso consiste en leer una lnea de programa fuente y
traducirla a lenguaje mquina cuando se trata de una instruccin, o se ejecuta si es una
seudoinstruccin.
La tabla de smbolos se va construyendo a medida que se avanza en la lectura de las lneas
del programa fuente.
Para que el ensamble de un paso funciones, todos los smbolos deben estar definidos antes
de emplearse. Esto debido a que, para traducir correctamente cada instruccin, se debe
conocer la direccin de cada uno de los smbolos que intervienen en ella. En otras palabras,
no pueden quedar referencias pendientes porque ya no habr otra oportunidad de
resolverlas.
Tampoco podrn hacerse saltos hacia lneas posteriores. No es posible saltar hacia una lnea
cuya etiqueta todava no ha sido definida.
Para resolver el problema que presenta el proceso de ensamble de un paso, se utiliza el
proceso de ensamble de dos pasos o fases. En la primera fase, se lee el programa fuente y se
construye la tabla de smbolos.
En la segunda fase, se vuelve a leer el programa fuente y se traduce totalmente ya que se
conoce la totalidad de los smbolos utilizados (incluyendo las etiquetas) y las posiciones de
memoria que se les han asignado. Como ya se conocen las direcciones de las etiquetas
utilizadas, pueden realizarse saltos hacia adelante.