SlideShare una empresa de Scribd logo
1 de 3
Descargar para leer sin conexión
Interpretes
Traduce a lenguaje máquina,cadalíneadel programafuente ylaejecutade inmediato.
Traducenen Lenguaje de AltoNivel aLenguaje Maquina,se encargande traducircada instrucción,
una por una(o cada líneade instrucciones) contenidaenun programaescritoencualquier
lenguaje de altonivel ainstruccionesencódigobinario,comprensible porlascomputadoras.
Los intérpretesnoproducencódigoobjeto,porellolaejecuciónde unprogramarequiere
forzosamente del códigofuente.Además,los programasenlenguaje interpretadose ejecutancon
más lentitudque aquellosenlenguaje compilado.
Los intérpretesrealizanlatraducciónyejecuciónde formasimultánea,esdecir,unintérpretelee
el códigofuente ylova ejecutandoal mismotiempo.
Se puedenutilizarcomoalternativaaloscompiladoresparatraducirlenguajesde altonivel.Envez
de traducir el programafuente ygrabar en formapermanente el códigoobjetoque se produce
durante la corridade compilaciónparautilizarloenunacorridade producciónfutura,el
programadorsólocarga el programafuente enlacomputadorajuntocon losdatos que se van a
procesar.A continuación,unprogramaintérprete,almacenadoenel sistemaoperativodeldisco,o
incluidode manerapermanentedentrode lamáquina,convierte cadaproposicióndelprograma
fuente enlenguajede máquinaconformevayasiendonecesariodurante el procesode losdatos.
No se graba el códigoobjetoparautilizarloposteriormente.
La siguientevezque se utilice unainstrucción,se le debeinterpretarotravezytraducir a lenguaje
máquina.Porejemplo,duranteel procesamientorepetitivode lospasosde unciclo,cada
instruccióndel ciclotendráque volveraserinterpretadocadavezque se ejecute el ciclo,locual
hace que el programasea máslentoentiempode ejecución(porque se varevisandoel códigoen
tiempode ejecución) peromásrápidoentiempode diseño(porque nose tiene que estar
compilandoacada momentoel códigocompleto).El intérpreteeliminalanecesidadde realizar
una corridade compilacióndespuésde cadamodificacióndel programacuandose quiere agregar
funcionesocorregirerrores;peroesobvioque unprograma objetocompiladoconantelación
deberáejecutarse conmuchamayorrapidezque unoque se debe interpretaracada paso durante
una corridae producción.
En general,se puede decirque unlenguajeesinterpretadosi susinstruccionesse ejecutan
secuencialmenteapartirde códigofuente.Paraejecutarel códigode unlenguaje interpretado,
necesitamos unintérprete de ese lenguaje.El intérprete irárecibiendolíneasde códigoque
traducirá a lenguaje máquinaparaque se ejecute.A diferenciade loslenguajescompilados,nose
produce un ejecutable.De este modo,de unaplataformaaotra, sólohabráque cambiarel
intérprete,noel código.
La siguientefiguramuestrael funcionamientode uninterprete.
Etapas del procesode interpretación
A la horade construirunintérprete esconveniente utilizarunaRepresentaciónInterna(RI) del
lenguaje fuente aanalizar.De estaforma,laorganizacióninternade lamayoría de losintérpretes
se descompone enlosmódulos:
<!--[if !supportLists]-->·<!--[endif]-->TraductoraRepresentaciónInterna:Tomacomoentradael
códigodel programaP en Lenguaje Fuente,loanalizaylotransformaa la representacióninterna
correspondiente adichoprogramaP.
<!--[if !supportLists]-->·<!--[endif]-->RepresentaciónInterna(P/RI):Larepresentacióninterna
debe serconsistente conel programaoriginal.Entre lostiposde representacióninterna,los
árbolessintácticossonlosmásutilizadosy,si lascaracterísticasdel lenguaje lopermiten,pueden
utilizarse estructurasde pilaparaunamayoreficiencia.
<!--[if !supportLists]-->·<!--[endif]-->Tablade símbolos:Durante el procesode traducción,es
convenienteircreandounatablacon informaciónrelativaalossímbolosque aparecen.La
informaciónaalmacenarendichatabla de símbolosdepende de lacomplejidaddel lenguaje
fuente.Se puedenalmacenaretiquetasparainstruccionesde salto,informaciónsobre
identificadores(nombre,tipo,líneaenlaque aparecen,etc.) ocualquierotrotipode información
que se necesite enlaetapade evaluación.
<!--[if !supportLists]-->·<!--[endif]-->Evaluadorde RepresentaciónInterna:A partirde la
RepresentaciónInternaanterioryde losdatos de entrada,se llevanacabo las accionesindicadas
para obtenerlosresultados.Durante el procesode evaluaciónesnecesariocontemplarla
apariciónde errores
<!--[if !supportLists]-->·<!--[endif]-->Tratamientode errores:Durante el procesode evaluación
puedenaparecerdiversoserrorescomodesbordamientode lapila,divisionesporcero,etc.que el
intérprete debecontemplar.
Ventajasde lautilizaciónde intérpretes
En general,lautilizaciónde compiladorespermite construirprogramasmáseficientesque los
correspondientesinterpretados.Estoesdebidoaque durante laejecuciónde códigocompilado
no esnecesariorealizarcomplejosanálisis(yase hicieronentiempode compilación),además,un
buencompiladorescapazde detectarerroresyoptimizarel códigogenerado.
Los intérpretes,pordefinición,realizanlafase de análisisyejecuciónalavez,locual imposibilita
talesoptimizaciones.Porestarazón,lossistemasinterpretadossuelensermenoseficientesque
loscompilados.Noobstante,losnuevosavancesinformáticosaumentanlavelocidadde
procesamientoycapacidadde memoriade losordenadores.Actualmente,laeficienciaesun
problemamenosgrave ymuchasvecesse prefierensistemasque permitanundesarrollorápido
de aplicacionesque cumplanfielmente latareaencomendada.
Tiposde intérpretes
Intérpretespuros
Son losque analizanyejecutansentenciaasentenciatodoel programafuente.Siguenel modelo
de interpretacióniterativay,portanto,se utilizanprincipalmente paralenguajessencillos.
Los intérpretespurosse hanvenidoutilizandodesde laprimerageneraciónde ordenadoresal
permitirlaejecuciónde largosprogramasenordenadoresde memoriareducida,yaque sólo
debíancontenerenmemoriael intérpreteylasentenciaaanalizaryejecutarencada momento.El
principal problemade este tipode intérpretesesque si amitaddel programa fuente se producen
errores,se debe de volveracomenzarel proceso.
Intérpretesavanzados
Incorporanun pasopreviode análisisde todoel programafuente.Generandoposteriormente un
lenguaje intermedioque esejecutadoporellosmismos.
De estaformaen caso de erroressintácticosnopasande lafase de análisis.Se utilizanpara
lenguajesmásavanzadosque losintérpretespuros,yaque permitenrealizarunanálisismás
detalladodel programafuente (comprobaciónde tipos,optimizaciónde instrucciones,etc.)
Intérpretesincrementales
Existenciertoslenguajesque,porsuscaracterísticas,no se puedencompilardirectamente.La
razón esque puedenmanejarobjetosofuncionesque nosonconocidosentiempode
compilación,yaque se creandinámicamente entiempoenejecución.Entre estoslenguajes,
puedenconsiderarse
Smalltalk,Lisp oProlog.Conel propósitode obtenerunamayoreficienciaque enlainterpretación
simple,se diseñancompiladoresincrementales.Laideaescompilaraquellaspartesestáticasdel
programa enlenguaje fuente,marcandocomodinámicaslasque nopuedancompilarse.
Posteriormente,entiempode ejecución,el sistemapodrácompilaralgunaspartesdinámicaso
recompilarpartesdinámicasque hayansidomodificadas.Estossistemasnoproducenuncódigo
objetoindependiente,sinoque acompañanel sistemaque permitecompilarmódulosentiempo
de ejecución(runtime system)al códigoobjetogenerado.
Normalmente,loscompiladoresincrementalesse utilizanensistemasinteractivosdonde conviven
móduloscompiladosconmódulosmodificables.
EvaluadoresParciales
La utilizaciónde evaluadoresparcialesoespecializadoressurge al considerarque muchos
programascontienendostiposde datosde entrada.Existenunaserie de datosde entradaque son
diferentesencadaejecuciónmientrasque otrosdatosnovarían de una ejecuciónaotra.El primer
conjunto,se conoce como datosde entradadinámicos(se denotarácomoDin),mientrasque el
segundoconjunto,seríanlosdatosde entradaestáticos(Est).Dadoun programaP, el procesode
evaluaciónparcial consiste enconstruirotroprogramaespecializadoPEstparalosdatos estáticos
de P. El programaPEst suele estarescritoenel mismolenguaje fuente que Pyse debe garantizar
que cuandose le presentenlosdatosdinámicosproduzcalosmismosresultadosque si se
hubiesen presentadotodoslosdatosal programa P original.

