Proyecto final monografia de interpretes

Page 1

Monografía Intérpretes.

PROYECTO FINAL. Universidad del Desarrollo Profesional. Ingeniería en Sistemas Computacionales. Elaboro: Víctor Hugo Ibarra Ortiz. Maestro: Dr. Benito Franco Urrea.

Cd. Obregón, Sonora a 08 de Octubre de 2013.


INTERPRETES. INTRODUCCION.

Es el que realiza las operaciones que implica el programa fuente, muchas veces los intérpretes se utilizan para ejecutar lenguajes de órdenes, pues cada operador que se ejecuta en un lenguaje de este tipo suele ser una invocación de una rutina, como un editor o un compilador. Del mismo modo algunos lenguajes de alto nivel son interpretados, porque hay muchas cosas sobre los datos, como el tamaño y la forma de las matrices que no se pueden deducir en el momento de la compilación. Es un traductor que realiza la operación de compilación paso a paso. Para cada sentencia que compone el texto de entrada, se realiza una traducción, ejecuta dicha sentencia y vuelve a iniciar el proceso con la sentencia siguiente. La principal ventaja del proceso de compilación frente al de interpretación es que los programas se ejecutan mucho más rápidamente una vez compilados; por el contrario, es más cómodo desarrollar un programa mediante un intérprete que mediante un compilador puesto que en el intérprete las fases de edición y ejecución están más integradas. La depuración de los programas suele ser más fácil en los intérpretes que en los compiladores puesto que el código fuente está presente durante la ejecución. Estas ventajas pueden incorporarse al compilador mediante la utilización de entornos de desarrollo y depuradores simbólicos en tiempo de ejecución.

Dispositivo o programa que recibe una por una las sentencias de un programa fuente, la analiza y la convierte en lenguaje de maquina si no hay errores en ella. También se puede producir el listado de las instrucciones del programa.

2


Intérpretes vs compiladores Cualquier lenguaje puede ser ejecutado tanto vía intérprete o vía compilador, pero algunos lenguajes suelen asociarse más a una vía que a la otra, y por esto son llamados "lenguajes interpretados" o "lenguajes compilados" respectivamente. También puede darse que un programa contenga partes que son implementadas via intérprete y otras vía compilador. También existen intérpretes que incluyen cierta "compilación" en el medio. Son aquellos que compilan a un código intermedio llamado bytecode, que es más eficiente de ejecutar que hacerlo directamente desde el código fuente. En general, la principal desventaja de los intérpretes, es que cuando un programa es interpretado, suele ejecutarse más lento que si el mismo programa estuviese compilado. Esto se debe a que el intérprete debe analizar cada sentencia en el programa en cada ejecución (un análisis en tiempo real). También el acceso a variables es más lento en un intérprete, porque mapear los indentificadores para almacenar las localizaciones debe hacerse repetidas veces en tiempo real. Intérpretes y Compiladores. Existen dos tipos principales de traductores de los lenguajes de programación de alto nivel: Compilador e intérprete. Existen dos tipos principales de traductores de los lenguajes de programación de alto nivel: 

Compilador, 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. Intérprete, que 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. 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).

3


 Un intérprete permite utilizar funciones y operadores más potentes, como por ejemplo ejecutar código contenido en una variable en forma de cadenas de caracteres. Usualmente, este tipo de instrucciones es imposible de tratar por medio de compiladores. Los lenguajes que incluyen este tipo de operadores y que, por tanto, exigen un intérprete, se llaman interpretativos. Los lenguajes compilativos, que permiten el uso de un compilador, prescinden de este tipo de operadores. Ventajas del intérprete frente al compilador:    

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.

Desventajas del intérprete frente al compilador:  

La ejecución es más lenta, pues cada intrucción debe ser traducida a código máquina tantas veces como sea ejecutada. No son adecuados en la fase de explotación del programa ya que el proceso de interpretación se ha de repetir cada vez que se ejecuta el programa, mientras que con la compilación, una vez obtenido el programa en leguaje máquina éste puede ser ejecutado sin necesidad de compilarlo de nuevo.

4


TIPOS DE INTÉRPRETES. En función de la estructura interna del intérprete se pueden distinguir:      

Intérpretes puros. Intérpretes avanzados. Intérpretes incrementales. Evaluadores parciales. Compiladores “Just in time.” Compilación continúa.

Intérpretes Puros: Analizan y ejecutan todo programa fuente sentencia a sentencia.    

Pensados pata maquinas con limitación de memoria. Si la mitad del programa se producen errores entonces hay que volver a ejecutar desde el inicio. Todas las instrucciones en RI están etiquetadas o consecutivas en una estructura fija (array). El evaluador de instrucciones determina la instrucción que debe ejecutarse y los datos de entrada que necesita o emite un error.

Intérpretes Avanzados: Avanzados o normales.   

Incorporan un paso previo de análisis de todo el programa fuente. Genera posteriormente un lenguaje RI ejecutado por el intérprete. Se usa para lenguajes más avanzados, ya que permite otro tipo de análisis y optimizaciones.

Intérpretes Incrementales. Dirigidos a lenguajes que no pueden compilarse.    

