SlideShare una empresa de Scribd logo
1 de 13
Descargar para leer sin conexión
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
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
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.
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”
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.
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.
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.
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.
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.
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.
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.
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/

Más contenido relacionado

La actualidad más candente

Procesos Introduccion a los sistemas operativos
 Procesos Introduccion a los sistemas operativos Procesos Introduccion a los sistemas operativos
Procesos Introduccion a los sistemas operativosG Hoyos A
 
Ejemplo pruebas de software
Ejemplo pruebas de softwareEjemplo pruebas de software
Ejemplo pruebas de softwareJohn Fonseca
 
4. Desarrollo ágil de software
4. Desarrollo ágil de software4. Desarrollo ágil de software
4. Desarrollo ágil de softwareCoesi Consultoria
 
Concepto y extensiones de negocio de Eriksson Penker
Concepto y extensiones de negocio de Eriksson PenkerConcepto y extensiones de negocio de Eriksson Penker
Concepto y extensiones de negocio de Eriksson PenkerMarcos Omar Cruz Ortrega
 
GUIA 1 HILOS Y PROCESOS
GUIA 1 HILOS Y PROCESOSGUIA 1 HILOS Y PROCESOS
GUIA 1 HILOS Y PROCESOSMario Martinez
 
Estandares de calidad del software
Estandares de calidad del softwareEstandares de calidad del software
Estandares de calidad del softwareSusy12
 
Evaluación lógica de programación
Evaluación lógica de programaciónEvaluación lógica de programación
Evaluación lógica de programaciónJudith Poma
 

La actualidad más candente (20)

Calculadora con operaciones básicas en java
Calculadora con operaciones básicas en javaCalculadora con operaciones básicas en java
Calculadora con operaciones básicas en java
 
Modelo evolutivo
Modelo evolutivoModelo evolutivo
Modelo evolutivo
 
Procesos Introduccion a los sistemas operativos
 Procesos Introduccion a los sistemas operativos Procesos Introduccion a los sistemas operativos
Procesos Introduccion a los sistemas operativos
 
Ejemplo pruebas de software
Ejemplo pruebas de softwareEjemplo pruebas de software
Ejemplo pruebas de software
 
Modelado conceptual de aplicaciones web
Modelado conceptual de aplicaciones webModelado conceptual de aplicaciones web
Modelado conceptual de aplicaciones web
 
4. Desarrollo ágil de software
4. Desarrollo ágil de software4. Desarrollo ágil de software
4. Desarrollo ágil de software
 
Concepto y extensiones de negocio de Eriksson Penker
Concepto y extensiones de negocio de Eriksson PenkerConcepto y extensiones de negocio de Eriksson Penker
Concepto y extensiones de negocio de Eriksson Penker
 
Java con base de datos
Java con base de datosJava con base de datos
Java con base de datos
 
Pseudocodigo
PseudocodigoPseudocodigo
Pseudocodigo
 
JDBC(conjunto de clases e interfaces)
JDBC(conjunto de clases e interfaces)JDBC(conjunto de clases e interfaces)
JDBC(conjunto de clases e interfaces)
 
Squid
SquidSquid
Squid
 
Cajero automatico
Cajero automaticoCajero automatico
Cajero automatico
 
Gestión de memoria
Gestión de memoriaGestión de memoria
Gestión de memoria
 
GUIA 1 HILOS Y PROCESOS
GUIA 1 HILOS Y PROCESOSGUIA 1 HILOS Y PROCESOS
GUIA 1 HILOS Y PROCESOS
 
Arreglos - Assembler
Arreglos - AssemblerArreglos - Assembler
Arreglos - Assembler
 
Estandares de calidad del software
Estandares de calidad del softwareEstandares de calidad del software
Estandares de calidad del software
 
Ensamblador y lenguaje c
Ensamblador y lenguaje cEnsamblador y lenguaje c
Ensamblador y lenguaje c
 
Metodología WEB UWE
Metodología WEB UWEMetodología WEB UWE
Metodología WEB UWE
 
