SlideShare una empresa de Scribd logo
1 de 20
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
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/
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.
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.
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á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.
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.
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.
Introducción a Compiladores e Interpretes

Clasificación de Intérpretes
• Intérpretes Puros
• Interpretes Avanzados
• Interpretes Incrementales

9
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.
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 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).
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).
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).
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.
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 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.
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.
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.
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.

Más contenido relacionado

La actualidad más candente

Elementos de los sistemas operativos
Elementos de los sistemas operativosElementos de los sistemas operativos
Elementos de los sistemas operativos
Jonnathan19xix
 
Administración de Transacciones - del tema 1 al 4
Administración de Transacciones - del tema 1 al 4Administración de Transacciones - del tema 1 al 4
Administración de Transacciones - del tema 1 al 4
Mayito Pdg
 

La actualidad más candente (20)

Administración de Memoria
Administración de MemoriaAdministración de Memoria
Administración de Memoria
 
Analizar mediante-ejemplos-de-la-vida-real-el-concepto-de-procesos
Analizar mediante-ejemplos-de-la-vida-real-el-concepto-de-procesosAnalizar mediante-ejemplos-de-la-vida-real-el-concepto-de-procesos
Analizar mediante-ejemplos-de-la-vida-real-el-concepto-de-procesos
 
Tecnicas de Administracion de Memoria
Tecnicas de Administracion de MemoriaTecnicas de Administracion de Memoria
Tecnicas de Administracion de Memoria
 
Sistemas Operativos I- Algoritmo de QUANTUM
Sistemas Operativos I- Algoritmo de QUANTUMSistemas Operativos I- Algoritmo de QUANTUM
Sistemas Operativos I- Algoritmo de QUANTUM
 
Ensamblador y lenguaje c
Ensamblador y lenguaje cEnsamblador y lenguaje c
Ensamblador y lenguaje c
 
Tolerancia a fallos
Tolerancia a fallosTolerancia a fallos
Tolerancia a fallos
 
Modelos de arquitecturas de computadoras
Modelos de arquitecturas de computadorasModelos de arquitecturas de computadoras
Modelos de arquitecturas de computadoras
 
Transacciones
TransaccionesTransacciones
Transacciones
 
Estándares para el Modelado de Procesos de Negocios
Estándares para el Modelado de Procesos de NegociosEstándares para el Modelado de Procesos de Negocios
Estándares para el Modelado de Procesos de Negocios
 
Elementos de los sistemas operativos
Elementos de los sistemas operativosElementos de los sistemas operativos
Elementos de los sistemas operativos
 
Arquitecturas risc y cisc
Arquitecturas risc y ciscArquitecturas risc y cisc
Arquitecturas risc y cisc
 
Lectores y escritores
Lectores y escritoresLectores y escritores
Lectores y escritores
 
UNIDAD 1 INTRODUCCIÓN AL LENGUAJE ENSAMBLADOR
UNIDAD 1 INTRODUCCIÓN AL LENGUAJE ENSAMBLADORUNIDAD 1 INTRODUCCIÓN AL LENGUAJE ENSAMBLADOR
UNIDAD 1 INTRODUCCIÓN AL LENGUAJE ENSAMBLADOR
 
Portafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regulares
Portafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regularesPortafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regulares
Portafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regulares
 
Lenguaje ensamblador
Lenguaje ensambladorLenguaje ensamblador
Lenguaje ensamblador
 
Administración de Transacciones - del tema 1 al 4
Administración de Transacciones - del tema 1 al 4Administración de Transacciones - del tema 1 al 4
Administración de Transacciones - del tema 1 al 4
 
Procesos en windows
Procesos en windowsProcesos en windows
Procesos en windows
 
Implementación de hilos
Implementación de hilos Implementación de hilos
Implementación de hilos
 
automatas finitos
 automatas finitos automatas finitos
automatas finitos
 
Cuadro comparativo
Cuadro comparativoCuadro comparativo
Cuadro comparativo
 

Similar a Clasificacion de Interpretes