Más contenido relacionado

La actualidad más candente

Visual basic terminado[1]
Visual basic terminado[1]Visual basic terminado[1]
Visual basic terminado[1]Jalil Segura
 
Ensamblador y enlazador
Ensamblador y enlazadorEnsamblador y enlazador
Ensamblador y enlazadorRickyZhengHu
 
Grupo 1 proceso de lenguajes i
Grupo 1 proceso de lenguajes iGrupo 1 proceso de lenguajes i
Grupo 1 proceso de lenguajes iRossana Sosa
 
Clase2 clasificacion de interpretes
Clase2 clasificacion de interpretesClase2 clasificacion de interpretes
Clase2 clasificacion de interpretesInfomania pro
 
Tipos De Ensambladores
Tipos De EnsambladoresTipos De Ensambladores
Tipos De EnsambladoresSpiderHal
 
Los compiladores erika y carolina
Los compiladores erika y carolinaLos compiladores erika y carolina
Los compiladores erika y carolinaErika Flores
 
Introducción a la programación
Introducción a la programaciónIntroducción a la programación
Introducción a la programaciónvictdiazm
 
Introducccion programacion
Introducccion programacionIntroducccion programacion
Introducccion programacionAnaisMar22
 
Traductores de lenguaje
Traductores de lenguajeTraductores de lenguaje
Traductores de lenguajezamanthag_una
 