Evaluación lógica de programación
Evaluación lógica de programaciónEvaluación lógica de programación
Evaluación lógica de programación
 
Introducción a la ingeniería del software
Introducción a la ingeniería del softwareIntroducción a la ingeniería del software
Introducción a la ingeniería del software
 

Similar a Interprete utilizando gold parser

Gold parser josseline andrade
Gold parser josseline andradeGold parser josseline andrade
Gold parser josseline andradeJOSSELINEMARIBEL
 
Inf 1 (instalación de visual studio code)
Inf 1 (instalación de visual studio code) Inf 1 (instalación de visual studio code)
Inf 1 (instalación de visual studio code) Carlos Guzmán
 
¿Qué es y cómo instalar un entorno de desarrollo de programación?
¿Qué es y cómo instalar un entorno de desarrollo de programación?¿Qué es y cómo instalar un entorno de desarrollo de programación?
¿Qué es y cómo instalar un entorno de desarrollo de programación?Agencia La Nave
 
2da parte instalación del compilador
 2da parte instalación del compilador 2da parte instalación del compilador
2da parte instalación del compiladoryuli02
 
Lenguaje de programacion c++ basico 2da parte instalación del compilador
Lenguaje de programacion c++ basico 2da parte instalación del compiladorLenguaje de programacion c++ basico 2da parte instalación del compilador
Lenguaje de programacion c++ basico 2da parte instalación del compiladorDunkherz
 
Lenguajesdeprogramacion c nivel1-unidad2-01-instalando compilador el compilador
Lenguajesdeprogramacion c nivel1-unidad2-01-instalando compilador el compiladorLenguajesdeprogramacion c nivel1-unidad2-01-instalando compilador el compilador
Lenguajesdeprogramacion c nivel1-unidad2-01-instalando compilador el compiladorCarlos
 
Lenguajesdeprogramacion c nivel1-unidad2-01-instalando compilador el compilador
Lenguajesdeprogramacion c nivel1-unidad2-01-instalando compilador el compiladorLenguajesdeprogramacion c nivel1-unidad2-01-instalando compilador el compilador
Lenguajesdeprogramacion c nivel1-unidad2-01-instalando compilador el compiladorCarlos
 
Lenguajesdeprogramacion c nivel1-unidad2-01-instalando compilador el compilador
Lenguajesdeprogramacion c nivel1-unidad2-01-instalando compilador el compiladorLenguajesdeprogramacion c nivel1-unidad2-01-instalando compilador el compilador
Lenguajesdeprogramacion c nivel1-unidad2-01-instalando compilador el compiladorCarlos
 
Como operar con_code...
Como operar con_code...Como operar con_code...
Como operar con_code...Luis TC
 
Como operar con code...
Como operar con  code...Como operar con  code...
Como operar con code...Luis TC
 
Pasos para crear un proyecto de visual studio 2008[1][1]
Pasos para crear un proyecto de visual studio 2008[1][1]Pasos para crear un proyecto de visual studio 2008[1][1]
Pasos para crear un proyecto de visual studio 2008[1][1]carechupona
 
Tutorial de-codeblocks
Tutorial de-codeblocksTutorial de-codeblocks
Tutorial de-codeblocksMartinCetis109
 
Tutorial de-codeblocks (1)
Tutorial de-codeblocks (1)Tutorial de-codeblocks (1)
Tutorial de-codeblocks (1)MartinCetis109
 
Working with Files, Streams, and Serialization.pdf
Working with Files, Streams, and Serialization.pdfWorking with Files, Streams, and Serialization.pdf
Working with Files, Streams, and Serialization.pdfeudilac1
 
Framework .NET 3.5 02 Entorno de desarrollo (ide)
Framework .NET 3.5 02 Entorno de desarrollo (ide)Framework .NET 3.5 02 Entorno de desarrollo (ide)
Framework .NET 3.5 02 Entorno de desarrollo (ide)Antonio Palomares Sender
 