Investigación Ensambladores y Decompiladores
Investigación Ensambladores y DecompiladoresInvestigación Ensambladores y Decompiladores
Investigación Ensambladores y Decompiladores
RubnPilca
 
Introduccion a los lenguajes de programacion
Introduccion a los lenguajes de programacionIntroduccion a los lenguajes de programacion
Introduccion a los lenguajes de programacion
lupitagarcia07
 
Tutorial de prolog
Tutorial de prologTutorial de prolog
Tutorial de prolog
Ivan
 
Actividad 3 programacion de sistemas
Actividad 3 programacion de sistemasActividad 3 programacion de sistemas
Actividad 3 programacion de sistemas
JESSIKADG86
 

Similar a Clasificacion de Interpretes (20)

Clase2 clasificacion de interpretes
Clase2 clasificacion de interpretesClase2 clasificacion de interpretes
Clase2 clasificacion de interpretes
 
Lenguajes de programacion tema 2_compiladores e interpretes
Lenguajes de programacion tema 2_compiladores e interpretesLenguajes de programacion tema 2_compiladores e interpretes
Lenguajes de programacion tema 2_compiladores e interpretes
 
Investigación Ensambladores y Decompiladores
Investigación Ensambladores y DecompiladoresInvestigación Ensambladores y Decompiladores
Investigación Ensambladores y Decompiladores
 
Ensambladores y Compiladores
Ensambladores y CompiladoresEnsambladores y Compiladores
Ensambladores y Compiladores
 
Introduccion Java.ppt
Introduccion Java.pptIntroduccion Java.ppt
Introduccion Java.ppt
 
01 T1 2021 Sistemas Embebidos.pptx
01 T1 2021 Sistemas Embebidos.pptx01 T1 2021 Sistemas Embebidos.pptx
01 T1 2021 Sistemas Embebidos.pptx
 
Python
PythonPython
Python
 
01 - Introducción al lenguaje de programación Python 3
01 - Introducción al lenguaje de programación Python 301 - Introducción al lenguaje de programación Python 3
01 - Introducción al lenguaje de programación Python 3
 
Gestión Remota de Equipos con Python
Gestión Remota de Equipos con PythonGestión Remota de Equipos con Python
Gestión Remota de Equipos con Python
 
lenguaje c.ppt
lenguaje c.pptlenguaje c.ppt
lenguaje c.ppt
 
PowerPoint Programación
PowerPoint ProgramaciónPowerPoint Programación
PowerPoint Programación
 
PowerPoint (Programación)
PowerPoint (Programación)PowerPoint (Programación)
PowerPoint (Programación)
 
Unidad 1 el pseudocodigo
Unidad 1 el pseudocodigoUnidad 1 el pseudocodigo
Unidad 1 el pseudocodigo
 
PowerPoint Programación
PowerPoint ProgramaciónPowerPoint Programación
PowerPoint Programación
 
Introduccion a los lenguajes de programacion
Introduccion a los lenguajes de programacionIntroduccion a los lenguajes de programacion
Introduccion a los lenguajes de programacion
 
Tercera unidad
Tercera unidadTercera unidad
Tercera unidad
 
Modulo 1
Modulo 1Modulo 1
Modulo 1
 
Tutorial de prolog
Tutorial de prologTutorial de prolog
Tutorial de prolog
 
Actividad 3 programacion de sistemas
Actividad 3 programacion de sistemasActividad 3 programacion de sistemas
Actividad 3 programacion de sistemas
 
Unidad ad 3
Unidad ad 3Unidad ad 3
Unidad ad 3
 

Más de Pedro Antonio Villalta (Pavillalta)

Más de Pedro Antonio Villalta (Pavillalta) (20)

Descargar Java JDK, Netbeans y Java ME para Desarrollo de Aplicaciones Moviles
Descargar Java JDK, Netbeans y Java ME para Desarrollo de Aplicaciones MovilesDescargar Java JDK, Netbeans y Java ME para Desarrollo de Aplicaciones Moviles
Descargar Java JDK, Netbeans y Java ME para Desarrollo de Aplicaciones Moviles
 
