Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
Instituto Tecnológico Superior Progreso Dirección General Subdirección Académica Boulevard Tecnológico de Progreso S/N por 62, Progreso, Yucatán. C.P. 97320 Tels. 969 934 3023, tecnm.mx | progreso.tecnm.mx Instituto Tecnológico Superior Progreso CARRERA: Ingeniería en Sistemas Computacionales MATERIA: Lenguajes y Autómatas I TAREA: Reporte de Analizador Léxico Calculadora PLY MAESTRO: DR. MARTÍNEZ GARCIA HOLZEN ATOCHA ESTUDIANTE: Miguel Angel De La Cruz Centeno SEMESTRE: 6to SEMESTRE Instituto Tecnológico Superior Progreso Dirección General Subdirección Académica Boulevard Tecnológico de Progreso S/N por 62, Progreso, Yucatán. C.P. 97320 Tels. 969 934 3023, tecnm.mx | progreso.tecnm.mx INTRODUCCION Vamos a ver una librería de Ply en el lenguaje Python, esta librería nos permite desarrollar el analizador léxico y el analizador sintáctico de manera más fácil, en el lenguaje Python sobre un programa de Calculadora este programa vamos a saber mas sobre estos dos temas del léxico y tokens para aprender de cómo actúa y en saber la importancia de esto dos. Instituto Tecnológico Superior Progreso Dirección General Subdirección Académica Boulevard Tecnológico de Progreso S/N por 62, Progreso, Yucatán. C.P. 97320 Tels. 969 934 3023, tecnm.mx | progreso.tecnm.mx Reporte de Analizador Léxico Calculadora PLY En esta parte del código es la parte del analizador léxico pero antes necesitamos conocer la sintaxis. La sintaxis que estamos utilizando son los “OPERAR” para hacer la operación necesitamos poner la palabra ” Operar” dentro los corchetes colocamos la operación que queremos probar y como limitador está el signo de peso “$” que indica el final de la cadena, si observamos la sintaxis utilizamos Tokens en la parte de “OPERAR” después abrir corchete “[ ]” es otro tokens también adentro de los corchete son otros Tokens todo esta línea son Tokens ahora n debemos definir cuales Tokens vamos a utilizar y esto lo hacemos en el analizador léxico todo esto lo vamos hacer en la librería “FLY”. Instituto Tecnológico Superior Progreso Dirección General Subdirección Académica Boulevard Tecnológico de Progreso S/N por 62, Progreso, Yucatán. C.P. 97320 Tels. 969 934 3023, tecnm.mx | progreso.tecnm.mx Lo primero que vamos hacer es definir los Tokens en este caso son”OPERAR, NUMEROS, APARENT, CPARENT, SUM, RES, MULT, DIV, POT, DECIMAL, ACOR, CCOR y FINAL. Instituto Tecnológico Superior Progreso Dirección General Subdirección Académica Boulevard Tecnológico de Progreso S/N por 62, Progreso, Yucatán. C.P. 97320 Tels. 969 934 3023, tecnm.mx | progreso.tecnm.mx Ahora necesitamos definir una expresión regular que identifique cuando ocurre ese Tokens entonces utilizamos esta sintaxis, la “t_OPERAR” es oara llamar a OPERAR ahora para abrir paréntesis es la “t_APARENT” su expresión regular seria “ r’\’( ” ahora para cerrar paréntesis se utiliza el Tokens ”t_CPARENT” y su expresión regular es “ r’\)’” y así con los demás para abrir corchete, cerrar corchetes, la suma, la resta, la multiplicación, etc. Instituto Tecnológico Superior Progreso Dirección General Subdirección Académica Boulevard Tecnológico de Progreso S/N por 62, Progreso, Yucatán. C.P. 97320 Tels. 969 934 3023, tecnm.mx | progreso.tecnm.mx Como estamos utilizando números enteros y decimal tenemos que definir Tokens para cada uno de ellos así que tenemos los Tokens decimales y los Tokens de números, donde l expresión regular de la línea 24, dice que debe ser un numero de uno o mas dígitos seguido de un punto y que finalice con uno o más dígitos, si sale todo bien se va signar al valor Value y si ocurre una decepción se generaría un error como se ve en la imagen y así igual con los números Como se puede observar en esta pestaña se importó la librería “Ply” en la línea 12, se importo lo que sería la librería ply léxico ese es para el analizador léxico y la línea 13, es para el analizador sintáctico. Instituto Tecnológico Superior Progreso Dirección General Subdirección Académica Boulevard Tecnológico de Progreso S/N por 62, Progreso, Yucatán. C.P. 97320 Tels. 969 934 3023, tecnm.mx | progreso.tecnm.mx Después tenemos el analizador sintáctico. Instituto Tecnológico Superior Progreso Dirección General Subdirección Académica Boulevard Tecnológico de Progreso S/N por 62, Progreso, Yucatán. C.P. 97320 Tels. 969 934 3023, tecnm.mx | progreso.tecnm.mx Instituto Tecnológico Superior Progreso Dirección General Subdirección Académica Boulevard Tecnológico de Progreso S/N por 62, Progreso, Yucatán. C.P. 97320 Tels. 969 934 3023, tecnm.mx | progreso.tecnm.mx Explicando alguna parte de los Tokens, sintáctico y léxico probamos si agarra la calculadora. Instituto Tecnológico Superior Progreso Dirección General Subdirección Académica Boulevard Tecnológico de Progreso S/N por 62, Progreso, Yucatán. C.P. 97320 Tels. 969 934 3023, tecnm.mx | progreso.tecnm.mx Al salir del programa no va a mostrar las operaciones que hicimos o las instrucciones que hizo primero llama el Tokens OPERAR de ahí el abrir corchete después el abrir paréntesis después el numero y etc. Hasta llegar el resultado Instituto Tecnológico Superior Progreso Dirección General Subdirección Académica Boulevard Tecnológico de Progreso S/N por 62, Progreso, Yucatán. C.P. 97320 Tels. 969 934 3023, tecnm.mx | progreso.tecnm.mx Instituto Tecnológico Superior Progreso Dirección General Subdirección Académica Boulevard Tecnológico de Progreso S/N por 62, Progreso, Yucatán. C.P. 97320 Tels. 969 934 3023, tecnm.mx | progreso.tecnm.mx CONCLUSIÓN Los tokens son unidades mínimas de un lenguaje de programación que representan una parte de la gramatical específica, como palabras clave, operadores y símbolos. El análisis léxico es el proceso de identificar y clasificar los tokens en un programa, mientras que el análisis sintáctico implica la construcción de una estructura gramatical a partir de estos tokens, verificando que se cumpla con las reglas sintácticas del lenguaje de programación. El análisis léxico y sintáctico son esenciales en el proceso de compilación, ya que ayudan a detectar errores en el código y a generar un árbol sintáctico que permita la interpretación y ejecución del programa. Es importante tener un buen entendimiento de los conceptos de tokens, análisis léxico y análisis sintáctico para poder desarrollar programas de forma efectiva y evitar errores en el proceso de compilación.
Compartir