La actualidad más candente (19)

Visual basic terminado[1]
Visual basic terminado[1]Visual basic terminado[1]
Visual basic terminado[1]
 
Ensamblador y enlazador
Ensamblador y enlazadorEnsamblador y enlazador
Ensamblador y enlazador
 
Pasadas multiples
Pasadas       multiplesPasadas       multiples
Pasadas multiples
 
Algoritmos y diagramas de flujo
Algoritmos y diagramas de flujoAlgoritmos y diagramas de flujo
Algoritmos y diagramas de flujo
 
Grupo 1 proceso de lenguajes i
Grupo 1 proceso de lenguajes iGrupo 1 proceso de lenguajes i
Grupo 1 proceso de lenguajes i
 
Clase2 clasificacion de interpretes
Clase2 clasificacion de interpretesClase2 clasificacion de interpretes
Clase2 clasificacion de interpretes
 
Decompilador y metacompilador
Decompilador y metacompiladorDecompilador y metacompilador
Decompilador y metacompilador
 
Tipos De Ensambladores
Tipos De EnsambladoresTipos De Ensambladores
Tipos De Ensambladores
 
1.4 ensambladores y compiladores
1.4 ensambladores y compiladores1.4 ensambladores y compiladores
1.4 ensambladores y compiladores
 
Introduccion programacion
Introduccion programacionIntroduccion programacion
Introduccion programacion
 
Compiladores
CompiladoresCompiladores
Compiladores
 
Los compiladores erika y carolina
Los compiladores erika y carolinaLos compiladores erika y carolina
Los compiladores erika y carolina
 
Traductores de lenguajes
Traductores   de    lenguajesTraductores   de    lenguajes
Traductores de lenguajes
 
Introducción a la programación
Introducción a la programaciónIntroducción a la programación
Introducción a la programación
 
Compiladores
CompiladoresCompiladores
Compiladores
 
Introducccion programacion
Introducccion programacionIntroducccion programacion
Introducccion programacion
 
