Se trata de una asignatura, la cual desde hace muchos años tenía enormes ganas de cursar y por la cual el alumno debe de aprender a construir y utilizar los analizadores léxicos y sintácticos; cuyos objetivos generales son:
› Conocer la estructura interna de un compilador.
› Comprender el proceso de análisis formal de un lenguaje.
› Aprender las fases que lo constituyen conceptualmente.
› Distinguir los diferentes tipos de lenguajes existente.
› Conocer los diferentes algoritmos utilizados en el análisis sintáctico de lenguajes.
En cuanto al contenido de la asignatura tenemos:
- Introducción
- Estructura de un compilador
- Proceso de traducción
- Análisis léxico
- Proceso de análisis léxico
- Expresiones regulares
- Autómatas finitos
- Análisis sintáctico
- Proceso de análisis sintáctico
- Gramáticas libres de contexto
- Árboles sintácticos
- Ambigüedad
- Notación EBNF
- Análisis sintáctico descendente
- Análisis sintáctico descendente recursivo
- Análisis sintáctico LL (1)
- Recuperación de errores sintácticos descendentes
- Análisis sintáctico ascendente
- Análisis sintáctico LR (0)
- Análisis sintáctico SLR (1)
- Análisis sintáctico LALR (1)
- Análisis sintáctico LR (1)
Para la práctica del año 2k13/14, el Equipo Docente propuso realizar un compilador del lenguaje HAda, que implementa un lenguaje similar a PASCAL usando la sintaxis del lenguaje Ada. En los siguientes enlaces se puede obtener el enunciado y las directrices de implementación proporcionadas por el E.D:
En cuanto a la resolución de la práctica, los siguientes enlaces contienen el proyecto completo para Eclipse, la memoria práctica y los casos de prueba:
No quiero finalizar esta entrada sin dar las gracias a quienes hicieron posible el que pudiera aprender y entender esta fantástica asignatura y que sin ellos no hubiera sido posible la realización de esta práctica y la siguiente de Procesadores del Lenguaje II. Por ello, gracias Armando Urrestarazu Platero por tu increíble constancia; gracias Alejandro González de Aguilar por tus incansables ganas de enseñar y por esas nocturnas horas que me has dedicado y gracias al tutor D. Javier Vélez Reyes (@javiervelezreye) por guiarnos desde el principio con auténtica pasión y vocación y por sus apuntes de la asignatura, que más que apuntes, bien podrían ser la biografía básica.
Muy interesante, que bueno estudiar en un lugar donde te explican tan bien las materias. Me recordó este artículo https://zarza.com/ingenieria-inversa-la-gallina-o-el-huevo/ que habla sobre la ingeniería inversa, pues lo explica muy bien, eso es lo que necesitamos para aprender y mejorar.
ResponderEliminarMuchas gracias!