Resolviendo problemas-con-cplusplus
Resolviendo problemas-con-cplusplusResolviendo problemas-con-cplusplus
Resolviendo problemas-con-cplusplusGladys Arce
 
Resolviendo problemas-con-cplusplus
Resolviendo problemas-con-cplusplusResolviendo problemas-con-cplusplus
Resolviendo problemas-con-cplusplusAbefo
 
Manual codeblocks luis_ocampo
Manual codeblocks luis_ocampoManual codeblocks luis_ocampo
Manual codeblocks luis_ocampoluis_ocampo27
 

Similar a Interprete utilizando gold parser (20)

Gold parser josseline andrade
Gold parser josseline andradeGold parser josseline andrade
Gold parser josseline andrade
 
Inf 1 (instalación de visual studio code)
Inf 1 (instalación de visual studio code) Inf 1 (instalación de visual studio code)
Inf 1 (instalación de visual studio code)
 
¿Qué es y cómo instalar un entorno de desarrollo de programación?
¿Qué es y cómo instalar un entorno de desarrollo de programación?¿Qué es y cómo instalar un entorno de desarrollo de programación?
¿Qué es y cómo instalar un entorno de desarrollo de programación?
 
Tutorial de CodeBlocks
Tutorial de CodeBlocksTutorial de CodeBlocks
Tutorial de CodeBlocks
 
2da parte instalación del compilador
 2da parte instalación del compilador 2da parte instalación del compilador
2da parte instalación del compilador
 
Lenguaje de programacion c++ basico 2da parte instalación del compilador
Lenguaje de programacion c++ basico 2da parte instalación del compiladorLenguaje de programacion c++ basico 2da parte instalación del compilador
Lenguaje de programacion c++ basico 2da parte instalación del compilador
 
Lenguajesdeprogramacion c nivel1-unidad2-01-instalando compilador el compilador
Lenguajesdeprogramacion c nivel1-unidad2-01-instalando compilador el compiladorLenguajesdeprogramacion c nivel1-unidad2-01-instalando compilador el compilador
Lenguajesdeprogramacion c nivel1-unidad2-01-instalando compilador el compilador
 
Lenguajesdeprogramacion c nivel1-unidad2-01-instalando compilador el compilador
Lenguajesdeprogramacion c nivel1-unidad2-01-instalando compilador el compiladorLenguajesdeprogramacion c nivel1-unidad2-01-instalando compilador el compilador
Lenguajesdeprogramacion c nivel1-unidad2-01-instalando compilador el compilador
 
Lenguajesdeprogramacion c nivel1-unidad2-01-instalando compilador el compilador
Lenguajesdeprogramacion c nivel1-unidad2-01-instalando compilador el compiladorLenguajesdeprogramacion c nivel1-unidad2-01-instalando compilador el compilador
Lenguajesdeprogramacion c nivel1-unidad2-01-instalando compilador el compilador
 
Como operar con_code...
Como operar con_code...Como operar con_code...
Como operar con_code...
 
Como operar con code...
Como operar con  code...Como operar con  code...
Como operar con code...
 
Como operar con code...
Como operar con  code...Como operar con  code...
Como operar con code...
 
Pasos para crear un proyecto de visual studio 2008[1][1]
Pasos para crear un proyecto de visual studio 2008[1][1]Pasos para crear un proyecto de visual studio 2008[1][1]
Pasos para crear un proyecto de visual studio 2008[1][1]
 
Tutorial de-codeblocks
Tutorial de-codeblocksTutorial de-codeblocks
Tutorial de-codeblocks
 
Tutorial de-codeblocks (1)
Tutorial de-codeblocks (1)Tutorial de-codeblocks (1)
Tutorial de-codeblocks (1)
 
Working with Files, Streams, and Serialization.pdf
Working with Files, Streams, and Serialization.pdfWorking with Files, Streams, and Serialization.pdf
Working with Files, Streams, and Serialization.pdf
 
