´ a de la Energ Area Are Energ´ ıa las Industrias y los Recursos Recursos Naturales Naturales No Renovables
Carrera Carrera de Ingenier Ingenier´ ıa en Sistem Sistemas as
Analizad Analizador or L´ exico exic o y Analiza Analizador dor Sint´ acti actico co para para compi compilad lador or que corrige palabras” Tarea- Extra Extra Clase Clase Noveno Noveno B
Autores: •
Yessenia Karina Barrionuevo Sarango
Docente: Ing. Henry-Paz,
Loja-Ecuador 2014 1
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
A.
PROBLEMA
En el presente ensayo se muestra la construcci´ on on del analizador l´exico exico y el analizador sint´ actico de un compilador para corregir siguientes palabras terminadas en cion y sion actico sin tilde: cancion oposicion accion adicion fraccion ilusion mision vision version decision Para realizar la correcci´ on de una de estas palabras, la estructura de la sentencia es la on siguiente: En el caso que se desee imprimir el resultado de la correcci´ on realizada , la sentencia seria: on imprimir corregir-palabra correg ir-palabra palabra palab ra ”fin de l´ l´ınea”(que se encuentra representado repr esentado por p or un /), o si no se desea imprimir el resultado, se elimina la palabra reservada imprimir.
B.
´ AUTOMATA PROPUESTO
Para el construcci´ o n del compilador se ha propuesto el aut´ on omata o mata de la Fig. 1 que mostrara la estructura sint´ actica de dicho compilador: actica
Figura 1: Aut´ omata omata para el aut´ omata omata propuesto
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
C.
´ DE LOS ANALIZADORES CONSTR NSTRUC UCC CION
Para la construcci´ on de los analizadores se program´ on o en c´ odigo odigo java, se utiliz´o como IDE de desarrollo NETBEANS, la librar´ librar´ıa de jflex[1] jflex[1] par paraa el e l anal a naliza izador dor l´exico exi co y la l a libr l ibrar´ ar´ıa ıa de cup[2 cup[2] para el analizador sint´ actico. actico. 0 .1. .1.
´ ANAL ANALIZ IZAD ADOR OR LEXICO
Para la construcci´ on on del d el analiza a nalizador dor l´exico exico se realiz r ealiz´ o´ el archivo .flex para el compilador propuesto. El archivo .flex se encuentra estructurado por tres secciones que se separa medi median ante te % %.// %.// // En la Fig. Fig. 2 se muestra el c´ odigo del archivo .flex de la secci´ odigo on on del c´ odigo odigo de usuario.
Figura 2: Secci´ on on del c´odigo odigo de usuario- Archivo .flex En la Fig. 3 se muestra el c´ odigo del archivo .flex de la secci´on odigo on de opciones y declaraciones.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Figura 4: Secci´on on de c´ odigo de usuario - Archivo .flex odigo
En la Fig. 4 se muestra el c´odigo odigo del archivo .flex de la secci´ se cci´ on de reglas regla s l´exicas. exica s. Para la ejecuci´ on del archivo .flex se cre´ on o una clase en java, en la cual se lee el archivo .flex y utiliza utiliza el m´etodo etodo Main.generate Main.generate de jflex. Al ejecutar esta clase se gener´ o una clase en java que seg´ un el archivo .flex se llama AnalizadorLexico, esto se muestra en la Fig. 5. un Fig. 5.
Figura 5: C´odigo odigo para ejecuci´ on on de Archivo .flex
0 .2. .2.
´ ANAL ANALIZ IZAD ADOR OR SINT SINTACTICO
Para la construcci´ on on del analizador sint´ actico actico se realiz´ o el archivo .cup para el compilador propuesto. // // En la Fig. 6 se muestra el c´odigo odigo del archivo de la secci´on o n de declaraciones package e imports del archivo.cup.
Figura 6: Secci´ on de Importaciones - Archivo .cup on
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Figura 7: Secci´ on de componentes de c´ on odigo odigo de usuario:M´etodo etodo de detecci´ on on de errores sint´ acticos acticos - Archivo .cup
Figura 8: 8 : M´etodo etodo para corregir las palabras palab ras - Archivo .cup
En la Fig. 8 se muestra el c´ odigo del archivo de la secci´ odigo on on componentes de c´ odigo odigo de usuario, el e l m´etodo etodo para corregir la cadena cade na ingresada. ingr esada. En la Fig. 9 Fig. 9 se se muestra el c´ odigo del archivo de la secci´ odigo on on de declaraci´ on on de terminales
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Figura 9: Declaraci´ on de variables terminales y no terminales - Archivo .cup on
Figura 10: Declaraci´ Decla raci´on on de gram´ aticasaticas- Archivo Archivo .cup
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Figura 12: C´ odigo odigo para la ejecuci´ on on del archivo .cup
0 .3. .3.
´ DEL ´ CO Y ANAL ´ INTE INTEGR GRA ACION DEL ANAL ANALIZ IZAD ADOR OR LEXICO EXI ANALIZA IZADOR DOR SINT SINTACTICO
Para la integraci´ on de los analizadores se cre´ on o una clase, donde el analizador l´exico exico lee el archivo de entrada que contiene los datos ingresados por el usuario, y a su vez el analizador analiz ador l´exico exico es le´ le´ıdo por el analizador analiz ador sint´ actico. actico. En la Fig. 1 Fig. 133 se muestra el c´odigo: odigo:
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
dorLexico.java, para identificar los errores que se encuentren relacionaras con caracteres inv´alidos a lidos ingresados y personalizar los mensajes a presentar en caso de error, esto se muestra en la Fig. 14. 14.
Figura 14: C´odigo odigo para errores- caracteres inv´ alidos alidos Para detectar los errores sint´ acticos que se encuentren relacionados con la estructura acticos ingresada se configuro la clase generada por el archivo .cup que se llama AnalizadorSintactico.java, y se personalizo los mensajes a presentar en caso de error de sintaxis, esto se muestra en las Fig. 15 , 15 , Fig. 16 y 16 y Fig. 17. 17.
Figura 15: C´ odigo odigo para errores sint´ acticos acticos 1
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Figura 17: C´ odigo odigo para errores sint´ actico actico 3
D.
RESU RESUL LTADOS ADOS
A continuaci´on on se mostrara la ejecuci´ on de los analizadores para el compilador proon puesto: Como se muestra en la Fig. 18 , se debe ingresar la sintaxis propuesta en el archivo Entrada.txt y se procede a ejecutar la clase EJECUTAR COMPILADOR.java . Como se puede observar ya se muestra la palabra corregida.
Figura 18: Pantalla del programa-Sintaxis y Resultado
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Figura 19: Pantalla del programa- Sintaxis incorrecta
E.
BIBL BIBLIO IOGR GRAF AFIA IA
Referencias [1] JFLEX. JFLEX. ”JFlex ”JFlex - The Fast Scanner Scanner Generato Generatorr for Jav Java”. a”. Disponib Disponible le en: http:// jflex.de/
[2] CUP. CUP. .C ¸ UP Parser Generator for Java” Java”.. Disponible en: http://www.cs.princeton. http://www.cs.princeton. edu/˜appel/modern/java/CUP/
[3] Roger Alexander Alexander Gir´ on on Moscoso .”MANUAL ”MANUAL DE INSTALA INSTALACION CION JFLEX Y CUP EN S.O. WINDOWS”.Guatemala 2013. Universidad de San Carlos de Guatemala. ´ [4] LUIS ANTONIO FARIAS TELLO. . ANALIZADOR LEXICO, EL ANALIZA´ DOR SINTACTICO Y LOS DIFERENTES TIPOS DE COMPILADORES QUE ´ HAY.”. PONTIFICIA UNIVERSIDAD CAT OLICA DEL ECUADOR SEDE ESMERALDAS. 2013. EL
[5] Rafael A. Vega Castro. Castro . Integracion de JFLEX Y CUP (Analizadores (Analizad ores l´exico exico y sint´ actico). Octubre 2008.