martes, 22 de febrero de 2011

Traductor - Ensamblador

A fines de la década de los 40, cada programa tenia que estar escrito en lenguaje maquina, el único lenguaje que una computadora puede entender directamente. Todos los usuarios tenían que escribir programas compuestos de largas cadenas de ceros y unos para especificar la dirección de información.
Mas tarde, se desarrollaron programas llamados traductores, los cuales aceptaban como entrada cierto lenguaje simbólico o mnemotécnico para luego convertirlo automáticamente en lenguaje maquina. Estos traductores se conocen como ensambladores. Los sistemas de ensamblador, aunque ahorraban al usuario mucho trabajo, no eran atractivos para la mayoría de los usuarios. Era muy molesto tener que especificar simbólicamente , direcciones y códigos de operaciones. Uno tenía que programar todavía en un lenguaje parecido al lenguaje maquina.
El siguiente paso en la automatización de traducción fue la traducción de uno-a-muchos. El traductor de uno-a-muchos permitía al usuario escribir sus instrucciones en un lenguaje de programación mucho mas conveniente ; cada instrucción era automáticamente traducida a varias instrucciones correspondientes en lenguaje de ensamblador o de maquina. Estos primeros traductores de uno-a-muchos fueron los primeros compiladores FORTRAN y ALGOL .
El programa de traducción que transforma un programa en lenguaje de ensamblaje a un programa equivalente en lenguaje maquina se llama ensamblador.
Las instrucciones al ensamblador se llaman pseudo-instrucciones. Cuando el ensamblador encuentra una pseudo-instrucción lleva a efecto una operación de control en vez de una traducción.
La salida del ensamblador es la entrada a un programa llamado el encadenador que es responsable por la resolución de todas las referencias externas entre programas ensamblados independiente mente.
Las ventajas principales de programación en lenguaje de ensamblaje sobre el lenguaje máquina son, que la escritura de programas es mas natural para el humano, y el programador no tiene que preocuparse por trabajos rutinarios. Por ejemplo, si se insertara una nueva instrucción en algún lugar al principio del programa de lenguaje maquina, seria responsabilidad del programador en lenguaje maquina la de cambiar apropiadamente los campos de dirección de referencia de muchas instrucciones que siguen.

No hay comentarios:

Publicar un comentario