1. ESCUELA DE INGENIERÍA SEMESTRE ACADÉMICO
MAYO – AGOSTO 2020
TRABAJO DE INVESTIGACIÓN DE COMPILADORES
Nombre: Josseline Andrade Fecha: 22-07-2020
INTÉRPRETE SENCILLO UTILIZANDO GOLD PARSER
Descripción del proyecto de compiladores
Se desarrollará un intérprete que recibe como entrada varias expresiones aritméticas y
presenta como salida el resultado de dichas expresiones evaluadas.
Tecnologías utilizadas en el proyecto de compilación
Las tecnologías a utilizar son:
• Gold Parser Builder: Generador de analizadores léxicos y sintácticos diseñado
para funcionar en múltiples lenguajes de programación.
• Visual Studio 2017: Entorno de desarrollo integrado para programar Visual Basic
y C#, entre otros.
• Windows 10: Sistema operativo
Descripción de la herramienta para crear el producto de compiladores
Gold Parser
Gold Parser es un generador de analizadores léxicos y sintácticos que soporta lenguajes
tales como C#, COBOL, DELPHI, Visual Basic, Java entre otros. Este programa realiza
de manera conjunta el análisis léxico y sintáctico, por lo que no tenemos la necesidad
de recurrir a ningún programa externo.
La principal tarea de un analizador léxico es leer los caracteres de entrada del programa
fuente, agruparlos en lexemas y producir como salida una secuencia de tokens.
• Un token es un par que consiste en un nombre de token y un valor de atributo
opcional.
• Un lexema es una secuencia de caracteres en el programa fuente, que coinciden
con el patrón para un token y que el analizador léxico identifica como una instancia
de este tóken.
• Un patrón es una descripción de la forma que pueden tomar los lexemas de un
token.
El analizador sintáctico obtiene una cadena de tokens del analizador léxico y verifica
que dicha cadena pueda generarse con la gramática para el lenguaje fuente. Una
gramática proporciona una especificación precisa y fácil de entender de un lenguaje de
programación.
Pre-requisitos
• Gold Parser Builder
• Visual Studio
2. Pasos para crear el producto de compiladores
Realizar la instalación del software Gold Parser
1. Ingresar al link http://www.goldparser.org/builder/index.htm
2. Descargar la opción que se muestra acontinuación.
3. Descomprimimos el archivo ZIP descargado y ejecutamos el archivo setup.exe
que encontraremos dentro de los files descomprimidos.
4. Y ponemos siguiente en todos los pasos siguientes
3.
4. 5. Abrimos Gold parser Builder
6. Ejecutamos la aplicación Gold Parser Builder y tendremos un ambiente de
trabajo como el que se muestra a continuación.
7. Lo primero que debemos hacer para comenzar a trabajar con Gold Parser
Builder es definir la gramática.
5. 8. Luego procedemos a guardar la gramática seleccionando la opción “File” →
“Save”, el archivo resultante tendrá extensión GRM, que es una extensión
propia de Gold Parser.
9. Posteriormente seleccionamos la opción “Project” → “Analyze the
Grammar”, esto analizará la gramática y nos mostrará los conflictos si
existieran.
10. Procedemos con la creación de las tablas para el análisis LALR. Esto lo
hacemos seleccionando la opción “Project” → “Create LALR Parse Tables”
6. 11. Crear las tablas del autómata finito determinista que será el encargado de
realizar el análisis léxico. Para ello seleccionamos la opción “Project” →
“Create DFA Lexer Tables”.
12. Por último, procedemos a guardar todas las tablas, estas serán importadas
posteriormente en nuestro programa para poder realizar el análisis léxico y
sintáctico del texto recibido como entrada. Para ello seleccionamos la opción
“Project” → “Save the Tables”.
13. Esta ventana se cerrará y Gold Parser nos mostrará un mensaje diciendo que
se guardaron las tablas correctamente.
7. 14. El siguiente paso es crear el esqueleto de un programa, para ello
seleccionamos “Project” → “Create a Skeleton Program…”.
15. Se nos desplegarán varias opciones para generar el esqueleto, para este
ejemplo en específico utilizaremos Visual Basic .NET y como motor Cock .NET
DLL.
16. Seleccionaremos la opción de crear y nos mostrará una ventana desde la cual
podremos seleccionar la ruta en la cual queremos guardar el esqueleto de
nuestro programa. Obtendremos como resultado un archivo con extensión VB.
El archivo EGT con las tablas generado para este ejemplo está disponible en
la carpeta Gramática del repositorio de este ejemplo.
8. Todo esto haremos en Gold Parser y a continuación utilizaremos visual studio
1. Seleccionamos “File” → “New” → “Project”, una vez abierto el wizard para crear
nuevos proyectos seleccionamos el apartado “Visual Basic” → “Windows
Desktop” → “Console App (.NET Framework)” y le pondremos como nombre
Calculadora.
2. Para poder utilizar el esqueleto que generamos en Gold Parser en el proyecto
que acabamos de crear necesitaremos importar la librería .NET DLL que realiza
el proceso de análisis, esta libería debe descargarse en la página oficial.
9. 3. Luego de descargar y descomprimir la librería obtendremos el archivo “Gold
Engine.dll” que es el que debemos importar en nuestro proyecto.
4. Con el proyecto creado debemos de pegar el archivo de las tablas de análisis
generadas en Gold Parser (Expresiones aritméticas.egt) y la librería que
acabamos de descargar (GOLD Engine.dll) en la carpeta
Calculadora/Calculadora/bin/debug de nuestro proyecto.
5. También debemos de pegar el esqueleto que generamos con Gold Parser
(Expresiones aritméticas.vb) en la carpeta principal de nuestro proyecto.
10. 6. Regresamos a Visual Studio y desde el explorador de soluciones debemos de
realizar dos procedimientos.
El primero es importar el archivo que contiene el esqueleto generado en Gold
Parser (Expresiones aritméticas.vb), para ello hacemos click derecho sobre el
nombre de nuestro proyecto “Add” → “Existing Item…”.
Luego seleccionamos el archivo de nuestro esqueleto.
11. 7. El segundo procedimiento a realizar en el explorador de soluciones es importar
la librería que acabamos de pegar en nuestra carpeta debug, para hacerlo
daremos click derecho en “References” → “Add Reference…” Esto nos
desplegara una nueva ventana, seleccionamos la opción “Browse…” y
seleccionamos nuestro archivo .dll y daremos click en aceptar.
8. Por último, abrimos el archivo que contiene el esqueleto que generamos con
Gold Parser (Expresiones aritméticas.vb) y dentro de las líneas de código buscar
el método con el nombre Setup. Es la única instrucción que posee este método,
debemos cambiar el nombre del archivo gramar.egt por el nombre de nuestro
archivo de tablas (Expresiones aritméticas.egt), es de suma importancia que
hayamos pegado nuestras tablas en la carpeta debug, de otra manera nuestro
programa no las podrá encontrar y nos arrojará un error en tiempo de ejecución.
12. 9. Creamos un nuevo archivo de texto llamado entrada.txt. El contenido de este
archivo es el siguiente:
Este archivo de entrada será creado en la carpeta Calculadora/Calculadora/bin/debug
de nuestro proyecto.
PRODUCTO FINAL
El programa por defecto está configurado para leer el archivo entrada.txt en la carpeta
Calculadora/Calculadora/bin/debug del proyecto.
13. Referencias
Navarro, E. (22 de Julio de 2019). ICARUS. Obtenido de https://ericknavarro.io/2019/07/22/18-
Mi-Primer-Proyecto-Utilizando-GOLD-Parser-Windows/