monografia interprete

Upload: migdalis

Post on 05-Jul-2018

214 views

Category:

Documents


0 download

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