1

Clasificación de los Interpretes

Pedro Antonio Villalta
https://plus.google.com/u/0/105223072803758915793/about

Mis R...
Pasa por mis blog y deja tus comentarios
1. http://compiladores-interpretes.blogspot.com/
2. http://programacion-visualbas...
Introducción a Compiladores e Interpretes

3

Concepto de Interprete
• En lugar de producir un programa objeto como result...
Introducción a Compiladores e Interpretes

4

Comportamiento de un Interprete
• Un intérprete es como un compilador, solo ...
Introducción a Compiladores e Interpretes

5

Resultado del Interprete
Programa
Fuente

Intérprete

Datos

Salida
Introducción a Compiladores e Interpretes

6

Ventajas de los Interpretes
• Su

principal ventaja es que permiten una fáci...
Introducción a Compiladores e Interpretes

7

Ventajas de los Interpretes
* Un

Intérprete necesita menos memoria que un
c...
Introducción a Compiladores e Interpretes

8

Desventajas de los Interpretes
• Lentitud de ejecución, ya que al ejecutar a...
Introducción a Compiladores e Interpretes

Clasificación de Intérpretes
• Intérpretes Puros
• Interpretes Avanzados
• Inte...
Introducción a Compiladores e Interpretes

10

Intérpretes Puros
• Los intérpretes puros son los que analizan una sentenci...
Introducción a Compiladores e Interpretes

11

Funcionamiento del Intérprete Puro
Introducción a Compiladores e Interpretes

12

Explicación del Interprete Puro
• En la figura se representa el esquema gen...
Introducción a Compiladores e Interpretes

13

Explicación del Interprete Puro
• Mientras se realiza este paso se puede co...
Introducción a Compiladores e Interpretes

14

Explicación del Interprete Puro
• El evaluador de instrucciones también det...
Introducción a Compiladores e Interpretes

15

Interpretes Avanzados
•

Los intérpretes avanzados o normales incorporan un...
Introducción a Compiladores e Interpretes

16

Funcionamiento del Intérprete Avanzado
Introducción a Compiladores e Interpretes

17

Explicación del Interprete Avanzado
• Un ejemplo de intérprete avanzado es ...
Introducción a Compiladores e Interpretes

18

Explicación del Interprete Avanzado
• Esto permite que el bytecode se ejecu...
Introducción a Compiladores e Interpretes

19

Interpretes Incrementales
•

Algunos lenguajes no se pueden compilar, debid...
Introducción a Compiladores e Interpretes

20

Interpretes Incrementales
• Los intérpretes incrementales tienen gran inter...
Upcoming SlideShare
Loading in...5
×

Clasificacion de Interpretes

2,538

Published on