Primer Ejemplo de Proyecto en Android Studio
Primer Ejemplo de Proyecto en Android StudioPrimer Ejemplo de Proyecto en Android Studio
Primer Ejemplo de Proyecto en Android Studio
 
Herramientas para Desarrollo de Aplicaciones Moviles
Herramientas para Desarrollo de Aplicaciones MovilesHerramientas para Desarrollo de Aplicaciones Moviles
Herramientas para Desarrollo de Aplicaciones Moviles
 
Vtiger CRM, Software para Inteligencia de Negocios
Vtiger CRM, Software para Inteligencia de NegociosVtiger CRM, Software para Inteligencia de Negocios
Vtiger CRM, Software para Inteligencia de Negocios
 
Introduccion a Lenguaje HTML, Programacion Web
Introduccion a Lenguaje HTML, Programacion WebIntroduccion a Lenguaje HTML, Programacion Web
Introduccion a Lenguaje HTML, Programacion Web
 
32- Android, Desarrollo de Aplicaciones Moviles, Importancia del Mockup
32- Android, Desarrollo de Aplicaciones Moviles, Importancia del Mockup32- Android, Desarrollo de Aplicaciones Moviles, Importancia del Mockup
32- Android, Desarrollo de Aplicaciones Moviles, Importancia del Mockup
 
31-Android Generalidades Sobre Servicios Webs con MySQL
31-Android Generalidades Sobre Servicios Webs con MySQL31-Android Generalidades Sobre Servicios Webs con MySQL
31-Android Generalidades Sobre Servicios Webs con MySQL
 
Controles y Objetos Android Studio (Actualizada 2016)
Controles y Objetos Android Studio (Actualizada 2016)Controles y Objetos Android Studio (Actualizada 2016)
Controles y Objetos Android Studio (Actualizada 2016)
 
Entorno-de-Desarrollo-Android-Studio
Entorno-de-Desarrollo-Android-StudioEntorno-de-Desarrollo-Android-Studio
Entorno-de-Desarrollo-Android-Studio
 
Instalacion-y-Configuracion-de-Android-Studio-con-Genymotion
Instalacion-y-Configuracion-de-Android-Studio-con-GenymotionInstalacion-y-Configuracion-de-Android-Studio-con-Genymotion
Instalacion-y-Configuracion-de-Android-Studio-con-Genymotion
 
Generalidades-de-Android-Estudio
Generalidades-de-Android-EstudioGeneralidades-de-Android-Estudio
Generalidades-de-Android-Estudio
 
Entornos-de-Desarrollo-Eclipse-y-Android-SDK
Entornos-de-Desarrollo-Eclipse-y-Android-SDKEntornos-de-Desarrollo-Eclipse-y-Android-SDK
Entornos-de-Desarrollo-Eclipse-y-Android-SDK
 
Conceptos y Generalidades de Android
Conceptos y Generalidades de AndroidConceptos y Generalidades de Android
Conceptos y Generalidades de Android
 
Capitulo I Cisco CCNA1: La vida en un mundo centrado en la red
Capitulo I Cisco CCNA1: La vida en un mundo centrado en la redCapitulo I Cisco CCNA1: La vida en un mundo centrado en la red
Capitulo I Cisco CCNA1: La vida en un mundo centrado en la red
 
Foro de Conceptos y Generalidades Sobre Redes de Computadoras TIS
Foro de Conceptos y Generalidades Sobre Redes de Computadoras TISForo de Conceptos y Generalidades Sobre Redes de Computadoras TIS
Foro de Conceptos y Generalidades Sobre Redes de Computadoras TIS
 
Cuestionario de Conceptos Básicos Sobre Redes de Computadoras ING
Cuestionario de Conceptos Básicos Sobre Redes de Computadoras INGCuestionario de Conceptos Básicos Sobre Redes de Computadoras ING
Cuestionario de Conceptos Básicos Sobre Redes de Computadoras ING
 