Framework .NET 3.5 02 Entorno de desarrollo (ide)
Framework .NET 3.5 02 Entorno de desarrollo (ide)Framework .NET 3.5 02 Entorno de desarrollo (ide)
Framework .NET 3.5 02 Entorno de desarrollo (ide)
 
Resolviendo problemas-con-cplusplus
Resolviendo problemas-con-cplusplusResolviendo problemas-con-cplusplus
Resolviendo problemas-con-cplusplus
 
Resolviendo problemas-con-cplusplus
Resolviendo problemas-con-cplusplusResolviendo problemas-con-cplusplus
Resolviendo problemas-con-cplusplus
 
Manual codeblocks luis_ocampo
Manual codeblocks luis_ocampoManual codeblocks luis_ocampo
Manual codeblocks luis_ocampo
 

Más de JOSSELINEMARIBEL

Procesamiento de imagenes morfologia
Procesamiento de imagenes morfologiaProcesamiento de imagenes morfologia
Procesamiento de imagenes morfologiaJOSSELINEMARIBEL
 
Transformaciones de intensidad
Transformaciones de intensidadTransformaciones de intensidad
Transformaciones de intensidadJOSSELINEMARIBEL
 
Josseline andrade procesamiento
Josseline andrade procesamientoJosseline andrade procesamiento
Josseline andrade procesamientoJOSSELINEMARIBEL
 
Graficas sencillas en_matlab
Graficas sencillas en_matlabGraficas sencillas en_matlab
Graficas sencillas en_matlabJOSSELINEMARIBEL
 
Ejercicios de programacion_con_matlab
Ejercicios de programacion_con_matlabEjercicios de programacion_con_matlab
Ejercicios de programacion_con_matlabJOSSELINEMARIBEL
 
Operaciones con matrices_en_matlab
Operaciones con matrices_en_matlabOperaciones con matrices_en_matlab
Operaciones con matrices_en_matlabJOSSELINEMARIBEL
 
Manual de instalacion_matlab
Manual de instalacion_matlabManual de instalacion_matlab
Manual de instalacion_matlabJOSSELINEMARIBEL
 
Clase 2 fundamentos de teoria de color
Clase 2 fundamentos de teoria de colorClase 2 fundamentos de teoria de color
Clase 2 fundamentos de teoria de colorJOSSELINEMARIBEL
 
Fundamentos de teoria del color
Fundamentos de teoria del colorFundamentos de teoria del color
Fundamentos de teoria del colorJOSSELINEMARIBEL
 
Taller n26 gramaticas_indep_contexto_p2_compiladores_30_julio_2020-convertido
Taller n26 gramaticas_indep_contexto_p2_compiladores_30_julio_2020-convertidoTaller n26 gramaticas_indep_contexto_p2_compiladores_30_julio_2020-convertido
Taller n26 gramaticas_indep_contexto_p2_compiladores_30_julio_2020-convertidoJOSSELINEMARIBEL
 
Taller n25 gramaticas_indep_contexto_compiladores_29_julio_2020-convertido
Taller n25 gramaticas_indep_contexto_compiladores_29_julio_2020-convertidoTaller n25 gramaticas_indep_contexto_compiladores_29_julio_2020-convertido
Taller n25 gramaticas_indep_contexto_compiladores_29_julio_2020-convertidoJOSSELINEMARIBEL
 
Taller n20 compiladores_optimizacion_codigo_9_julio_2020-convertido
Taller n20 compiladores_optimizacion_codigo_9_julio_2020-convertidoTaller n20 compiladores_optimizacion_codigo_9_julio_2020-convertido
Taller n20 compiladores_optimizacion_codigo_9_julio_2020-convertidoJOSSELINEMARIBEL
 

Más de JOSSELINEMARIBEL (20)

Manual instalacion vegas
Manual instalacion vegasManual instalacion vegas
Manual instalacion vegas
 
Segementacion de imagenes
Segementacion de imagenesSegementacion de imagenes
Segementacion de imagenes
 