Concepto de Interprete,Clasificación de Intérpretes,Ventajas de los Interpretes

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
2,538
On Slideshare
0
From Embeds
0
Number of Embeds
22
Actions
Shares
0
Downloads
20
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Clasificacion de Interpretes

  1. 1. 1 Clasificación de los Interpretes Pedro Antonio Villalta https://plus.google.com/u/0/105223072803758915793/about Mis Redes Sociales Facebook.com/pavillalta twitter.com/pavillalta Mis Correos pavillalta@gmail.com pavillalta@ugb.edu.sv Introducción a Compiladores e Interpretes
  2. 2. Pasa por mis blog y deja tus comentarios 1. http://compiladores-interpretes.blogspot.com/ 2. http://programacion-visualbasic-net.blogspot.com/ 3. http://ingenieria-en-sistemas-informaticos.blogspot.com/ 4. http://investigacion-cientifica-docente.blogspot.com/ 5. http://soporteredes.blogspot.com/ 6. http://ecomerce-comercio-electronico.blogspot.com/ 7. http://miw2012.blogspot.com/ 8. http://programacion-visual-c-net.blogspot.com/ 9. http://programacion-web-php.blogspot.com/ 10. http://programacion-moviles.blogspot.com/
  3. 3. Introducción a Compiladores e Interpretes 3 Concepto de Interprete • En lugar de producir un programa objeto como resultado de una traducción, un intérprete realiza las operaciones que implica el programa fuente. • Un intérprete no genera un programa equivalente, sino que toma una sentencia del programa fuente en un lenguaje de alto nivel, la traduce al código equivalente y al mismo tiempo la ejecuta. • Un intérprete es un programa que analiza y ejecuta simultáneamente el programa fuente, es decir no producen un código objeto, siendo su ejecución simultánea a la del programa fuente.
  4. 4. Introducción a Compiladores e Interpretes 4 Comportamiento de un Interprete • Un intérprete es como un compilador, solo que la salida es una ejecución. El programa de entrada se reconoce y ejecuta a la vez. No se produce un resultado físico (código máquina) sino lógico (una ejecución). • Además de que la traducción optimiza el programa acercándolo a la máquina, los lenguajes interpretados tienen la característica de que permiten construir programas que se pueden modificar a sí mismos.
  5. 5. Introducción a Compiladores e Interpretes 5 Resultado del Interprete Programa Fuente Intérprete Datos Salida
  6. 6. Introducción a Compiladores e Interpretes 6 Ventajas de los Interpretes • Su principal ventaja es que permiten una fácil depuración. Permiten una mayor interactividad con el código en tiempo de desarrollo. • En algunos lenguajes (Smalltalk, Prolog, LISP) está permitido y es frecuente añadir código según se ejecuta otro código, y esta característica solamente es posible implementarla en un intérprete. • Puede ser interrumpido con facilidad. • Puede ser rápidamente modificado y ejecutado nuevamente.
  7. 7. Introducción a Compiladores e Interpretes 7 Ventajas de los Interpretes * Un Intérprete necesita menos memoria que un compilador. * Facilita la búsqueda de errores. * En algunos lenguajes está permitido añadir código según se ejecuta otro código. * Menor consumo de memoria.
  8. 8. Introducción a Compiladores e Interpretes 8 Desventajas de los Interpretes • Lentitud de ejecución, ya que al ejecutar a la vez que se traduce no puede aplicarse un alto grado de optimización. Cada instrucción debe ser traducida a código máquina tantas veces como sea ejecutada • Durante la ejecución, el intérprete debe residir en memoria ya que no genera código objeto. • Tamaño del programa objeto, que exige añadir el intérprete al programa propiamente dicho.
  9. 9. Introducción a Compiladores e Interpretes Clasificación de Intérpretes • Intérpretes Puros • Interpretes Avanzados • Interpretes Incrementales 9
  10. 10. Introducción a Compiladores e Interpretes 10 Intérpretes Puros • Los intérpretes puros son los que analizan una sentencia y la ejecutan, y así sucesivamente todo el programa fuente. Fueron los intérpretes desarrollados en la primera generación de ordenadores, pues permitían la ejecución de largos programas con ordenadores de memoria muy reducida, ya que sólo debían contener en memoria el intérprete y la sentencia a analizar y ejecutar. • El principal problema de este tipo de intérpretes es que si a mitad del programa fuente se producen errores, se debe de reiniciar el proceso.
  11. 11. Introducción a Compiladores e Interpretes 11 Funcionamiento del Intérprete Puro
  12. 12. Introducción a Compiladores e Interpretes 12 Explicación del Interprete Puro • En la figura se representa el esquema general de un intérprete puro, donde se puede observar que el lenguaje fuente se traduce a una representación interna (texto o binaria) que puede ser almacenada en memoria o en disco. • Esta representación interna tiene todas las instrucciones numeradas o colocadas consecutivamente en estructuras de tamaño fijo (por ejemplo un array o posiciones consecutivas de memoria, o un fichero binario de estructuras de tamaño fijo).
  13. 13. Introducción a Compiladores e Interpretes 13 Explicación del Interprete Puro • Mientras se realiza este paso se puede construir la tabla de etiquetas, que es una tablas que contiene una estructura donde están todas las etiquetas y su posición en el programa fuente (las etiquetas se utilizan tanto en las instrucciones de salto como en las llamadas a procedimientos y funciones). • Una vez que este proceso ha finalizado, comienza la ejecución por la primera instrucción del código, que se envía al evaluador de instrucciones, éste la ejecuta (recibiendo datos si es necesario o enviando un mensaje de error).
  14. 14. Introducción a Compiladores e Interpretes 14 Explicación del Interprete Puro • El evaluador de instrucciones también determina la instrucción siguiente a ejecutar, en algunos casos previa consulta a la tabla de etiquetas. En el caso de que no haya saltos (GOTO) o llamadas a procedimientos o funciones se ejecuta la siguiente instrucción a la instrucción en curso. • El evaluador de instrucciones puede utilizar dos métodos de evaluación. El método clásico es la evaluación voraz o ansiosa, donde se evalúan las expresiones completamente. Otro método es la evaluación perezosa, evaluándose sólo la parte necesaria de la expresión (el resto no se evalúa).
  15. 15. Introducción a Compiladores e Interpretes 15 Interpretes Avanzados • Los intérpretes avanzados o normales incorporan un paso previo de análisis de todo el programa fuente. Generando posteriormente un lenguaje intermedio que es ejecutado por ellos mismos. • De esta forma en caso de errores sintácticos no pasan de la fase de análisis.
  16. 16. Introducción a Compiladores e Interpretes 16 Funcionamiento del Intérprete Avanzado
  17. 17. Introducción a Compiladores e Interpretes 17 Explicación del Interprete Avanzado • Un ejemplo de intérprete avanzado es el que utiliza el lenguaje Java. Así un programa en lenguaje java (con la extensión .java) se compila y produce uno o varios ficheros con la extensión .class, estos ficheros están en un formato binario denominado bytecode independiente de plataforma, que se interpreta posteriormente.
  18. 18. Introducción a Compiladores e Interpretes 18 Explicación del Interprete Avanzado • Esto permite que el bytecode se ejecute en cualquier sistema operativo que disponga de un intérprete de bytecode. Dado que la mayor parte de los navegadores de Internet llevan inmerso un intérprete de bytecode, esto ha permitido al lenguaje Java ser uno de los más utilizados en aplicaciones que usen Internet.
  19. 19. Introducción a Compiladores e Interpretes 19 Interpretes Incrementales • Algunos lenguajes no se pueden compilar, debido a que entre sus características pueden manejar objetos o funciones que no son conocidos en tiempo de compilación, ya que son creados en ejecución. Para este tipo de lenguajes existen los intérpretes incrementales, que permiten compilar los módulos completamente definidos, y recompilar en tiempo de ejecución los nuevos módulos.
  20. 20. Introducción a Compiladores e Interpretes 20 Interpretes Incrementales • Los intérpretes incrementales tienen gran interés en los lenguajes que permiten no definir los problemas completamente en tiempo de compilación. En estos casos se utilizan evaluadores parciales que toman como entrada el programa fuente junto con algunos datos (pero no todos), realizándose los cálculos que se pueden hacer con dicho subconjunto de datos, y produciendo una salida que contiene un residuo del programa fuente que se ha introducido.
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×