Responsable: | (-) |
Otros: | (-) |
Créditos | Dept. |
---|---|
9.0 (7.2 ECTS) | CS |
Responsable: | (-) |
Otros: | (-) |
Cubrir los contenidos especificados en la troncalidad de procesadores del lenguaje, y los siguientes objetivos específicos.
Horas estimadas de:
T | P | L | Alt | L Ext. | Est | O. Ext. |
Teoria | Problemas | Laboratorio | Otras actividades | Laboratorio externo | Estudio | Otras horas fuera del horario fijado |
|
T | P | L | Alt | L Ext. | Est | O. Ext. | Total | ||
---|---|---|---|---|---|---|---|---|---|---|
3,0 | 0 | 2,0 | 0 | 2,0 | 6,0 | 0 | 13,0 | |||
Definición del problema. Repaso de lenguajes regulares y autómatas finitos, varios algoritmos y sus costes. Tratamiento de errores, la herramienta PCCTS, otras aplicaciones.
|
|
T | P | L | Alt | L Ext. | Est | O. Ext. | Total | ||
---|---|---|---|---|---|---|---|---|---|---|
12,0 | 0 | 4,0 | 0 | 4,0 | 12,0 | 0 | 32,0 | |||
Repaso de gramáticas de contexto libre y autómatas de pila.
Árboles de sintaxis concreta y abstracta, técnicas de parsing descendente y ascendente, la herramienta PCCTS, otras aplicaciones.
|
|
T | P | L | Alt | L Ext. | Est | O. Ext. | Total | ||
---|---|---|---|---|---|---|---|---|---|---|
8,0 | 0 | 12,0 | 0 | 12,0 | 8,0 | 0 | 40,0 | |||
Lenguajes con estructura de bloques, paso de parámetros, comprobación de tipos, equivalencias de tipos, conversión explícita e implícita de tipos. Otros paradigmas de programación.
|
|
T | P | L | Alt | L Ext. | Est | O. Ext. | Total | ||
---|---|---|---|---|---|---|---|---|---|---|
9,0 | 0 | 0 | 0 | 0 | 9,0 | 0 | 18,0 | |||
Interpretes como herramienta útil y definidora de la semántica del lenguaje.
Representaciones internas e intermedias: en árbol, código de tres direcciones, código para máquinas de pila. Máquinas virtuales: ventajas e inconvenientes. La Q-machine. Acceso a nombres locales y no-locales: cadenas estáticas y displays. |
|
T | P | L | Alt | L Ext. | Est | O. Ext. | Total | ||
---|---|---|---|---|---|---|---|---|---|---|
14,0 | 0 | 10,0 | 0 | 10,0 | 14,0 | 0 | 48,0 | |||
Código para instrucciones sencillas. Compilación de expresiones booleanas, tipos estructurados, arrays estáticos y dinámicos, procedimientos y funciones como parámetros.
Adaptación para orientación a objetos.
|
|
T | P | L | Alt | L Ext. | Est | O. Ext. | Total | ||
---|---|---|---|---|---|---|---|---|---|---|
6,0 | 0 | 0 | 0 | 0 | 6,0 | 0 | 12,0 | |||
Bloques básicos, grafo de control de flujo, vida de variables, uso y definiciones de variables, ejemplos de optimización (subexpresiones comunes, código muerto, propagación de constantes, invariantes y variables de inducción en bucles).
|
Total por tipo | T | P | L | Alt | L Ext. | Est | O. Ext. | Total |
54,0 | 0 | 28,0 | 0 | 28,0 | 57,0 | 0 | 167,0 | |
Horas adicionales dedicadas a la evaluación | 3,0 | |||||||
Total horas de trabajo para el estudiante | 170,0 |
Se persiguen los objetivos expuestos estimulando el trabajo personal del estudiante. Así, las clases de laboratorio están destinadas a la realización de la práctica por parte del alumno, conjuntamente con consultas y discusiones acerca de la misma.Para las primeras prácticas con la herramienta PCCTS existe la correspondiente "hoja de laboratorio" con las explicaciones y ejercicios a realizar. Para las demás existe abundante material para la realización del compilador.
No se distingue entre clases de teoría y de problemas, debido a que éstos últimos se concentran sólo en ciertos periodos del curso, y sería demasiado rígido tener que dedicarles un número fijo de horas semanales.
Existen diversas listas de problemas, y el estudiante sabe con antelación cuándo en clase se van a resolver cuáles de ellos. De esta manera debería intentar resolverlos primero por su cuenta.
Además existe muy abundante material disponible en las páginas web de la asignatura: apuntes, transparencias, módulos y enunciados para las prácticas, exámenes anteriores resueltos y sin resolver, listas de preguntas frecuentes, etc.
El material ofrecido por la asignatura permite al estudiante realizar un seguimiento de la asignatura, tanto del modo habitual, asistiendo a clase y estudiando según el ritmo que marca la planificación propuesta, como de una forma independiente por propia planificación del alumno, en base a sus otras obligaciones o restricciones.
Habrá un examen escrito de teoría (T), con ejercicios y preguntas cortas de tipo teórico. La nota de la práctica (P) provendrá de dos ejercicios prácticos P1 y P2. Ambos consistirán en realizar modificaciones de la práctica hecha por el propio estudiante, con el fin de valorar su dominio y comprensión de la misma. P1 se llevará a cabo a mitad de curso, y P2 durante las últimas semanas de curso.
La nota P se obtendrá así:
P=max( P2,((P1+P2)/2) ).
En el caso de que, por motivos técnicos, no se pudieran realizar estas pruebas por este medio, alternativamente, se realizaria un examen escrito sobre la práctica.
La nota final Fin se determina en funcion de T y P de la siguiente manera que fomenta un esfuerzo equilibrado en ambas partes:
Fin := 0.6*T + 0.4*P
Conocimientos de técnicas de programación estructurada y estructuras de datos y algoritmos; lenguajes, autómatas y gramáticas formales; estructura de computadores.