Sei sulla pagina 1di 3

Investigación Ensambladores y De compiladores

INVESTIGACIÓN

PARTE 1 (PRESENTAR 25/04/2019)

Del libro "Compiladores principios, técnicas y herramientas", analizar las siguientes partes:

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?

El lenguaje fuente son las lineas de código y el lenguaje destino es el programa terminado y
traducido.

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?

Un intérprete, según la Real Academia de la Lengua Española (RAE), es una persona que explica
a otras, en lengua que entienden, lo dicho en otra que les es desconocida.

Ahora bien, el término “intérprete”, dentro de la informática, es aquel el cual analiza el


programa fuente y lo ejecuta directamente, sin generar ningún código equivalente. Su acción
equivale a la de un intérprete humano, que traduce las frases que oye sobre la marcha, sin
producir ningún escrito permanente.

Y ahora bien ¿Qué es un compilador?

Un compilador es básicamente un traductor. Hablando de manera más técnica es aquel que


analiza el programa fuente y lo traduce a otro equivalente escrito en otro lenguaje (por ejemplo,
en el lenguaje de la máquina). Su acción equivale a la de un traductor humano, que toma un
libro y produce otro equivalente escrito en otra lengua.

Aunque los dos son muy parecidos, intérpretes y compiladores tienen diversas ventajas e
inconvenientes que los hacen complementarios:

 Un intérprete facilita la búsqueda de errores, pues la ejecución de un programa puede


interrumpirse en cualquier momento para estudiar el entorno (valores de las variables,
etc.). Además, el programa puede modificarse sobre la marcha, sin necesidad de volver
a comenzar la ejecución.
 Un compilador suele generar programas más rápidos y eficientes, ya que el análisis del
lenguaje fuente se hace una sola vez, durante la generación del programa equivalente.
En cambio, un intérprete se ve obligado generalmente a analizar cada instrucción tantas
veces como se ejecute (incluso miles o millones de veces).

Ejercicio 1 .1 .3: ¿Qué ventajas hay para un sistema de procesamiento de lenguajes en el cual
el compilador produce lenguaje ensamblador en vez de lenguaje máquina?

El lenguaje ensamblador es todavía más entendible ya que usa símbolos que representan dichas
operaciones, pero este se acerca mucho al lenguaje de una máquina que es el binario.

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?
Bueno a lo que entendí “C” es un lenguaje de medio nivel, pero con muchas características de
bajo nivel y dispone de las estructuras típicas de los lenguajes de alto nivel, pero también
permite control a muy bajo nivel y los compiladores suelen ofrecer extensiones al lenguaje que
posibilitan mezclar código en ensamblador con código C, entonces aquí C utilizaría un
compilador de alto nivel o el source to source.

Ejercicio 1 .1 .5: D escriba algunas de las tareas que necesita realizar un ensamblador.

Es un lenguaje de programación de bajo nivel que Traduce el lenguaje ensamblador a lenguaje


máquina ya que usa código binario usualmente se ocupa para los microprocesadores y utiliza
operaciones aritméticas y lógicas.

Similar al ejemplo 1.1 de la página 2, donde se explica cómo es el proceso de los procesadores
de lenguaje java, investigue un proceso similar del lenguaje javascrip y .net.
Explique cómo funciona un sistema de procesamiento de lenguaje, que hacen cada uno de sus
elementos que lo conforman.

La nueva tecnología de Microsoft ofrece soluciones a los problemas de programación actuales,


como son la administración de código o la programación para Internet. Para aprovechar al
máximo las características de .NET es necesario entender la arquitectura básica en la que esta
implementada esta tecnología y así beneficiarse de todas las características que ofrece esta
nueva plataforma.

El Framework de .NET es una infraestructura sobre la que se reúne todo un conjunto de


lenguajes y servicios que simplifican enormemente el desarrollo de aplicaciones. Mediante esta
herramienta se ofrece un entorno de ejecución altamente distribuido, que permite crear
aplicaciones robustas y escalables.

La plataforma .NET se ejecuta sobre la plataforma hardware. Uno de sus componentes es el


CLR. Todos los otros componentes se ejecutan sobre el CLR y de esta forma son independientes
de la plataforma hardware (siempre que ésta sea Windows).

Sobre el CLR se ejecutan una serie de librerías que son utilizadas por los programas,
simplificando el desarrollo al ofrecer una serie de servicios ya programados, listos para reutilizar.
Hay una librería básica que contiene soporte para estructuras de datos, interoperabilidad con el
código .NET, entre otros servicios. Hay librerías para acceso a bases de datos y XML así como
para interfaz gráfica, tanto para el escritorio como para el Web.

Estas librerías son usadas por los programas compilados. Entre estos programas podemos
destacar a los compiladores para los diferentes lenguajes .NET, que traducen los programas en
cada uno de estos lenguajes a programas compilados.

La plataforma .NET es gratuita y libremente distribuible. Es un requisito imprescindible para


desarrollar y ejecutar los programas .NET y su curva de aprendizaje es lenta, debido a la gran
cantidad de clases existentes en las diferentes librerías.

Potrebbero piacerti anche