Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Manual de Usuario
Anagra 2.0. Un entorno para el estudio de las fases de anlisis en el desarrollo de traductores
Manual de usuario
Realizado por: Ral Novoa Mnguez Dirigido por: Joaqun Ezpeleta Mateo
Universidad de Zaragoza
-1-
Manual de Usuario
1. Introduccin
1.1. Gua de lectura del manual
La ejecucin de ANAGRA as como el uso de este manual, est dirigido a usuarios habituales de sistemas de ventanas (Windows, X-Windows,..). Los usuarios de ANAGRA son personas con conocimientos avanzados de informtica, por lo que la descripcin de las opciones es bastante tcnica. Esta aplicacin realiza el anlisis de gramticas para determinar su tipo, por lo que es conveniente un conocimiento general sobre este tema. Asimismo, el programa permite la simulacin de los analizadores sintcticos asociados a las gramticas con el fin de mostrar paso a paso como funcionan stos. Se incluyen tambin mtodos para la transformacin de gramticas en otras equivalentes para conseguir que las gramticas sean de un tipo determinado. Es conveniente la lectura de la seccin de procedimientos, con el fin de realizar las tareas de esta aplicacin, en caso de duda, con mayor seguridad. En caso de ejecucin errnea de estas opciones, existe una seccin de anlisis de errores, donde se proporciona al usuario una relacin de los errores ms frecuentes, su posible causa y su solucin.
1.2. Propsito
El propsito del documento actual es ofrecer una ayuda al futuro usuario de la aplicacin. En este documento se enunciarn todas las posibilidades que ofrece la aplicacin as como los pasos que hay que ejecutar para poder llevarlas a cabo. De igual manera se intentarn solucionar todos los posibles problemas que se plantean al usuario mediante el manejo e instalacin del programa. El propsito del software desarrollado es poder analizar gramticas, de manera que el usuario pueda reconocer si la gramtica que ha introducido al programa es del tipo LL(1), SLR(1), LR(1) LALR(1). Para cada uno de estos anlisis el programa mostrar todos los pasos ejecutados as como los resultados intermedios que se obtienen en la comprobacin del tipo de gramtica (tablas...), para que el usuario no slo sepa s una gramtica es de un tipo u otro, sino que adems pueda deducir por qu la gramtica no es de un tipo determinado. Por otra parte una vez que determinemos de qu tipo es la gramtica introducida podremos simular los distintos analizadores sintcticos asociados a dichas gramticas, introducindoles una entrada de smbolos y comprobando si dicha entrada es reconocida o no por la gramtica. Es este caso tendremos dos opciones, una de ellas ser ver todo el proceso de anlisis de la entrada viendo todas las estructuras internas que se utilizan en el anlisis. La segunda opcin de simulacin ser la introduccin directa del conjunto de smbolos a analizar, y el programa nos dir directamente si dicha entrada es reconocida o no por la gramtica pero sin entrar en ningn tipo de detalles de porque es as. Para ambas opciones podremos obtener el rbol de sintaxis resultante de la simulacin. Adems el programa nos da la posibilidad de operar sobre las gramticas editndolas y aplicando sobre ellas distintas transformaciones (que se vern mas adelante) de modo que generen otras gramticas equivalentes que se adapten as a un tipo concreto de gramtica.
-2-
Anagra 2.0. Manual de Usuario Tambin nos ofrece el programa los conjuntos PRI y SIG de los smbolos de la gramtica y obtener el conjunto PRI de una determinada forma de frase formada por smbolos de la gramtica.
Resultados tras la apertura de la gramtica Ejecucin exitosa: Gramtica mostrada en pantalla, y calculados sus conjuntos PRI y SIG. Ejecucin errnea: Ver errores de apertura de gramtica.
Resultados tras la edicin de la gramtica Ejecucin exitosa: Gramtica editada mostrada en pantalla, y calculados sus conjuntos PRI y SIG. Ejecucin errnea: Ver errores de edicin de gramticas.
-3-
Resultados tras el clculo del conjunto PRI de una forma de frase Ejecucin exitosa: Muestra en pantalla del conjunto de smbolos PRI correspondiente a la forma de frase que hemos introducido. Ejecucin errnea: Ver errores del clculo del conjunto PRI de una forma de frase.
Resultados tras el clculo del conjunto PRI de una forma de frase Ejecucin exitosa: Gramtica equivalente mostrada en una ventana aparte. Tambin quedan calculados los conjuntos PRI y SIG de la nueva gramtica. Ejecucin errnea: Ver errores de transformacin de gramticas.
Resultados tras el anlisis LL(1) Ejecucin exitosa: Se muestra en pantalla la tabla del anlisis LL(1) correspondiente a dicha gramtica. En esta tabla se especifica si la gramtica es o no del tipo LL(1) y las causas. Ejecucin errnea: Ver errores del anlisis LL(1).
Resultados tras ver la tabla de anlisis LL(1) Ejecucin exitosa: La tabla de anlisis LL(1) se muestra en pantalla. Ejecucin errnea: Ver errores de Ver tabla de anlisis LL(1).
Resultados tras el anlisis SLR(1) Ejecucin exitosa: Se muestra en pantalla la gramtica ampliada utilizada durante el anlisis, la tabla de anlisis SLR(1) y el autmata de conjuntos de configuraciones LR(0) en modo grfico y en modo texto correspondientes a dicha gramtica. En la tabla se especifica si la gramtica es o no del tipo SLR(1) y las causas de ello. Ejecucin errnea: Ver errores del anlisis SLR(1).
Resultados tras ver la tabla y el autmata SLR(1) Ejecucin exitosa: La gramtica ampliada utilizada durante el anlisis, la tabla del anlisis SLR(1) y el autmata de conjuntos de configuraciones LR(0) en modo grfico y en modo texto correspondientes a dicha gramtica se muestran en pantalla. Ejecucin errnea: Ver errores de Ver tabla de anlisis SLR(1).
Resultados tras el anlisis LR(1) Ejecucin exitosa: Se muestra en pantalla la gramtica ampliada utilizada durante el anlisis, la tabla de anlisis LR(1) y el autmata de conjuntos de configuraciones LR(1) en modo grfico y
-5-
Anagra 2.0. Manual de Usuario en modo texto correspondientes a dicha gramtica. En la tabla se especifica si la gramtica es o no del tipo LR(1) y las causas de ello. Ejecucin errnea: Ver errores del anlisis LR(1).
Resultados tras ver la tabla y el autmata LR(1) Ejecucin exitosa: La gramtica ampliada utilizada durante el anlisis, la tabla del anlisis LR(1) y el autmata de conjuntos de configuraciones LR(1) en modo grfico y en modo texto correspondientes a dicha gramtica se muestran en pantalla. Ejecucin errnea: Ver errores de Ver tabla de anlisis LR(1).
Resultados tras el anlisis LALR(1) Ejecucin exitosa: Se muestra en pantalla la gramtica ampliada utilizada durante el anlisis, la tabla de anlisis LALR(1) y el autmata de conjuntos de configuraciones LR(0) en modo grfico y en modo texto correspondientes a dicha gramtica. En la tabla se especifica si la gramtica es o no del tipo LALR(1) y las causas de ello. Ejecucin errnea: Ver errores del anlisis LALR(1).
Resultados tras ver la tabla y el autmata LALR(1) Ejecucin exitosa: La gramtica ampliada utilizada durante el anlisis, la tabla del anlisis LALR(1) y el autmata de conjuntos de configuraciones LR(0) en modo grfico y en modo texto correspondientes a dicha gramtica se muestran en pantalla. Ejecucin errnea: Ver errores de Ver tabla de anlisis LALR(1).
-6-
Resultados tras simular entrada LL(1) Ejecucin exitosa: Se muestra en pantalla las estructuras necesarias en la simulacin (pila de smbolos, producciones emitidas y entrada del simulador) y cada vez que se presiona sobre el botn de simular 1 paso se ejecuta un paso de la simulacin y se actualizan los valores de las estructuras. Asimismo, a la vez que se ejecuta la simulacin se muestra el rbol de sintaxis asociado a la entrada que se est comprobando. Se determina si la entrada es aceptada por la gramtica segn el analizador LL(1) o no. Ejecucin errnea: Ver errores de simular entrada LL(1).
Resultados tras simular entrada LL(1) Ejecucin exitosa: Se muestra en pantalla las estructuras necesarias en la simulacin (pila de smbolos, producciones emitidas y entrada del simulador) y cada vez que se presiona sobre el botn de simular 1 paso se ejecuta un paso de la simulacin y se actualizan los valores de las estructuras. Asimismo, a la vez que se ejecuta la simulacin se muestra el rbol de sintaxis asociado a la entrada que se est comprobando. Se determina si la entrada es aceptada por la gramtica segn el analizador SLR(1) o no. Ejecucin errnea: Ver errores de simular entrada SLR(1).
-7-
Anagra 2.0. Manual de Usuario Aparicin de la ventana donde introducimos la frase que va a ser simulada para ver si es reconocida por la gramtica.
Resultados tras simular entrada LR(1) Ejecucin exitosa: Se muestra en pantalla las estructuras necesarias en la simulacin (pila de smbolos, producciones emitidas y entrada del simulador) y cada vez que se presiona sobre el botn de simular 1 paso se ejecuta un paso de la simulacin y se actualizan los valores de las estructuras. Asimismo, a la vez que se ejecuta la simulacin se muestra el rbol de sintaxis asociado a la entrada que se est comprobando. Se determina si la entrada es aceptada por la gramtica segn el analizador LR(1) o no. Ejecucin errnea: Ver errores de simular entrada LR(1).
Resultados tras simular entrada LALR(1) Ejecucin exitosa: Se muestra en pantalla las estructuras necesarias en la simulacin (pila de smbolos, producciones emitidas y entrada del simulador) y cada vez que se presiona sobre el botn de simular 1 paso se ejecuta un paso de la simulacin y se actualizan los valores de las estructuras. Asimismo, a la vez que se ejecuta la simulacin se muestra el rbol de sintaxis asociado a la entrada que se est comprobando. Se determina si la entrada es aceptada por la gramtica segn el analizador LALR(1) o no. Ejecucin errnea: Ver errores de simular entrada LALR(1).
-8-
Anagra 2.0. Manual de Usuario Se muestra en pantalla si la entrada es reconocida o no por el analizador sintctico que hemos elegido asociado a la gramtica. Asimismo se mostrar una nueva ventana con el rbol de sintaxis obtenido, si as se ha especificado. Ejecucin errnea: Ver errores de comprobar entrada.
-9-
Anagra 2.0. Manual de Usuario Causas: Se ha localizado en la gramtica que se quiere usar, un smbolo terminal que no ha sigo definido como tal en la gramtica y es un smbolo no literal. Resultados del error: Se abre el fichero pero solo se permite su edicin. Para poder analizar la gramtica y transformarla se deber de presionar la opcin Aceptar gramtica del men Edicin para volver a ver la correccin de la gramtica. ERROR 4: Fichero no encontrado Cabecera del mensaje de error: Error en el fichero de la gramtica. Mensaje de error que aparece en pantalla: Fichero no encontrado. Causas: El fichero que se especific para su lectura no ha sido encontrado. Resultados del error: Se aborta la operacin de apertura del fichero.
AVISO1: La gramtica reconoce a la palabra vaca en la eliminacin de anulables Cabecera del mensaje de error: ATENCIN !!!. Mensaje de error que aparece en pantalla: La gramtica que desea transformar reconoce la palabra vaca, por lo que la gramtica resultante contendr tambin a la palabra vaca. Causas: La gramtica que se desea transformar reconoce a la palabra vaca. Resultados del aviso: Si se elige la opcin de continuar la transformacin, la gramtica resultante reconocer tambin a la palabra vaca, siendo el smbolo inicial el nico no terminal anulable de la gramtica. En caso contrario de se anular la transformacin y se volver a la pantalla inicial.
-11-
-12-
-13-
-14-
Anagra 2.0. Manual de Usuario Esta pantalla consta de una serie de mens que ofrecen al usuario todas las posibilidades de la aplicacin, un cuadro de texto donde se muestra la gramtica con la que estamos trabajando, una barra de estado donde se muestra el estado del editor (escritura, lectura) y la lnea y columna donde se encuentra el cursor, y un cuadro de texto en la parte inferior donde se va informando de las operaciones que se realizan. Los mens desplegables que aparecen en la Pantalla Principal se detallan en los puntos siguientes.
Figura 2: Dilogo de apertura de fichero Una vez que hayamos seleccionado la gramtica y esta no sea errnea, se mostrar en la Pantalla Principal.
-15-
Anagra 2.0. Manual de Usuario anteriormente y que ya hayan sido comprobadas. Cuando una gramtica se comprueba que es correcta pasa a modo lectura para poder actuar con ella.
-16-
3.2.4. Borrar
Borra el trozo de texto seleccionado.
-17-
Figura 5: Dilogo Buscar El cuadro de dilogo guarda las diez ltimas bsquedas realizadas.
Figura 6: Dilogo Reemplazar El cuadro de dilogo guarda los diez ltimos reemplazamientos. Esta opcin solamente est activa en modo edicin.
-18-
3.3.4. Ir a lnea
Esta opcin permite al usuario ir a una determinada lnea de la gramtica. La figura 7 muestra el dilogo en cuestin.
3.4.1. Fuente
Permite cambiar el tipo de letra con el que estamos editando o mostrando la gramtica. En la figura 8 aparece el dilogo.
3.4.2. Color
Permite cambiar el color de letra con el que estamos editando o mostrando la gramtica. En la figura 9 aparece el dilogo.
-19-
3.4.3. Tabulador
Permite cambiar el nmero de espacios que formarn un tabulador por defecto.
3.4.4. Extendido
Permite cambiar el formato en el que aparece la gramtica editada o abierta al formato extendido. En este formato las producciones aparecen de la siguiente manera. Parte Izquierda : Parte Derecha1 | Parte Derecha2 | ................. | Parte Derecha n ;
3.4.5. Compacto
Permite cambiar el formato en el que aparece la gramtica editada o abierta al formato compacto. En este formato las producciones aparecen de la siguiente manera. Parte Izquierda : Parte Derecha1 | Parte Derecha2 | ................. | Parte Derecha n;
-20-
Figura 10: Ventana de clculo del conjunto PRI de una forma de frase
-21-
Anagra 2.0. Manual de Usuario Una vez aplicada la transformacin, la gramtica resultante aparece en una ventana nueva para que puedan compararse las diferencias entre la gramtica original y la transformada. Del mismo modo, si la transformacin provoca una eliminacin de smbolos gramaticales, estos smbolos eliminados aparecen en la parte inferior de la nueva ventana para informacin del usuario. La figura 11 representa la nueva ventana donde aparece una gramtica a la que se le han eliminado los smbolos que no son accesibles desde el smbolo inicial:
-22-
-23-
Anagra 2.0. Manual de Usuario cada uno de estos nodos basta con hacer doble click con el ratn sobre el nodo que queremos obtener informacin. Aparecer una ventana independiente conteniendo esta informacin.
Figura 13: Tabla obtenida a partir del anlisis SLR(1) En la figura 14 se muestra el autmata y en la figura 15 se muestra la ventana que aparece cuando solicito informacin acerca del conjunto de configuraciones 0.
-25-
-26-
Figura 15: Informacin acerca del conjunto de configuraciones 0 Adems aparecen dos ventanas ms conteniendo el autmata en modo texto y la gramtica ampliada a partir de la cual se ha generado el autmata. En las figuras 16 y 17 se muestran dichas ventanas.
-27-
Figura 18: Tabla obtenida a partir del anlisis LR(1) En otra de las ventanas aparece el autmata de conjuntos de configuraciones LR(1) a partir del cual se genera la tabla. Cuando aparece el autmata los nodos ya estn distribuidos por la ventana evitando cruces entre ejes en la medida de lo posible. En estos nodos solo aparece el nmero del conjunto de configuraciones. Para visualizar la informacin que se almacena en cada uno de estos nodos basta con hacer doble click con el ratn sobre el nodo que queremos obtener informacin. Aparecer una ventana independiente conteniendo esta informacin. En la figura 19 se muestra el autmata y en la figura 20 se muestra la ventana que aparece cuando solicito informacin acerca del conjunto de configuraciones 0. -28-
-29-
Figura 20: Informacin acerca del conjunto de configuraciones 0 Adems aparecen dos ventanas ms conteniendo el autmata en modo texto y la gramtica ampliada a partir de la cual se ha generado el autmata. En las figuras 21 y 22 se muestran dichas ventanas.
-30-
-31-
-32-
Anagra 2.0. Manual de Usuario Figura 24: Autmata a partir del cual se genera la tabla LALR(1)
-33-
Figura 28: Peticin de entrada del simulador Una vez que pulsemos el botn Aceptar, aparecer la ventana de simulacin donde se recogen las estructuras internas del simulador (pila de smbolos, producciones emitidas, entrada que falta por analizar y entrada original del simulador). Esta ventana se muestra en la figura 29.
-34-
Figura 29: Ventana de simulacin En esta ventana, cada vez que pulsemos el botn Simular 1 Paso, se ejecutar un paso del proceso de simulacin y se actualizarn las estructuras del analizador en pantalla. Adems al comenzar la simulacin aparecer una nueva ventana donde se ir construyendo, tambin paso a paso, el rbol de sintaxis que corresponde a la entrada que se est simulando. Dicha ventana aparece en la figura 30.
-35-
-36-
-37-
Anagra 2.0. Manual de Usuario Forma de frase que se introduce para obtener el conjunto PRI. En este caso, se introducirn los smbolos de la gramtica separados por uno o ms espacios en blanco o tabuladores. Las mismas palabras reservadas que tenemos para los ficheros donde se almacenan las gramticas, los tenemos aqu. Dichas palabras se especifican en el punto anterior. Ante cualquier error en la formacin de la forma de frase, ANAGRA mostrara un mensaje de error indicndolo. Para ver posibles errores nos remitimos al punto 2.2.3. Calculo del conjunto PRI de una forma de frase. Entrada que simularemos con el analizador sintctico asociado a las gramticas. Similar al apartado anterior, pero puntualizando que aqu los smbolos de la gramtica que utilizamos son slo los terminales.
-38-
-39-