Sesión nº12 del 14 de mayo de 2018 de la asignatura LENGUAJES DE PROGRAMACIÓN Y PROCESADORES (71022028), asignatura perteneciente al 2º curso del GRADO EN INGENIERÍA EN TECNOLOGÍAS DE LA INFORMACIÓN . En dicha tutoría:
Hemos corregido el examen del curso pasado de la primera semana. Hemos visto como son muchos conceptos los que aparecen en el examen y conviene tener muy claros todos los conceptos para no mezclarlos.
Sesión nº7 del 2 de abril de 2018 de la asignatura LENGUAJES DE PROGRAMACIÓN Y PROCESADORES (71022028), asignatura perteneciente al 2º curso del GRADO EN INGENIERÍA EN TECNOLOGÍAS DE LA INFORMACIÓN . En dicha tutoría:
Hemos realizado ejercicios de examen del curso pasado relativos al análisis sintáctico descendente para trabajar sobre la ambigüedad en las gramáticas, las gramáticas LL(1) como ejemplo de gramáticas no ambiguas, el cálculo de los conjuntos de PRIMEROS, SIGUIENTES así como los CONJUNTOS DE PREDICCIÓN que permite garantizar si una gramática es LL(1). Insisto en que debéis controlar lo más posible este tema pues es muy habitual que pongan ejercicios en todas las convocatorias de examen sobre este apartado.
hemos visto en que consiste el análisis sintáctico ascendente, como reconocedor de la sintaxis usada para escribir los programas. La forma de proceder en el análisis parte de intentar encontrar las reglas de producción de la gramática partiendo de la frase bajo estudio para llegar al axioma gramatical. No es habitual que se pregunte sobre este tema en los exámenes dada la complejidad de construir un analizador ascendente. En la clase de hoy hemos visto principalmente como funciona mediante un ejemplo.
Hemos tratado el análisis semántico, que consiste en incluir a las reglas de producción un conjunto de reglas semánticas para darle significado al árbol sintáctico generado en el análisis sintáctico. Es por ello que se usan gramáticas de atributos y mediante el grafo de dependencias se puede conocer la forma de cálculo de las reglas semánticas expresadas en el analizador. Tampoco este suele ser un tema muy habitual en los exámenes pero nunca se sabe.
Sesión nº5 del 12 de marzo de 2018 de la asignatura LENGUAJES DE PROGRAMACIÓN Y PROCESADORES (71022028), asignatura perteneciente al 2º curso del GRADO EN INGENIERÍA EN TECNOLOGÍAS DE LA INFORMACIÓN . En dicha tutoría:
Tratando el tema 2 Procesadores del Lenguaje.
El compilador es el elemento principal que nos va a llevar de lenguajes en alto nivel a código ejecutable. Se han analizado las partes del compilador, centrándonos en las que dependen del lenguaje de programación que no de la arquitectura del hardware a saber: análisis léxico, sintáctico y semántico.
Hemos visto en que consiste el análisis léxico, como reconocedor del vocabulario o tokens con los que se ha escrito un programa. Debe quedar muy claro la diferencia entre token, patrón léxico y lexema, pues lo han preguntado en exámenes de otros años. Vimos que para describir los tokens y que el analizador los pueda reconocer se usan bien gramáticas lineales o expresiones regulares.
Hemos visto en que consiste el análisis sintáctico, como reconocedor de la sintaxis usada para escribir los programas. La forma de proceder en el análisis parte de intentar encontrar las reglas de producción de la gramática y bien mediante cadenas de operación o con árboles de análisis sintáctico poder ver si una frase puede ser expresada por la gramática. Es habitual que pregunten en los exámenes sobre gramáticas BNF y EBNF así como sobre la ambigüedad de las gramáticas así como la derivación sintáctica de las frases que veremos la próxima semana. Podéis ver este tipo de ejercicios aparecidos en exámenes de años anteriores en mi página web.