Procesamiento de imagenes morfologia
Procesamiento de imagenes morfologiaProcesamiento de imagenes morfologia
Procesamiento de imagenes morfologia
 
Transformaciones de intensidad
Transformaciones de intensidadTransformaciones de intensidad
Transformaciones de intensidad
 
Josseline andrade procesamiento
Josseline andrade procesamientoJosseline andrade procesamiento
Josseline andrade procesamiento
 
Uso de bucles_en_matlab
Uso de bucles_en_matlabUso de bucles_en_matlab
Uso de bucles_en_matlab
 
Taller matlab functions
Taller matlab functionsTaller matlab functions
Taller matlab functions
 
Graficas sencillas en_matlab
Graficas sencillas en_matlabGraficas sencillas en_matlab
Graficas sencillas en_matlab
 
Ejercicios de programacion_con_matlab
Ejercicios de programacion_con_matlabEjercicios de programacion_con_matlab
Ejercicios de programacion_con_matlab
 
Operaciones con matrices_en_matlab
Operaciones con matrices_en_matlabOperaciones con matrices_en_matlab
Operaciones con matrices_en_matlab
 
Manual de instalacion_matlab
Manual de instalacion_matlabManual de instalacion_matlab
Manual de instalacion_matlab
 
Taller 4 teoria _espectro
Taller 4 teoria _espectroTaller 4 teoria _espectro
Taller 4 teoria _espectro
 
Clase 2 fundamentos de teoria de color
Clase 2 fundamentos de teoria de colorClase 2 fundamentos de teoria de color
Clase 2 fundamentos de teoria de color
 
Fundamentos de teoria del color
Fundamentos de teoria del colorFundamentos de teoria del color
Fundamentos de teoria del color
 
Taller 29 grupal
Taller 29 grupalTaller 29 grupal
Taller 29 grupal
 
Automatas finitos
Automatas finitosAutomatas finitos
Automatas finitos
 
Taller n26 gramaticas_indep_contexto_p2_compiladores_30_julio_2020-convertido
Taller n26 gramaticas_indep_contexto_p2_compiladores_30_julio_2020-convertidoTaller n26 gramaticas_indep_contexto_p2_compiladores_30_julio_2020-convertido
Taller n26 gramaticas_indep_contexto_p2_compiladores_30_julio_2020-convertido
 
Taller n25 gramaticas_indep_contexto_compiladores_29_julio_2020-convertido
Taller n25 gramaticas_indep_contexto_compiladores_29_julio_2020-convertidoTaller n25 gramaticas_indep_contexto_compiladores_29_julio_2020-convertido
Taller n25 gramaticas_indep_contexto_compiladores_29_julio_2020-convertido
 
Flex y-bison
Flex y-bisonFlex y-bison
Flex y-bison
 
Taller n20 compiladores_optimizacion_codigo_9_julio_2020-convertido
Taller n20 compiladores_optimizacion_codigo_9_julio_2020-convertidoTaller n20 compiladores_optimizacion_codigo_9_julio_2020-convertido
Taller n20 compiladores_optimizacion_codigo_9_julio_2020-convertido
 

Último

Tippens fisica 7eDIAPOSITIVAS TIPENS Tippens_fisica_7e_diapositivas_33.ppt
Tippens fisica 7eDIAPOSITIVAS TIPENS Tippens_fisica_7e_diapositivas_33.pptTippens fisica 7eDIAPOSITIVAS TIPENS Tippens_fisica_7e_diapositivas_33.ppt
Tippens fisica 7eDIAPOSITIVAS TIPENS Tippens_fisica_7e_diapositivas_33.pptNombre Apellidos
 
Matrices Matemáticos universitario pptx
Matrices  Matemáticos universitario pptxMatrices  Matemáticos universitario pptx
Matrices Matemáticos universitario pptxNancyJulcasumaran
 
INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNAT
INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNATINSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNAT
INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNATevercoyla
 
