14 de febrero de 2023
PRACTICA 1- CALCULADORA
ING. AGUSTÍN HERNÁNDEZ GARCÍA
LABORATORIO DE FUNDAMENTOS DE SOFTWARE DE SISTEMAS
PONCE CANSECO ABRAHAM EMMANUEL
REPORTE DE LA PRACTICA
1) Descripción del procedimiento de instalación y configuración de herramientas de
programación.
Para poder ejecutar el lenguaje ANTLR, necesitamos algunas actualizaciones de Visual Studio
que usarán la versión de Visual Studio 2017 porque esa es la versión compatible con ANTLR.
Una vez instalado Visual Studio 2017, tendremos que descargar las extensiones de ANTLR
Por último, ya una vez creado el proyecto se tendrán que actualizar los paquetes NuGet, esto
para poder compilar los archivos de ANTLR.
2) Descripción de los componentes léxicos utilizados.
Realizamos un listado de los componentes que podrá identificar nuestra calculadora
* Reglas del Lexer.
*/
PARENI
: '(' //token de paréntesis derecho
;
PAREND
: ')' //token de paréntesis izquierdo.
;
MAS
: '+' //token de signo mas
;
MENOS
: '-' //token de signo menos
;
POR
: '*' //token de signo por
;
INT
:('0'..'9')+ //tokens válidos para números
;
ENTRE
: '/' //token de signo entre
;
NEWLINE //token para identificar el final de la expresión.
: '\n'
;
WS
: (' '|'\r'|'\n'|'\t')+ {Skip();} //tokens que identifican las secuencias de
escape.
;
3) Explicación de las reglas gramaticales utilizadas.
4) Descripción de los problemas encontrados y una explicación detallada de cómo fueron
solucionados.
El único problema es encontrar la información necesaria para poder implementar ANTLR
correctamente, y un inconveniente muy concreto es qué versión de Visual Studio está usando
la persona que decide utilizar, ya que tiene que ser forzosamente 2017.
(se puede ejecutar en 2019 y posteriores, pero requiere unos pasos de mayor complejidad, así
que se opto por la 2017 para evitar problemas mayores)
5) Conclusiones y posibles mejoras.
ANTLR es una gran herramienta, desafortunadamente tiene muy poca información ya que la
información es de otros usuarios y no es oficial, pero en general simplifica mucho las cosas en
términos de reglas y para implementar los analizadores.