Compiladores iswi (parte 2)
Compiladores iswi (parte 2)Compiladores iswi (parte 2)
Compiladores iswi (parte 2)
 
Traductores de lenguaje
Traductores de lenguajeTraductores de lenguaje
Traductores de lenguaje
 
Ensambladores
EnsambladoresEnsambladores
Ensambladores
 

Destacado

แนวข้อสอบพนักงานการเงินและบัญชี กรมศิลปากร
แนวข้อสอบพนักงานการเงินและบัญชี กรมศิลปากรแนวข้อสอบพนักงานการเงินและบัญชี กรมศิลปากร
แนวข้อสอบพนักงานการเงินและบัญชี กรมศิลปากรkidsana pajjaika
 
Mi vida miguel ángel garcía
Mi vida   miguel ángel garcíaMi vida   miguel ángel garcía
Mi vida miguel ángel garcíaxMagm
 
Kate middleton princess or person
Kate middleton  princess or personKate middleton  princess or person
Kate middleton princess or personJoanna Lowy
 
Praise Community Church Annnouncements
Praise Community Church AnnnouncementsPraise Community Church Annnouncements
Praise Community Church Annnouncementspraiseyork
 
EVOLUCION DE LA WEB
EVOLUCION DE LA WEBEVOLUCION DE LA WEB
EVOLUCION DE LA WEBFerS23
 
แนวข้อสอบภัณฑารักษ์ กรมศิลปากร
แนวข้อสอบภัณฑารักษ์ กรมศิลปากรแนวข้อสอบภัณฑารักษ์ กรมศิลปากร
แนวข้อสอบภัณฑารักษ์ กรมศิลปากรkidsana pajjaika
 
Trabajo final grupo 16 convivencia y expresiones culturales
Trabajo final grupo 16 convivencia y expresiones culturalesTrabajo final grupo 16 convivencia y expresiones culturales
Trabajo final grupo 16 convivencia y expresiones culturalesWillian Gamez
 
Panorama des reseaux sociaux
Panorama des reseaux sociauxPanorama des reseaux sociaux
Panorama des reseaux sociauxLaurine Jouve
 
Presentación1 [autoguardado]
Presentación1 [autoguardado]Presentación1 [autoguardado]
Presentación1 [autoguardado]Tamyaly Pinedo
 
claudia isabel gutierrez garcia2°"AA"CETIS3TURNO MATUTINO
claudia isabel gutierrez garcia2°"AA"CETIS3TURNO MATUTINOclaudia isabel gutierrez garcia2°"AA"CETIS3TURNO MATUTINO
claudia isabel gutierrez garcia2°"AA"CETIS3TURNO MATUTINObutic paris
 
Hipertiroidismo med fliar
Hipertiroidismo   med fliarHipertiroidismo   med fliar
Hipertiroidismo med fliarJunior Scallon
 

Destacado (14)

แนวข้อสอบพนักงานการเงินและบัญชี กรมศิลปากร
แนวข้อสอบพนักงานการเงินและบัญชี กรมศิลปากรแนวข้อสอบพนักงานการเงินและบัญชี กรมศิลปากร
แนวข้อสอบพนักงานการเงินและบัญชี กรมศิลปากร
 
Quarto 5
Quarto 5Quarto 5
Quarto 5
 
Menu koding
Menu kodingMenu koding
Menu koding
 
Mi vida miguel ángel garcía
Mi vida   miguel ángel garcíaMi vida   miguel ángel garcía
Mi vida miguel ángel garcía
 
Kate middleton princess or person
Kate middleton  princess or personKate middleton  princess or person
Kate middleton princess or person
 
The Heart
The HeartThe Heart
The Heart
 
Praise Community Church Annnouncements
Praise Community Church AnnnouncementsPraise Community Church Annnouncements
Praise Community Church Annnouncements
 
EVOLUCION DE LA WEB
EVOLUCION DE LA WEBEVOLUCION DE LA WEB
EVOLUCION DE LA WEB
 
แนวข้อสอบภัณฑารักษ์ กรมศิลปากร
แนวข้อสอบภัณฑารักษ์ กรมศิลปากรแนวข้อสอบภัณฑารักษ์ กรมศิลปากร
แนวข้อสอบภัณฑารักษ์ กรมศิลปากร
 
