monografia interprete
TRANSCRIPT
-
8/16/2019 Monografia Interprete
1/15
República Bolivariana de VenezuelaUniversidad Nacional Experimental de Guayana
Vicerrectorado AcadémicoProyecto de carrera !n"enier#a en !n$orm%ticaUnidad curricular &en"ua'es y (ompiladores
DOCENTE: INTEGRANTES:)élix *%r+uez (oronado Gabriel ,-./01.231
Godoy Eladio 4,.15,.24/&epa"e *i"dalis
Ant6ony )il"ueira40.274.1/3,/./4/.400
Puerto 8rdaz9 Noviembre del 40,5
1
INTERPRETES DE
LENGUAJE
-
8/16/2019 Monografia Interprete
2/15
INDICE GENERAL
!N:R8;U((!RPRE:E=....................................................................................3
!N:>RPRE:E= PUR8=??...????????????????.????..3
!N:>RPRE:E= AVAN@A;8=?????????????????...???./
!N:>RPRE:E= !N(RE*EN:A&E=..??.????????????????-
EVA&UA;8RE= PAR(!A&E=????...????????????????.-
(8*P!&A;8RE= U=: !N :!*EC..?????????.????????..,0
(8*P!&A(!
-
8/16/2019 Monografia Interprete
3/15
INTRODUCCIÓN
En el len"ua'e natural se conoce como intérprete a un medio o una personala cual se encar"a de recibir un mensa'e en un len"ua'e y traducirlo a otro contotal co6erencia9 o en otros aspectos puede recibir "estos y se as como parte delmensa'e a traducir. :omando esto en cuenta se puede decir +ue un intérpreteme'ora la capacidad de un traductor.
En materia de computaciFn se puede lle"ar a con$undir estos dosconceptos9 ya +ue las di$erencias son muy pocas9 a sabiendas +ue se tratan delen"ua'es de pro"ramaciFn.
Es importante resaltar los niveles de len"ua'es de pro"ramaciFn9 los de ba'onivel +ue son los m%s cerca a los dispositivos9 entre estos el len"ua'eensamblador9 y los m%s prFximos al usuario con re"las m%s de$inidas y mezclados
con len"ua'e natural los de alto nivel9 tales como ava9 (9 pascal9 entre otros.
&os intérpretes se encuentran muy relacionados con el mane'o de len"ua'esde pro"ramaciFn y su proceso de compilaciFn9 por lo +ue el lector de estamono"ra$#a debe tener como premisa el conocimiento previo de conceptos sobrein$orm%tica moderna o de computaciFn.
3
-
8/16/2019 Monografia Interprete
4/15
INTÉRPRETES
DEFINICION
=e"ún (ueva9 ,--/H9 los intérpretes Ison pro"ramas +ue simplemente
e'ecutan las instrucciones +ue encuentran en el texto $uente9 en muc6os casoscoexisten en memoria el pro"rama $uente y el pro"rama intérpreteC9 es decir9 no seproduce un resultado $#sico cFdi"o de m%+uinaH sino un resultado lF"ico unae'ecuciFnH.
=i"uiendo el mismo orden de ideas9 en el libro (ompiladores e !ntérpretesUn En$o+ue Pra"m%ticoJ sus autores plantean +ue para realizar la interpretaciFnde un pro"rama es vital llamar un con'unto de subpro"ramas en la secuencia
correcta. >sta secuencia viene dada de la si"uiente $orma
1. 8btener la sentencia si"uiente a e'ecutar.
2. ;eterminar las acciones +ue 6an de ser e'ecutadas.
3. E'ecutar las acciones.
:omando como base los conceptos planteados con anterioridad sedetermina +ue un intérprete es un pro"rama +ue analiza y e'ecutasimult%neamente el pro"rama $uente9 es decir9 no producen un cFdi"o ob'eto9siendo su e'ecuciFn simult%nea a la del pro"rama $uente debido a +ue cadasentencia implica una e'ecuciFn sobre la plata$orma. En la $i"ura , se observa el$uncionamiento de un intérprete.
)i". , )uncionamiento de un intérprete.
4
-
8/16/2019 Monografia Interprete
5/15
ESTRUCTURA DE UN INTÉRPRETE
&a estructura de un intérprete9 se"ún aume9 400- p4H puede dividirse endos etapas an%lisis y s#ntesis. &a etapa de an%lisis es i"ual a la de un compilador9la cual consiste en analizar la entrada para averi"uar +ué es lo +ue se intentacomunicar. El $ruto de esta etapa es una representaciFn de la entrada +ue permite+ue la si"uiente etapa se desarrolle con $acilidad. >sta primera etapa se encuentracompuesta por los analizadores léxico9 sint%ctico y sem%ntico.
&a se"unda etapa9 la s#ntesis9 consiste en tomar la representaciFn obtenidaen el an%lisis y trans$ormarlo en su e+uivalente en el len"ua'e destino.
(omo se 6a mencionado anteriormente9 la etapa de an%lisis se divide en
tres $ases9 las cuales se detallan a continuaciFn• Análisis léxico: el cual se encar"a de analizar la entrada car%cter a car%cter
y consecuentemente los divide en una serie de unidades elementalesllamadas componentes léxicos. =us principales $unciones son identi$icarlos s#mbolos9 eliminar los espacios en blanco y caracteres de $in de l#nea9eliminar los comentarios +ue acompa an al texto $uente y crea loscomponentes léxicos.
• Análisis sintáctico: partiendo de lo +ue 6a recibido del analizador léxico9 el
analizador sint%ctico va descubriendo las estructuras presentes en elcFdi"o9 en otras palabras9 comprueba +ue las sentencias +ue componen eltexto $uente son correctas en el len"ua'e9 creando una representaciFninterna +ue corresponde a la sentencia analizada.
• Análisis semántico: la última $ase del an%lisis9 toma como entrada la
representaciFn interna creada por el sint%ctico y comprueba si se cumplenlas restricciones impuestas por el len"ua'e9 es decir9 se ocupa de analizar silas sentencias tienen si"ni$icado9 dado +ue es posible encontrar sentencias+ue son sint%cticamente correctas m%s no pueden ser e'ecutadas puescarecen de sentido.
5
-
8/16/2019 Monografia Interprete
6/15
En cada una de éstas $ases se van mostrando los errores encontrados.
&a etapa de s#ntesis para los intérpretes consiste en partir del %rbol desint%xis abstracta y recorrerlo 'unto con los datos de entrada para obtener los
resultados.
=i"uiendo la descripciFn de las $ases realiza anteriormente9 se puedeobservar +ue la estructura de un intérprete es similar a la mostrada en la $i"ura 4 acontinuaciFn
)i". 4 Estructura an%lo"a de un intérprete.
TIPOS DE INTÉRPRETES
=e pueden clasi$icar desde el punto de vista de su estructura en variostipos intérpretes puros9 intérpretes avanzados o normales9 e intérpretesincrementales. (ueva9 ,--/H
• Intérpretes puros: &os intérpretes puros son los +ue analizan una sentencia
y la e'ecutan9 y as# sucesivamente todo el pro"rama $uente. )ueron losintérpretes desarrollados en la primera "eneraciFn de ordenadores9 pues
6
-
8/16/2019 Monografia Interprete
7/15
permit#an la e'ecuciFn de lar"os pro"ramas con ordenadores de memoriamuy reducida9 ya +ue sFlo deb#an contener en memoria el intérprete y lasentencia a analizar y e'ecutar. El principal problema de este tipo deintérpretes es +ue si a mitad del pro"rama $uente se producen errores9 sedebe de volver a comenzar el proceso. En la $i"ura 2 se representa eles+uema "eneral de un intérprete puro9 donde se puede observar +ue ellen"ua'e $uente se traduce a una representaciFn interna texto o binariaH+ue puede ser almacenada en memoria o en disco. Esta representaciFninterna tiene todas las instrucciones numeradas o colocadasconsecutivamente en estructuras de tama o $i'o por e'emplo un array oposiciones consecutivas de memoria9 o un $ic6ero binario de estructuras de
tama o $i'oH. *ientras se realiza este paso se puede construir la tabla deeti+uetas9 +ue es una tablas +ue contiene una estructura donde est%n todaslas eti+uetas y su posiciFn en el pro"rama $uente las eti+uetas se utilizantanto en las instrucciones de salto como en las llamadas a procedimientos y$uncionesH. Una vez +ue este proceso 6a $inalizado9 comienza la e'ecuciFnpor la primera instrucciFn del cFdi"o9 +ue se env#a al evaluador deinstrucciones9 éste la e'ecuta recibiendo datos si es necesario o enviandoun mensa'e de errorH. El evaluador de instrucciones también determina lainstrucciFn si"uiente a e'ecutar. En el caso de +ue no 6aya saltos G8:8H ollamadas a procedimientos o $unciones se e'ecuta la si"uiente instrucciFn ala instrucciFn en curso. El evaluador de instrucciones puede utilizar dosmétodos de evaluaciFn. El método cl%sico es la evaluaciFn voraz o ansiosa9donde se evalúan las expresiones completamente. 8tro método es laevaluaciFn perezosa9 evalu%ndose sFlo la parte necesaria de la expresiFn
el resto no se evalúaH.
7
-
8/16/2019 Monografia Interprete
8/15
)i". 2 Es+uema "eneral de un intérprete puro.
• Intérpretes avanzados: &os intérpretes avanzados o normales incorporan un
paso previo de an%lisis de todo el pro"rama $uente. Generandoposteriormente un len"ua'e intermedio +ue es e'ecutado por ellos mismos.;e esta $orma en caso de errores sint%cticos no pasan de la $ase dean%lisis. En la $i"ura 1 se representa el es+uema "eneral de un intérpreteavanzado. &as aplicaciones de los intérpretes avanzados son
◦ EmulaciFn de ar+uitecturas de ordenadores.
◦ *étodo para para $acilitar la portabilidad de aplicaciones entre distintas
ar+uitecturas de ordenadores.
◦ )ase de prueba de len"ua'es y ar+uitecturas de m%+uinas abstractas9
antes de construir los traductores a cFdi"o ob'eto de una ar+uitecturadeterminada.
8
-
8/16/2019 Monografia Interprete
9/15
• Intérpretes incrementales: Al"unos len"ua'es no se pueden compilar9
debido a +ue entre sus caracter#sticas pueden mane'ar ob'etos o $unciones+ue no son conocidos en tiempo de compilaciFn9 ya +ue son creados ene'ecuciFn. Para este tipo de len"ua'es existen los intérpretes incrementales9+ue permiten compilar los mFdulos completamente de$inidos9 y recompilaren tiempo de e'ecuciFn los nuevos mFdulos. Est%n a medio camino entrelos intérpretes puros y los intérpretes avanzados o normales. &osintérpretes incrementales tienen "ran interés en los len"ua'es +ue permitenno de$inir los problemas completamente en tiempo de compilaciFn. En estoscasos se utilizan evaluadores parciales partial evaluatorsH +ue toman comoentrada el pro"rama $uente 'unto con al"unos datos pero no todosH9
realiz%ndose los c%lculos +ue se pueden 6acer con dic6o subcon'unto dedatos9 y produciendo una salida +ue contiene un residuo del pro"rama$uente +ue se 6a introducido.
En el art#culo !ntérpretes y ;ise o de &en"ua'es de Pro"ramaciFn 4001H9se mencionan otros tipos de intérpretes basados también en su estructura interna9como lo son
• Evaluadores parciales: &a utilizaciFn de evaluadores parciales o
especializadores sur"e al considerar +ue muc6os pro"ramas contienen dostipos de datos de entrada. Existen una serie de datos de entrada +ue sondi$erentes en cada e'ecuciFn mientras +ue otros datos no var#an de unae'ecuciFn a otra. El primer con'unto9 se conoce como datos de entradadin%micos9 mientras +ue el se"undo con'unto9 ser#an los datos de entradaest%ticos. ;ado un pro"rama9 el proceso de evaluaciFn parcial consiste enconstruir otro pro"rama especializado para los datos est%ticos delpro"rama. >ste pro"rama especializado suele estar escrito en el mismolen"ua'e $uente +ue el pro"rama ori"inal y se debe "arantizar +ue cuandose le presenten los datos din%micos produzca los mismos resultados +ue sise 6ubiesen presentado todos los datos al pro"rama ori"inal.
9
-
8/16/2019 Monografia Interprete
10/15
• Compiladores “Just in Time”: (on la apariciFn de !nternet sur"e la
necesidad de distribuir pro"ramas de una $orma independiente de lam%+uina permitiendo su e'ecuciFn en una amplia variedad de plata$ormas.En este modelo9 una unidad de compilaciFn o clase se transmite en el$ormato de cFdi"os de bytes9 pero no se realiza la interpretaciFn. En lu"arde ello9 el cFdi"o es compilado a cFdi"o nativo 'usto en el momento en +uelo necesita el pro"rama +ue se est% e'ecutando.
• Compilación continua: &a compilaciFn continua sur"e como un intento de
me'orar la compilaciFn I ust in :imeC. El sistema mezcla el proceso decompilaciFn a cFdi"o nativo con el proceso de interpretaciFn. Paraconse"uirlo9 el sistema dispone de dos mFdulos un mFdulo deinterpretaciFn de los cFdi"os de bytes y otro mFdulo de compilaciFn decFdi"os de bytes a cFdi"o nativo. &a idea consiste en +ue ambos mFdulosactúen a la vez lo ideal ser#a disponer de dos procesadoresH9 de $orma +ueel sistema no se deten"a a compilar un mFdulo9 sino +ue vayainterpret%ndolo 6asta +ue el compilador 6aya "enerado el cFdi"o nativo. Eneste sistema intervienen distintos mFdulos9 como lo son
◦ (Fdi"o El cFdi"o contiene una mezcla de cFdi"o $uente y cFdi"o nativo
del pro"rama. !nicialmente todo el cFdi"o est% sin compilar9 pero amedida +ue el pro"rama es e'ecutado9 el compilador "eneratraducciones a cFdi"o nativo de las unidades de compilaciFn.
◦ (ompilador El mFdulo compilador traduce las unidades de compilaciFn
a cFdi"o nativo. A medida +ue se $inaliza la traducciFn de una unidad9 laversiFn en cFdi"o nativa se de'a disponible al intérprete.
◦ !ntérprete El mFdulo intérprete se responsabiliza de la e'ecuciFn actual
del pro"rama. (omienza interpretando el cFdi"o $uente9 6aciendo saltosa las versiones en cFdi"o nativo a medida +ue éstas est%n disponibles.
◦ *onitor =e encar"a de coordinar la comunicaciFn entre los dos
mFdulos anteriores.
10
-
8/16/2019 Monografia Interprete
11/15
TIPOS DE INTERPRETACIONES:
!ntérpretes y ;ise o de &en"ua'es de Pro"ramaciFn9 4001H. ;ependiendode la comple'idad del len"ua'e el método de interpretador puede ser uno de lospresentados a continuaciFn
• Interpretación iterativa:
&a interpretaciFn iterativa es apropiada para len"ua'es sencillos donde seanaliza y e'ecuta cada expresiFn de $orma directa9 como podr#an ser los cFdi"osde m%+uinas abstractas o len"ua'es de sentencias simples. &a interpretaciFnconsiste en un ciclo b%sico de bús+ueda9 an%lisis y e'ecuciFn de instrucciones.(ada instrucciFn se busca en el almacenamiento memoria o discoH o9 en al"unoscasos9 es introducida directamente por el usuario. &ue"o la instrucciFn esanalizada en sus componentes y e'ecutada normalmente9 el len"ua'e $uentecontiene varios tipos de instrucciones9 de $orma +ue la e'ecuciFn se descomponeen varios casos9 uno por cada tipo de instrucciFn.
• Interpretación recursiva: (omúnmente el dise o de nuevos len"ua'es de
pro"ramaciFn se realiza en dos $ases
◦ Una primera $ase se especi$icaciFn sem%ntica mediante la construcciFn
de un intérprete prototipo +ue actúa como una especi$icaciFn e'ecutable.
◦ Una se"unda $ase de implementaciFn del compilador de dic6o len"ua'e.
Para la construcciFn de prototipos suele utilizarse un modelo deinterpretaciFn recursiva donde las sentencias pueden estar compuestas de otrassentencias y la e'ecuciFn de una sentencia puede lanzar la e'ecuciFn de otrassentencias de $orma recursiva.
VENTAJAS DE LA UTILIZACIÓN DE INTÉRPRETES• Permiten una $%cil depuraciFn9 la interpretaciFn puede interrumpirse en
cual+uier momento para examinar o modi$icar los valores de las variables ola situaciFn en la e'ecuciFn. &a tabla de s#mbolos est% disponible. =e
11
-
8/16/2019 Monografia Interprete
12/15
pueden corre"ir los errores y continuar. :razas y paradas pro"ramadas.=altos en el pro"rama. Abandonos de subrutinas.
• Rapidez en el desarrollo9 son m%s sencillos de implementar. &o cual $acilita
el estudio de la correcciFn del intérprete y proporciona nuevas l#neas deinvesti"aciFn como la "eneraciFn autom%tica de intérpretes a partir de lasespeci$icaciones sem%nticas del len"ua'e.
• )lexibilidad permite realizar acciones comple'as9 imposibles o muy di$#ciles
con un compilador9 como las si"uientes◦ E'ecuciFn de cadenas de caracteres mediante operadores como
execute 9 interprete o eval+uote .◦ *odi$icar sobre la marc6a el si"ni$icado de los s#mbolos e incluso
prescindir por completo de las declaraciones.◦ 8btener un li"amiento din%mico completo en los sistemas orientados a
ob'etos.◦ =impli$icar la "estiFn de memoria en los pro"ramas $uente.
• No es necesario contener en memoria todo el cFdi"o $uente. Esto permite
su utilizaciFn en sistemas de poca memoria o en entornos de red9 en los+ue se puede obtener el cFdi"o $uente a medida +ue se necesita.
• )acilitan la metaKpro"ramaciFn. Un pro"rama puede manipular su propio
cFdi"o $uente a medida +ue se e'ecuta. Esto $acilita la implementaciFn desistemas de aprendiza'e automatizado y re$lectividad.
• Aumentan la portabilidad del len"ua'e Para +ue el len"ua'e interpretado
$uncione en otra m%+uina sFlo es necesario +ue su intérprete $uncione endic6a m%+uina. Puesto +ue no existen etapas intermedias de compilaciFn9los sistemas interpretados $acilitan el desarrollo r%pido de prototipos9potencian la utilizaciFn de sistemas interactivos y $acilitan las tareas dedepuraciFn.
12
-
8/16/2019 Monografia Interprete
13/15
DESVENTAJAS DE UN INTÉRPRETE
• Velocidad usualmente un orden de ma"nitud menor +ue la de un pro"rama
compilado.• :ama o del pro"rama ob'eto9 +ue exi"e a adir el intérprete al pro"rama
propiamente dic6o.
• !mposibilita las optimizaciones.
13
-
8/16/2019 Monografia Interprete
14/15
CONCLUSIÓN
Basados en la investi"aciFn realizada en el presente traba'o se puedein$erir +ue sera de "ran "ran utilidad en el momento de la creaciFn de un interpretede len"ua'e in$orm%tico9 ya +ue son detalladas todas y cada una de las partes +ueinvolucran a este. Primeramente se da por sentado +ue un intérprete de len"ua'eno es exactamente un compilador9 ambos poseen caracter#sticas di$erentes consus pros y contras. &a $unciFn de un intérprete b%sicamente es correr otrospro"ramas9 e ir traduciendo a medida +ue sea necesario9 instrucciFn porinstrucciFn y en el mayor de los casos9 no "uardan los resultados de dic6a
traducciFn.A su vez9 se comprende +ue un intérprete9 posee una estructura bastante
estricta y detallada donde se establece di$erentes par%metros para +ue latraducciFn del len"ua'e $uente con respecto al pro"rama sea Fptima y "arantizada9ya +ue como su nombre re$iere9 debe poder interpretar el len"ua'e de entrada delpro"rama +ue esta e'ecutando para poder traducirlo a la representaciFn internacorrespondiente al mismo9 de i"ual manera de poder mane'ar los errores +ue
pudieran ocurrir y evitarlos de una manera se"ura. A parte de su estructura9 esposible +ue el intérprete pueda correr sus iteraciones de dos maneras di$erentesJ!terativamente y recursivamente9 se"ún sea el caso y la necesidad9 y esimportante saberlo9 ya +ue se debe estudiar bien +ue iteraciFn es la masconveniente para la corrida del al"oritmo9 una iteraciFn no apropiada9 pondr#a enries"o la e$iciencia del intérprete respecto a los recursos disponibles9 y ya +ueprecisamente esta es una de las venta'as del intérprete respecto al compilador9dic6a e$iciencia debe ser preservada.
14
-
8/16/2019 Monografia Interprete
15/15
BIBLIOGRAFÍA
(arlos A. Vane"as. 4005H. (ompiladores un en$o+ue. Revista Vinculos de laUniversidad ;istrital )rancisco osé de (aldas9 Vol. ,9 Num. 4
G. =%nc6ez ;ue as9 . A. Valverde Andreu. ,-/-H. (ompiladores e !ntérpretesUn En$o+ue Pra"m%tico. Ediciones ;#az de =antos9 =. A.
uan *anuel (ueva &ovelle. ,--/H. (uaderno NL ,0 (onceptos b%sicos deProcesadores de &en"ua'e.
ose E. &abra G.9 uan *. (ueva &.9 Raúl !. (astanedo9 A+uilino A. uan ).9 *M(%ndida &uen"o ;.9 )rancisco 8rt#n =. 4001H. !ntérpretes y ;ise o de &en"ua'esde Pro"ramaciFn. ;ocumento en l#nea disponible en6ttp di004.edv.uniovi.es Olabra ):P !nterpretes.pd$
Universitat aume. 400/K400-H. Estructura de los compiladores e intérpretes.
;ocumento en l#nea disponible en 6ttps ."oo"le.co.ve urlQsa tSrct 'S+ Sesrc sSsource ebScd ,2Sved 0((cT)'A(8Ap+)To:(*'Rxp'@n* () P "odu' ; TSurl 6ttpW2AW4)W4)eKu'ier.u'i.esW4)plsW4) W4)X"riY .eu'i44,14W2)pYidW2;47,Sus" A)T'(NG xxrm,)-Z0A/(NnzU $c;r-3[" Ssi"4 t/UY6V$B4u rU78*2oA,v"Sbvm bv.,0773241,9d.e\EScad r'a
;ocumento en l#nea disponible en6ttp arantxa.ii.uam.es Oal$onsec docs compila/.6tm
15