Pueden crear objetos o funciones en tiempo de ejecución (Lisp, Prolog, Smalltalk). Se compilan las partes estáticas. Posteriormente, en tiempo de ejecución se compilan las partes dinámicas requeridas (o recopilan las modificaciones). No producen código objeto independiente, vienen acompañados de módulos que en tiempo de ejecución permiten la compilación (run time system).

5


Evaluadores Parciales (epecializadores).   

Programas con dos tipos de datos de entrada. Se gana eficiencia cuando es conocido que un programa va a ejecutarse muchas veces sobre un mismo conjunto de datos. Binding-time analysis es una técnica para determinar los datos estáticos. Binding time analysis => Análisis del tiempo de unión.

Compiladores “Just in time”   

Surgen con la necesidad de distribuir programas independientes de la máquina. Para evitar la interpretación los códigos de bytes se transforman a código nativo. El código es compilado a código nativo justo en el momento que lo necesita el programa.

6


Python: Python es un lenguaje de scripting independiente de plataforma y orientado a objetos, preparado para realizar cualquier tipo de programa, desde aplicaciones Windows a servidores de red o incluso, páginas web. Es un lenguaje interpretado, lo que significa que no se necesita compilar el código fuente para poder ejecutarlo, lo que ofrece ventajas como la rapidez de desarrollo e inconvenientes como una menor velocidad. SharpDevelop: SharpDevelop es un entorno de desarrollo integrado libre para los lenguajes de programación C#, Visual Basic .NET y Boo. Es usado típicamente por aquellos programadores de los citados lenguajes, que no desean o no pueden usar el entorno de desarrollo de Microsoft, Microsoft Visual Studio. Hay disponible un port para Mono/Gtk#, llamado MonoDevelop, el cual funciona en otros sistemas operativos. Para el completado automático de código, la aplicación incorpora sus propios analizadores sintácticos. La versión 1.1 de la aplicación puede importar proyectos de Visual Studio .NET. La versión 2.0 ya es capaz de editarlos directamente. La versión 3.0 integra soporte para los lenguajes de programación Python y F#.

JavaScript: Javascript es un lenguaje con muchas posibilidades, utilizado para crear pequeños programas que luego son insertados en una página web y en programas más grandes, orientados a objetos mucho más complejos. Con Javascript podemos crear diferentes efectos e interactuar con nuestros usuarios. Este lenguaje posee varias características, entre ellas podemos mencionar que es un lenguaje basado en acciones que posee menos restricciones. Además, es un lenguaje que utiliza Windows y sistemas X-Windows, gran parte de la programación en este lenguaje está centrada en describir objetos, escribir funciones que respondan a movimientos del mouse, aperturas, utilización de teclas, cargas de páginas entre otros.

7


Ruby: Ruby es un lenguaje con un balance cuidado. Su creador, Yukihiro “Matz” Matsumoto, mezcló partes de sus lenguajes favoritos (Perl, Smalltalk, Eiffel, Ada, y Lisp) para formar un nuevo lenguaje que incorporara tanto la programación funcional como la programación imperativa. A menudo ha manifestado que está “tratando de hacer que Ruby sea natural, no simple”, de una forma que se asemeje a la vida real. Continuando sobre esto, agrega: Ruby es simple en apariencia, pero complejo por dentro, como el cuerpo humano.

Pearl: Perl es un lenguaje de programación interpretado, al igual que muchos otros lenguajes de Internet como Javascript o ASP. Esto quiere decir que el código de los scripts en Perl no se compila sino que cada vez que se quiere ejecutar se lee el código y se pone en marcha interpretando lo que hay escrito. Además es extensible a partir de otros lenguajes, ya que desde Perl podremos hacer llamadas a subprogramas escritos en otros lenguajes. También desde otros lenguajes podremos ejecutar código Perl.

Y muchos más:

8


CONCLUSION:

El funcionamiento de un intérprete se caracteriza por traducir y ejecutar, de una en una, las instrucciones del código fuente de un programa, pero, sin generar como salida código objeto. El proceso que realiza un intérprete es el siguiente: lee la primera instrucción del código fuente, la traduce a código objeto y la ejecuta; a continuación, hace lo mismo con la segunda instrucción; y así sucesivamente, hasta llegar a la última instrucción del programa, siempre y cuando, no se produzca ningún error que detenga el proceso. Es muy útil saber cómo se hace un intérprete o un compilador, porque esto permite a los programadores tener una idea de lo que hacen los programas de alto nivel, lo que a su vez, ayudará a los programadores para crear código más eficiente.

9


BIBLIOGRAFIA.

http://renteria83.blogspot.mx/2010/04/interpretes.html http://www.alegsa.com.ar/Dic/interprete.php http://www.todo-programacion.com.ar/archives/2005/04/interpretes_y_c.html http://enciclopedia.us.es/index.php/Int%C3%A9rprete_inform%C3%A1tico http://www.desarrolloweb.com/articulos/1325.php http://www.taringa.net/posts/ciencia-educacion/13870857/Programando-ensharpdevelop.html http://www.maestrosdelweb.com/editorial/%C2%BFque-es-javascript/ https://www.ruby-lang.org/es/about/ http://www.desarrolloweb.com/articulos/541.php

10


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.