Trabajo final grupo 16 convivencia y expresiones culturales
Trabajo final grupo 16 convivencia y expresiones culturalesTrabajo final grupo 16 convivencia y expresiones culturales
Trabajo final grupo 16 convivencia y expresiones culturales
 
Panorama des reseaux sociaux
Panorama des reseaux sociauxPanorama des reseaux sociaux
Panorama des reseaux sociaux
 
Presentación1 [autoguardado]
Presentación1 [autoguardado]Presentación1 [autoguardado]
Presentación1 [autoguardado]
 
claudia isabel gutierrez garcia2°"AA"CETIS3TURNO MATUTINO
claudia isabel gutierrez garcia2°"AA"CETIS3TURNO MATUTINOclaudia isabel gutierrez garcia2°"AA"CETIS3TURNO MATUTINO
claudia isabel gutierrez garcia2°"AA"CETIS3TURNO MATUTINO
 
Hipertiroidismo med fliar
Hipertiroidismo   med fliarHipertiroidismo   med fliar
Hipertiroidismo med fliar
 

Similar a Interpretes (20)

Traductores de lenguajes de programación
Traductores de lenguajes de programaciónTraductores de lenguajes de programación
Traductores de lenguajes de programación
 
Lenguajes de programacion
Lenguajes de programacionLenguajes de programacion
Lenguajes de programacion
 
Introduccion
IntroduccionIntroduccion
Introduccion
 
Lenguajes de programación parte i.4
Lenguajes de programación parte i.4Lenguajes de programación parte i.4
Lenguajes de programación parte i.4
 
Programación
ProgramaciónProgramación
Programación
 
Traductores de lenguaje
Traductores de lenguajeTraductores de lenguaje
Traductores de lenguaje
 
Presentación1.pptx
Presentación1.pptxPresentación1.pptx
Presentación1.pptx
 
Conceptos Básicos de Programación
Conceptos Básicos de ProgramaciónConceptos Básicos de Programación
Conceptos Básicos de Programación
 
Términos relacionados a la programación
Términos relacionados a la programaciónTérminos relacionados a la programación
Términos relacionados a la programación
 
Arqui
ArquiArqui
Arqui
 
Dce0 fundamentos deprogramacion
Dce0 fundamentos deprogramacionDce0 fundamentos deprogramacion
Dce0 fundamentos deprogramacion
 
Fundamentos de Programación
Fundamentos de ProgramaciónFundamentos de Programación
Fundamentos de Programación
 
INTRODUCCION
INTRODUCCIONINTRODUCCION
INTRODUCCION
 
Unidad 2
Unidad 2Unidad 2
Unidad 2
 
Algoritmos, programas, compiladores y lenguajes de programacion
Algoritmos, programas, compiladores y lenguajes de programacionAlgoritmos, programas, compiladores y lenguajes de programacion
Algoritmos, programas, compiladores y lenguajes de programacion
 
02- Clase 1 - UD2 - Lenguajes.pdf
02- Clase 1 - UD2 -  Lenguajes.pdf02- Clase 1 - UD2 -  Lenguajes.pdf
02- Clase 1 - UD2 - Lenguajes.pdf
 
Tema1 b
Tema1 bTema1 b
Tema1 b
 
Presentacion c
Presentacion cPresentacion c
Presentacion c
 
Algoritmos - Curso UNE
Algoritmos - Curso UNEAlgoritmos - Curso UNE
Algoritmos - Curso UNE
 
Presentacion c
Presentacion cPresentacion c
Presentacion c
 

