Download - Ensayo
República Bolivariana de Venezuela
Universidad “Fermín Toro”
Facultad de Ingeniería
Escuela de Computación
Cabudare - Estado Lara
Nombre y Apellido:
Alva M Ruiz T
C.I.: 25178462
Cabudare, de Junio de 2015.
Introducción
A continuación desarrollaremos un interesante tópico referente a lo que
conocemos como los compiladores, adentramos en temas tales como los programas
fuente y destino, estableciendo diferencias entre ellos para su fácil distinción;
también ramificamos y explicamos las ventajas para un sistema de procesamiento
de lenguajes en el cual el compilador produce un lenguaje ensamblador en vez de un
lenguaje máquina de una manera clara y concisa, de igual manera se explicaron y
definieron las principales tareas de un compilador. Al siguiente ensayo se le
integraron imágenes para la mayor compresión del lector.
Diferencias entre Programa Fuente y Programa Destino
Programa Fuente Programa Destino
Es un conjunto de líneas de texto que
son las instrucciones que debe seguir la
computadora para ejecutar dicho
programa.
Es el código que resulta de la
compilación del programa fuente.
Está escrito por un programador en
algún lenguaje de programación.
Son caracteres traducidos por los
llamados
compiladores
, ensambladores, intérpretes y otros
sistemas de traducción.
En su primer estado no es
directamente ejecutable por la
computadora.
En su primer estado es ejecutable por
la computadora, porque su estado básico
es siempre funcional para el hardware.
Es el principio fundamental de todo
programa destino, es la base que los crea.
Para obtener un programa ejecutable
se han de enlazar todos los archivos de
código objeto con un programa llamado
enlazador.
Es conocido también como código
fuente.
Es conocido también como código
objeto.
Ventajas para un Sistema de Procesamiento de Lenguajes en el
cual el Compilador Produce un Lenguaje Ensamblador en vez
de un Lenguaje Máquina
Existen diversas ventajas que se pueden mencionar, entre las cuales podemos
mencionar:
La Velocidad: En este caso nos referimos al proceso de transición o cambio que
existe entre un lenguaje y otro, este proceso realizado por los compiladores
exige un proceso de cálculo extraordinario al ya previsto por el programador. Por
ende determinamos que el intérprete se toma más tiempo realizando la misma
acción en el lenguaje de ensamblaje, esto acotando una dificultad agregada de
traducir el programa cada vez que se ejecute. Por otra parte los compiladores son
por mucho más rápidos que los anteriormente mencionados, esto gracias a que
realizan la traducción de manera inmediata convirtiéndolo en lenguaje de
máquina y como resultado final obtenemos un ejecutable rápido.
Tamaño: Tanto los intérpretes como los compiladores tienden a crear mucho
más código objeto del que es necesario para que el programa se ejecute, por
ende el programa crece notablemente, debemos tomar en cuenta que una de
nuestras prioridades es ocupar el menor espacio posible en la memoria para
obtener un proceso más limpio, rápido e eficaz; por esta razón el lenguaje
ensamblador es muy conveniente y efectivo. Es importante mencionar que el
tamaño afecta de manera directa en la velocidad.
Flexibilidad: En este aspecto nos referimos a la ambigüedad de la eficacia a
crear aunque podamos programar en otros lenguajes pero esto afecta nuestro
producto final, aunque la eficacia de nuestro ejecutable se encuentre entre los
parámetros generales siempre nos encontraremos con limitaciones que nos
obligan a realizar ciertos tipos de abstracciones que limitan en gran tamaño la
capacidad neta de nuestra creación.
A un compilador que traduce el lenguaje de alto nivel a otro lenguaje de
alto nivel se llama traductor (source to source) ¿Qué ventajas hay en
cuanto al uso de “C” como lenguaje destino para un compilador?
Se conoce con el término “Source to Source” a los compiladores capaces de
tomar el código fuente de cualquier lenguaje de programación e igualmente pueden
tomar también su entrada y salida del código fuente en otro lenguaje de programación.
Estos programas son sumamente útiles, debido que pueden realizar traducciones entre un
lenguaje de programación y otro, como transformar Pascal en C.
Así mismo estos compiladores Source-to-Source cuentan con la capacidad de
traducir código heredado de un lenguaje de programación para la siguiente versión
del mismo, al igual que cualquier API que desee utilizarse.
Como ventajas del uso de C para el destino de un compilador tenemos:
Es un lenguaje muy eficiente puesto que es posible utilizar sus características de
bajo nivel para realizar implementaciones óptimas.
A pesar de su bajo nivel es el lenguaje más portado en existencia, habiendo
compiladores para casi todos los sistemas conocidos.
Proporciona facilidades para realizar programas modulares y/o utilizar código o
bibliotecas existentes.
Tareas de un Ensamblador
1- Convertir los códigos ("opcode" o mnemónicos: ej. LDA, STX) a su código
equivalente en lenguaje de máquina
2- Convertir los operandos simbólicos (las etiquetas o variables) en las direcciones
correspondientes de los operandos
3- Construir las instrucciones en lenguaje de máquina en el formato apropiado
4- Convertir las constantes definidas en el programa en su verdadera
representación
5- Escribir el "listing" en lenguaje de ensamblador con el código en lenguaje de
máquina correspondiente
6- Procesar las directrices al ensamblador (las directrices son instrucciones o
comandos dirigidos al ensamblador, que éste procesa y ejecuta al hallarlos en el
programa en lenguaje de ensamblador; estas directrices no se traducen a lenguaje
de máquina, si no que el ensamblador ejecuta alguna acción, como reservar
memoria para variables, entre otras).
Conclusión
Mediante la creación, corrección y lectura del presente ensayo pudimos asimilar
distintos aspectos referentes al tema de los compiladores y demás, pudiendo mencionar
entre estos conocimientos las diferencias entre un programa y otro, mientras el programa
fuente es una serie de instrucciones que se le da a computador, el de destino es la
traducción a lenguaje de maquina del programa fuente, además que es importante
mencionar que uno está escrito o es creado por un programador mientras que el otro se
trabaja mediante compiladores e intérpretes.
También pudimos determinar diversas ventajas para un sistema de procesamiento
de lenguajes en el cual el compilador produce un lenguaje ensamblador en vez de un
lenguaje máquina, como lo son la velocidad y el tamaño.
Bibliografía
http://danielrodriguezmonroyvespertinocompiladores.wordpress.com/2012/01/13/q ue-
ventajas-hay-para-un-sistema-de-procesamiento-de-lenguajes-en-el-cual-el- compilador-
produce-un-lenguaje-ensamblador-en-vez-de-un-lenguaje-maquina/
http://hugopa2012.wordpress.com/2012/01/16/hugo-perez-alonso-nocturno-
compiladores-compiladores/
http://www.monografias.com/trabajos12/sofsiste/sofsiste.shtml