QUIMICA GENERAL UNIVERSIDAD TECNOLOGICA DEL PERU
QUIMICA GENERAL UNIVERSIDAD TECNOLOGICA DEL PERUQUIMICA GENERAL UNIVERSIDAD TECNOLOGICA DEL PERU
QUIMICA GENERAL UNIVERSIDAD TECNOLOGICA DEL PERUManuelSosa83
 
Estadística Anual y Multianual del Sector Eléctrico Ecuatoriano
Estadística Anual y Multianual del Sector Eléctrico EcuatorianoEstadística Anual y Multianual del Sector Eléctrico Ecuatoriano
Estadística Anual y Multianual del Sector Eléctrico EcuatorianoEduardoBriones22
 
Presentación Instrumentos de Medicion Electricos.pptx
Presentación Instrumentos de Medicion Electricos.pptxPresentación Instrumentos de Medicion Electricos.pptx
Presentación Instrumentos de Medicion Electricos.pptxwilliam801689
 
Tabla de referentes empíricos para tesis-1.docx
Tabla de referentes empíricos para tesis-1.docxTabla de referentes empíricos para tesis-1.docx
Tabla de referentes empíricos para tesis-1.docxLuisJJacinto
 
DIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJO
DIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJODIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJO
DIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJOJimyAMoran
 
Tinciones simples en el laboratorio de microbiología
Tinciones simples en el laboratorio de microbiologíaTinciones simples en el laboratorio de microbiología
Tinciones simples en el laboratorio de microbiologíaAlexanderimanolLencr
 
01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt
01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt
01 MATERIALES AERONAUTICOS VARIOS clase 1.pptoscarvielma45
 
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZgustavoiashalom
 
CONEXIONES SERIE, PERALELO EN MÓDULOS FOTOVOLTAICOS.pdf
CONEXIONES SERIE, PERALELO EN MÓDULOS FOTOVOLTAICOS.pdfCONEXIONES SERIE, PERALELO EN MÓDULOS FOTOVOLTAICOS.pdf
CONEXIONES SERIE, PERALELO EN MÓDULOS FOTOVOLTAICOS.pdfwduranteg
 
LA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdf
LA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdfLA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdf
LA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdfbcondort
 
DISEÑO PAVIMENTOS CLASE 06 PAVIMENTOS.pdf
DISEÑO PAVIMENTOS CLASE 06 PAVIMENTOS.pdfDISEÑO PAVIMENTOS CLASE 06 PAVIMENTOS.pdf
DISEÑO PAVIMENTOS CLASE 06 PAVIMENTOS.pdfDaysonMillerAvilesAc1
 
TIPOS DE SOPORTES - CLASIFICACION IG.pdf
TIPOS DE SOPORTES - CLASIFICACION IG.pdfTIPOS DE SOPORTES - CLASIFICACION IG.pdf
TIPOS DE SOPORTES - CLASIFICACION IG.pdfssuser202b79
 
Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...
Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...
Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...GuillermoRodriguez239462
 
Controladores Lógicos Programables Usos y Ventajas
Controladores Lógicos Programables Usos y VentajasControladores Lógicos Programables Usos y Ventajas
Controladores Lógicos Programables Usos y Ventajasjuanprv
 
Sistema de lubricación para motores de combustión interna
Sistema de lubricación para motores de combustión internaSistema de lubricación para motores de combustión interna
Sistema de lubricación para motores de combustión internamengual57
 
Six Sigma Process and the dmaic metodo process
Six Sigma Process and the dmaic metodo processSix Sigma Process and the dmaic metodo process
Six Sigma Process and the dmaic metodo processbarom
 

Último (20)

Tippens fisica 7eDIAPOSITIVAS TIPENS Tippens_fisica_7e_diapositivas_33.ppt
Tippens fisica 7eDIAPOSITIVAS TIPENS Tippens_fisica_7e_diapositivas_33.pptTippens fisica 7eDIAPOSITIVAS TIPENS Tippens_fisica_7e_diapositivas_33.ppt
Tippens fisica 7eDIAPOSITIVAS TIPENS Tippens_fisica_7e_diapositivas_33.ppt
 