Interpretes

  • 1. Interpretes Traduce a lenguaje máquina,cadalíneadel programafuente ylaejecutade inmediato. Traducenen Lenguaje de AltoNivel aLenguaje Maquina,se encargande traducircada instrucción, una por una(o cada líneade instrucciones) contenidaenun programaescritoencualquier lenguaje de altonivel ainstruccionesencódigobinario,comprensible porlascomputadoras. Los intérpretesnoproducencódigoobjeto,porellolaejecuciónde unprogramarequiere forzosamente del códigofuente.Además,los programasenlenguaje interpretadose ejecutancon más lentitudque aquellosenlenguaje compilado. Los intérpretesrealizanlatraducciónyejecuciónde formasimultánea,esdecir,unintérpretelee el códigofuente ylova ejecutandoal mismotiempo. Se puedenutilizarcomoalternativaaloscompiladoresparatraducirlenguajesde altonivel.Envez de traducir el programafuente ygrabar en formapermanente el códigoobjetoque se produce durante la corridade compilaciónparautilizarloenunacorridade producciónfutura,el programadorsólocarga el programafuente enlacomputadorajuntocon losdatos que se van a procesar.A continuación,unprogramaintérprete,almacenadoenel sistemaoperativodeldisco,o incluidode manerapermanentedentrode lamáquina,convierte cadaproposicióndelprograma fuente enlenguajede máquinaconformevayasiendonecesariodurante el procesode losdatos. No se graba el códigoobjetoparautilizarloposteriormente. La siguientevezque se utilice unainstrucción,se le debeinterpretarotravezytraducir a lenguaje máquina.Porejemplo,duranteel procesamientorepetitivode lospasosde unciclo,cada instruccióndel ciclotendráque volveraserinterpretadocadavezque se ejecute el ciclo,locual hace que el programasea máslentoentiempode ejecución(porque se varevisandoel códigoen tiempode ejecución) peromásrápidoentiempode diseño(porque nose tiene que estar compilandoacada momentoel códigocompleto).El intérpreteeliminalanecesidadde realizar una corridade compilacióndespuésde cadamodificacióndel programacuandose quiere agregar funcionesocorregirerrores;peroesobvioque unprograma objetocompiladoconantelación deberáejecutarse conmuchamayorrapidezque unoque se debe interpretaracada paso durante una corridae producción. En general,se puede decirque unlenguajeesinterpretadosi susinstruccionesse ejecutan secuencialmenteapartirde códigofuente.Paraejecutarel códigode unlenguaje interpretado, necesitamos unintérprete de ese lenguaje.El intérprete irárecibiendolíneasde códigoque traducirá a lenguaje máquinaparaque se ejecute.A diferenciade loslenguajescompilados,nose produce un ejecutable.De este modo,de unaplataformaaotra, sólohabráque cambiarel intérprete,noel código. La siguientefiguramuestrael funcionamientode uninterprete. Etapas del procesode interpretación
  • 2. A la horade construirunintérprete esconveniente utilizarunaRepresentaciónInterna(RI) del lenguaje fuente aanalizar.De estaforma,laorganizacióninternade lamayoría de losintérpretes se descompone enlosmódulos: <!--[if !supportLists]-->·<!--[endif]-->TraductoraRepresentaciónInterna:Tomacomoentradael códigodel programaP en Lenguaje Fuente,loanalizaylotransformaa la representacióninterna correspondiente adichoprogramaP. <!--[if !supportLists]-->·<!--[endif]-->RepresentaciónInterna(P/RI):Larepresentacióninterna debe serconsistente conel programaoriginal.Entre lostiposde representacióninterna,los árbolessintácticossonlosmásutilizadosy,si lascaracterísticasdel lenguaje lopermiten,pueden utilizarse estructurasde pilaparaunamayoreficiencia. <!--[if !supportLists]-->·<!--[endif]-->Tablade símbolos:Durante el procesode traducción,es convenienteircreandounatablacon informaciónrelativaalossímbolosque aparecen.La informaciónaalmacenarendichatabla de símbolosdepende de lacomplejidaddel lenguaje fuente.Se puedenalmacenaretiquetasparainstruccionesde salto,informaciónsobre identificadores(nombre,tipo,líneaenlaque aparecen,etc.) ocualquierotrotipode información que se necesite enlaetapade evaluación. <!--[if !supportLists]-->·<!--[endif]-->Evaluadorde RepresentaciónInterna:A partirde la RepresentaciónInternaanterioryde losdatos de entrada,se llevanacabo las accionesindicadas para obtenerlosresultados.Durante el procesode evaluaciónesnecesariocontemplarla apariciónde errores <!--[if !supportLists]-->·<!--[endif]-->Tratamientode errores:Durante el procesode evaluación puedenaparecerdiversoserrorescomodesbordamientode lapila,divisionesporcero,etc.que el intérprete debecontemplar. Ventajasde lautilizaciónde intérpretes En general,lautilizaciónde compiladorespermite construirprogramasmáseficientesque los correspondientesinterpretados.Estoesdebidoaque durante laejecuciónde códigocompilado no esnecesariorealizarcomplejosanálisis(yase hicieronentiempode compilación),además,un buencompiladorescapazde detectarerroresyoptimizarel códigogenerado. Los intérpretes,pordefinición,realizanlafase de análisisyejecuciónalavez,locual imposibilita talesoptimizaciones.Porestarazón,lossistemasinterpretadossuelensermenoseficientesque loscompilados.Noobstante,losnuevosavancesinformáticosaumentanlavelocidadde procesamientoycapacidadde memoriade losordenadores.Actualmente,laeficienciaesun problemamenosgrave ymuchasvecesse prefierensistemasque permitanundesarrollorápido de aplicacionesque cumplanfielmente latareaencomendada. Tiposde intérpretes Intérpretespuros Son losque analizanyejecutansentenciaasentenciatodoel programafuente.Siguenel modelo de interpretacióniterativay,portanto,se utilizanprincipalmente paralenguajessencillos.
  • 3. Los intérpretespurosse hanvenidoutilizandodesde laprimerageneraciónde ordenadoresal permitirlaejecuciónde largosprogramasenordenadoresde memoriareducida,yaque sólo debíancontenerenmemoriael intérpreteylasentenciaaanalizaryejecutarencada momento.El principal problemade este tipode intérpretesesque si amitaddel programa fuente se producen errores,se debe de volveracomenzarel proceso. Intérpretesavanzados Incorporanun pasopreviode análisisde todoel programafuente.Generandoposteriormente un lenguaje intermedioque esejecutadoporellosmismos. De estaformaen caso de erroressintácticosnopasande lafase de análisis.Se utilizanpara lenguajesmásavanzadosque losintérpretespuros,yaque permitenrealizarunanálisismás detalladodel programafuente (comprobaciónde tipos,optimizaciónde instrucciones,etc.) Intérpretesincrementales Existenciertoslenguajesque,porsuscaracterísticas,no se puedencompilardirectamente.La razón esque puedenmanejarobjetosofuncionesque nosonconocidosentiempode compilación,yaque se creandinámicamente entiempoenejecución.Entre estoslenguajes, puedenconsiderarse Smalltalk,Lisp oProlog.Conel propósitode obtenerunamayoreficienciaque enlainterpretación simple,se diseñancompiladoresincrementales.Laideaescompilaraquellaspartesestáticasdel programa enlenguaje fuente,marcandocomodinámicaslasque nopuedancompilarse. Posteriormente,entiempode ejecución,el sistemapodrácompilaralgunaspartesdinámicaso recompilarpartesdinámicasque hayansidomodificadas.Estossistemasnoproducenuncódigo objetoindependiente,sinoque acompañanel sistemaque permitecompilarmódulosentiempo de ejecución(runtime system)al códigoobjetogenerado. Normalmente,loscompiladoresincrementalesse utilizanensistemasinteractivosdonde conviven móduloscompiladosconmódulosmodificables. EvaluadoresParciales La utilizaciónde evaluadoresparcialesoespecializadoressurge al considerarque muchos programascontienendostiposde datosde entrada.Existenunaserie de datosde entradaque son diferentesencadaejecuciónmientrasque otrosdatosnovarían de una ejecuciónaotra.El primer conjunto,se conoce como datosde entradadinámicos(se denotarácomoDin),mientrasque el segundoconjunto,seríanlosdatosde entradaestáticos(Est).Dadoun programaP, el procesode evaluaciónparcial consiste enconstruirotroprogramaespecializadoPEstparalosdatos estáticos de P. El programaPEst suele estarescritoenel mismolenguaje fuente que Pyse debe garantizar que cuandose le presentenlosdatosdinámicosproduzcalosmismosresultadosque si se hubiesen presentadotodoslosdatosal programa P original.