O slideshow foi denunciado.
Seu SlideShare está sendo baixado. ×
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Próximos SlideShares
Tema 1.3.- Programación
Tema 1.3.- Programación
Carregando em…3
×

Confira estes a seguir

1 de 3 Anúncio
Anúncio

Mais Conteúdo rRelacionado

Diapositivos para si (19)

Quem viu também gostou (14)

Anúncio

Semelhante a Interpretes (20)

Mais recentes (20)

Anúncio

Interpretes

  1. 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. 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. 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.

×