Matrices Matemáticos universitario pptx
Matrices  Matemáticos universitario pptxMatrices  Matemáticos universitario pptx
Matrices Matemáticos universitario pptx
 
INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNAT
INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNATINSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNAT
INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNAT
 
QUIMICA GENERAL UNIVERSIDAD TECNOLOGICA DEL PERU
QUIMICA GENERAL UNIVERSIDAD TECNOLOGICA DEL PERUQUIMICA GENERAL UNIVERSIDAD TECNOLOGICA DEL PERU
QUIMICA GENERAL UNIVERSIDAD TECNOLOGICA DEL PERU
 
Estadística Anual y Multianual del Sector Eléctrico Ecuatoriano
Estadística Anual y Multianual del Sector Eléctrico EcuatorianoEstadística Anual y Multianual del Sector Eléctrico Ecuatoriano
Estadística Anual y Multianual del Sector Eléctrico Ecuatoriano
 
Presentación Instrumentos de Medicion Electricos.pptx
Presentación Instrumentos de Medicion Electricos.pptxPresentación Instrumentos de Medicion Electricos.pptx
Presentación Instrumentos de Medicion Electricos.pptx
 
Tabla de referentes empíricos para tesis-1.docx
Tabla de referentes empíricos para tesis-1.docxTabla de referentes empíricos para tesis-1.docx
Tabla de referentes empíricos para tesis-1.docx
 
422382393-Curso-de-Tableros-Electricos.pptx
422382393-Curso-de-Tableros-Electricos.pptx422382393-Curso-de-Tableros-Electricos.pptx
422382393-Curso-de-Tableros-Electricos.pptx
 
DIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJO
DIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJODIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJO
DIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJO
 
Tinciones simples en el laboratorio de microbiología
Tinciones simples en el laboratorio de microbiologíaTinciones simples en el laboratorio de microbiología
Tinciones simples en el laboratorio de microbiología
 
01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt
01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt
01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt
 
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
 
CONEXIONES SERIE, PERALELO EN MÓDULOS FOTOVOLTAICOS.pdf
CONEXIONES SERIE, PERALELO EN MÓDULOS FOTOVOLTAICOS.pdfCONEXIONES SERIE, PERALELO EN MÓDULOS FOTOVOLTAICOS.pdf
CONEXIONES SERIE, PERALELO EN MÓDULOS FOTOVOLTAICOS.pdf
 
LA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdf
LA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdfLA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdf
LA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdf
 
DISEÑO PAVIMENTOS CLASE 06 PAVIMENTOS.pdf
DISEÑO PAVIMENTOS CLASE 06 PAVIMENTOS.pdfDISEÑO PAVIMENTOS CLASE 06 PAVIMENTOS.pdf
DISEÑO PAVIMENTOS CLASE 06 PAVIMENTOS.pdf
 
TIPOS DE SOPORTES - CLASIFICACION IG.pdf
TIPOS DE SOPORTES - CLASIFICACION IG.pdfTIPOS DE SOPORTES - CLASIFICACION IG.pdf
TIPOS DE SOPORTES - CLASIFICACION IG.pdf
 
Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...
Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...
Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...
 
Controladores Lógicos Programables Usos y Ventajas
Controladores Lógicos Programables Usos y VentajasControladores Lógicos Programables Usos y Ventajas
Controladores Lógicos Programables Usos y Ventajas
 
Sistema de lubricación para motores de combustión interna
Sistema de lubricación para motores de combustión internaSistema de lubricación para motores de combustión interna
Sistema de lubricación para motores de combustión interna
 
Six Sigma Process and the dmaic metodo process
Six Sigma Process and the dmaic metodo processSix Sigma Process and the dmaic metodo process
Six Sigma Process and the dmaic metodo process
 

Interprete utilizando gold parser

  • 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/