Capas del Modelo OSI y sus Funciones
Capas del Modelo OSI y sus FuncionesCapas del Modelo OSI y sus Funciones
Capas del Modelo OSI y sus Funciones
 
Cosas que solo pasan en El Salvador
Cosas que solo pasan en El SalvadorCosas que solo pasan en El Salvador
Cosas que solo pasan en El Salvador
 
Compiladores, Analisis Lexico, Tabla de Transiciones
Compiladores, Analisis Lexico, Tabla de TransicionesCompiladores, Analisis Lexico, Tabla de Transiciones
Compiladores, Analisis Lexico, Tabla de Transiciones
 
Publicar en Facebook, Twitter, Linkedind y Google+ con Hoot Suite
Publicar en Facebook, Twitter, Linkedind y Google+ con Hoot SuitePublicar en Facebook, Twitter, Linkedind y Google+ con Hoot Suite
Publicar en Facebook, Twitter, Linkedind y Google+ con Hoot Suite
 

Último

TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
jlorentemartos
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Fernando Solis
 
Proyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdfProyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdf
patriciaines1993
 
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACIONRESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
amelia poma
 

Último (20)

Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
 
Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024
 
Los avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtualesLos avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtuales
 
Biografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdfBiografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdf
 
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
 
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
 
SESION DE PERSONAL SOCIAL. La convivencia en familia 22-04-24 -.doc
SESION DE PERSONAL SOCIAL.  La convivencia en familia 22-04-24  -.docSESION DE PERSONAL SOCIAL.  La convivencia en familia 22-04-24  -.doc
SESION DE PERSONAL SOCIAL. La convivencia en familia 22-04-24 -.doc
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
 
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docxPLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
 
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIASISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
 
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICABIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
 
Proyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdfProyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdf
 
Usos y desusos de la inteligencia artificial en revistas científicas
Usos y desusos de la inteligencia artificial en revistas científicasUsos y desusos de la inteligencia artificial en revistas científicas
Usos y desusos de la inteligencia artificial en revistas científicas
 
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACIONRESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
 
Tema 11. Dinámica de la hidrosfera 2024
Tema 11.  Dinámica de la hidrosfera 2024Tema 11.  Dinámica de la hidrosfera 2024
Tema 11. Dinámica de la hidrosfera 2024
 
Posición astronómica y geográfica de Europa.pptx
Posición astronómica y geográfica de Europa.pptxPosición astronómica y geográfica de Europa.pptx
Posición astronómica y geográfica de Europa.pptx
 
La Sostenibilidad Corporativa. Administración Ambiental
La Sostenibilidad Corporativa. Administración AmbientalLa Sostenibilidad Corporativa. Administración Ambiental
La Sostenibilidad Corporativa. Administración Ambiental
 
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLAACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
 
FUERZA Y MOVIMIENTO ciencias cuarto basico.ppt
FUERZA Y MOVIMIENTO ciencias cuarto basico.pptFUERZA Y MOVIMIENTO ciencias cuarto basico.ppt
FUERZA Y MOVIMIENTO ciencias cuarto basico.ppt
 
Linea del tiempo - Filosofos Cristianos.docx
Linea del tiempo - Filosofos Cristianos.docxLinea del tiempo - Filosofos Cristianos.docx
Linea del tiempo - Filosofos Cristianos.docx
 

Clasificacion de Interpretes

  • 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. 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. 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. 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. Introducción a Compiladores e Interpretes 5 Resultado del Interprete Programa Fuente Intérprete Datos Salida
  • 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. 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. 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. Introducción a Compiladores e Interpretes Clasificación de Intérpretes • Intérpretes Puros • Interpretes Avanzados • Interpretes Incrementales 9
  • 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. Introducción a Compiladores e Interpretes 11 Funcionamiento del Intérprete Puro
  • 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. 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. 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. 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. Introducción a Compiladores e Interpretes 16 Funcionamiento del Intérprete Avanzado
  • 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. 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. 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. 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.