Investigación Ensambladores y Decompiladores


Pontificia Universidad Católica del Ecuador Sede Ibarra
Compiladores
Nombre: Franklin Pazmiño
Fecha: 25/04/2019

Resolver los ejercicios de la sección 1.1 página 3

Ejercicio 1 .1 .1 : ¿Cuál es la diferencia entre un compilador y un intérprete?
Un intérprete traduce instrucciones de alto nivel en una forma intermedia para ser ejecutado. En contraste, un compilador, traduce instrucciones de alto nivel directamente en lenguaje de máquina.
Ejercicio 1 .1 .2 : ¿Cuáles son las ventajas de (a) un compilador sobre un intérprete, y (b) las
de un intérprete sobre un compilador?
(a)
Se compila una vez, se ejecuta n veces.
En bucles, la compilación genera código equivalente al bucle, pero interpretándolo se traduce tantas veces una línea como veces se repite el bucle.
(b)
• El programa se puede ejecutar de inmediato, sin esperar a ser compilado.
• Puede ser interrumpido con facilidad.
• puede ser rápidamente modificado y ejecutado nuevamente.
• Resultan muy apropiados durante la fase de desarrollo de un programa, ya que la compilación no permite la ejecución paso a paso del programa y con ello impide la edición seguimiento y depuración del programa
Ejercicio 1 .1 .3 : ¿Qué ventajas hay para un sistema de procesamiento de lenguajes en el cual el compilador produce lenguaje ensamblador en vez d e lenguaje máquina?
-Velocidad

El proceso de traducción que realizan los intérpretes, implica un proceso de cómputo adicional al que el programador quiere realizar.
-Tamaño
Los compiladores e intérpretes generan más código máquina del necesario; por ello, el programa ejecutable crece. Así, cuando es importante reducir el tamaño del ejecutable, mejorando el uso de la memoria y teniendo también beneficios en velocidad, puede convenir usar el lenguaje Ensamblador.
-Flexibilidad
Las razones anteriores son cuestión de grado: podemos hacer las cosas en otro lenguaje, pero queremos hacerlas más eficientemente. Pero todos los lenguajes de alto nivel tienen limitantes en el control; al hacer abstracciones, limitan su propia capacidad
Ejercicio 1 .1 .4 : A un compilador que traduce un lenguaje de alto nivel a otro lenguaje de
alto nivel se le llama traductor de source-to-source. ¿Qué ventajas hay en cuanto al uso de C
como lenguaje destino para un compilador?
-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.
Ejercicio 1 .1 .5 : Describa algunas de las tareas que necesita realizar un ensamblador.
Convertir los códigos (“opcode” o mnemónicos: ej. LDA, STX) a su código equivalente en lenguaje de máquina
Convertir los operandos simbólicos (las etiquetas o variables) en las direcciones correspondientes de los operandos
Construir las instrucciones en lenguaje de máquina en el formato apropiado
Convertir las constantes definidas en el programa en su verdadera representación
Escribir el “listing” en lenguaje de ensamblador con el código en lenguaje de máquina correspondiente

Similar al ejemplo 1.1 de la página 2, donde de explica como es el proceso de los procesadores de lenguaje java, investigue un proceso similar del lenguaje javascrip y .net.

JavaScript es un lenguaje de programación de scripts (secuencia de comandos) orientado
a objetos. Esta descripción es un poco rudimentaria, hay varios elementos que vamos a
diseccionar.
Y cuando decimos que JavaScript es un lenguaje
interpretado, lo que significa que es un lenguaje interpretado. Por tanto, es necesario contar
con un intérprete para ejecutar código Javascript, y el intérprete que se utiliza una frecuencia:
se incluye en tu navegador de internet.
.NET
ofrece un entorno gestionado de ejecución de aplicaciones, lenguajes de programación y compiladores, y permite el desarrollo de todo tipo de funcionalidades: desde programas de consola o servicios Windows, hasta aplicaciones para dispositivos móviles pasando por desarrollos de escritorio o para Internet.
Explique como funciona un sistema de procesamiento de lenguaje, que hacen cada uno de sus elementos que lo conforman.

Se ocupa de la formulación e investigación de mecanismos eficaces computacionalmente para la comunicación entre personas y máquinas por medio del lenguaje natural

Un sistema de información (SI) es un conjunto de elementos orientados al tratamiento y administración de datos e información, organizados y listos para su uso posterior, generados para cubrir una necesidad o un objetivo. Dichos elementos formarán parte de alguna de las siguientes categorías:

Personas;
Actividades o técnicas de trabajo;
Datos;

Recursos materiales en general [(Papel, lápices, libros, carpetas, etc. Estas actividades de recolección y procesamiento de información, eran actividades manuales y solo con la llegada de la tecnología (computadoras, Internet, etc.) se han convertido en sistemas con recursos informáticos y de comunicación).


Comentarios

Entradas populares de este blog

Instalar Compilador Cruzado (cross-compiler) en Linux (Debian) PC

Fortran con el compilador Gfortran