Click here to load reader
View
0
Download
0
Embed Size (px)
GUÍA DE APRENDIZAJE
PROCESADORES DE LENGUAJE
Datos Descriptivos
TITULACIÓN: GRADO EN INGENIERIA DEL SOFTWARE
CENTROS IMPLICADOS: E.U. DE INFORMATICA
CICLO: Grado sin atribuciones MÓDULO: MATERIA: PROGRAMACIÓN
ASIGNATURA: PROCESADORES DE LENGUAJE CURSO: 3 º
SEMESTRE: Semestre 2º (Febrero-Junio)
DEPARTAMENTO RESPONSABLE: LENGUAJES, PROYECTOS Y SISTEMAS INFORMATICOS
CRÉDITOS EUROPEOS: 6 CARÁCTER: OPTATIVA
CURSO ACADÉMICO: 2011/2012 PERIODO DE IMPARTICIÓN: Semestre 2º (Febrero-Junio)
Datos Comunes
ITINERARIO: IDIOMAS IMPARTICIÓN: Español
OTROS IDIOMAS IMPARTICIÓN: HORAS/CRÉDITO: 26
Profesorado
COORDINADOR: JOSE GABRIEL PEREZ DIEZ
NOMBRE DESPACHO EMAIL EN INGLÉS
JOSE GABRIEL PEREZ DIEZ 1207-2 [email protected] No
JESUS LOPEZ SANCHEZ 1213 [email protected] No
(*) Profesores externos en cursiva.
Tutorías
TUTORÍAS NOMBRE
Lugar Día De A
Grupos
Nº de grupos Teoría 1
Prácticas 1GRUPOS ASIGNADOS EN: Laboratorio 1
Requisitos previos necesarios
ASIGNATURAS SUPERADAS
OTROS REQUISITOS
Conocimientos previos recomendados
ASIGNATURAS PREVIAS RECOMENDADAS PROGRAMACION ORIENTADA A OBJETOS AVANZADA
CONOCIMIENTOS PREVIOS Interpreta la ejecución de diferentes programas en una máquina
OTROS CONOCIMIENTOS Programación en diferentes lenguajes, incluyendo Java
Competencias
CÓDIGO COMPETENCIA NIVEL RA
G1 Capacidad de análisis y síntesis. N3
RA_01
RA_02
RA_03
RA_04
G10 Aprendizaje autónomo, adaptación a nuevas situaciones y motivación por el desarrollo profesional permanente.
N2
RA_01
RA_02
RA_03
RA_04
RA_05
G11 Creatividad. N2
RA_01
RA_02
RA_03
RA_04
RA_05
G14 Motivación por la calidad. N3
RA_01
RA_02
RA_03
RA_04
RA_05
G6 Resolución de problemas. N3
RA_01
RA_02
RA_03
G9 Razonamiento crítico. N3
RA_01
RA_02
RA_03
I22
Conocimiento de los fundamentos del uso y programación de los computadores, los sistemas operativos, las bases de datos y, en general, los programas informáticos con aplicación en ingeniería.
N3 RA_04
RA_05
I5 Conocimiento, administración y mantenimiento sistemas, servicios y aplicaciones informáticas.
N2 RA_04
RA_05
I6
Conocimiento y aplicación de los procedimientos algorítmicos básicos de las tecnologías informáticas para diseñar soluciones a problemas, analizando la idoneidad y complejidad de los algoritmos propuestos.
N3
RA_01
RA_02
RA_03
I7 Conocimiento, diseño y utilización de forma eficiente los tipos y estructuras de datos más adecuados a la resolución de un problema.
N2
RA_01
RA_02
RA_03
I8
Capacidad para analizar, diseñar, construir y mantener aplicaciones de forma robusta, segura y eficiente, eligiendo el paradigma y los lenguajes de programación más adecuados.
N2 RA_04
RA_05
Resultados de aprendizaje
CÓDIGO DESCRIPCIÓN RA_01 Conoce cómo diseñar e implementar analizadores léxico-sintácticos RA_02 Conoce cómo diseñar e implementar analizadores semánticos RA_03 Conoce cómo diseñar e implementar generadores de código RA_04 Utiliza tecnologías, estrategias y estándares para solucionar problemas de integración RA_05 Utiliza entornos y herramientas de desarrollo
Indicadores de logro
CÓDIGO INDICADOR RA IN_01 Comprensión de la organización de los lenguajes procedurales de alto
nivel RA_01
RA_02
RA_03
IN_02 Conocer diferentes diseños para organizar la implementación de un lenguaje RA_01
RA_02
RA_03
IN_03 Saber implementar analizadores léxicos RA_01
RA_04
RA_05
IN_04 Saber implementar analizadores sintácticos RA_01
RA_04
RA_05
IN_05 Conocer las tareas generales de procesamiento que hay que diseñar para implementar la semántica estática de un lenguaje. Atributos semánticos
RA_02
IN_06 Conocer y saber escribir gramáticas atribuidas para especificar la semántica estática de un lenguaje RA_02
RA_04
IN_07 Conocer cómo diseñar el árbol sintáctico abstracto para implementar la evaluzación de atributos semánticos RA_02
RA_04
IN_08 Conocer el concepto de tabla de símbolos. Saber determinar los atributos a recoger en la tabla de símbolos para cada clase de objeto declarado. Implementación de las clases de objetos
RA_02
RA_04
IN_09 Conocer cómo diseñar la organización de la tabla de símbolos y definir sus operaciones básicas RA_02
RA_04
IN_10 Saber implementar tablas de símbolos en un lenguaje de programación RA_04
RA_05
IN_11 Saber cómo diseñar la definición, recogida y propagación de atributos semánticos usando un método de evaluación basado en el reconocimiento sintáctico
RA_02
RA_04
RA_05
IN_12 Saber implementar analizadores semánticos RA_04
RA_05
IN_13 Conocer los fundamentos de la definición de máquinas virtuales. Saber los fundamentos para el diseño de una máquina virtual
RA_03
IN_14 Diseño e implementación del entorno de una máquina virtual y de su intérprete RA_03
RA_04
IN_15 Saber cómo diseñar la definición, recogida y propagación de atributos para la generación de código usando un método de evaluación basado en el reconocimiento sintáctico
RA_03
RA_04
RA_05
IN_16 Saber implementar el generador de código en un paso independiente, o no, de las restantes fases RA_03
IN_17 Formatos para especificar la entrada a un generador automático de procesadores de lenguajes RA_01
RA_02
RA_03
IN_18 Saber usar el generador javaCC para implementar el análisis sintáctico de un lenguaje RA_05
IN_19 Saber usar el generdor javaCC para implementar el analizador semántico y el generador de código para un lenguaje
RA_05
Contenidos específicos (temario)
TEMA / CAPÍTULO
APARTADO
Diseño modular de un compilador Implementación de lenguajes:
generación e interpretación IN_01
Fases de un compilador IN_01
Diseño general dentro de un paradigma de programación IN_02
Implementación del análisis lexicográfico IN_03
Implementación del análisis sintáctico IN_04
Especificación de la semántica Procesamiento de la semántica
IN_05
Gramática atribuidas IN_06
Gramáticas abstractas. Árbol abstracto IN_07
Evaluación de atributos IN_07
Generación de código Diseño del generador de códifo
IN_15
Diseño de las rutinas de generación IN_15
Diseño en una fase independiente IN_16
Generadores de código Especificación de la entrada
IN_17
Diseño de generadores léxicos IN_18
Diseño de generasdores sintácticos IN_19
Máquinas virtuales Lenguajes y máquinas virtuales
IN_13
Diseño de lenguajes intermedios IN_13
Interpretación de lenguajes intrmedios IN_14
Entorno de ejecución para una máquina virtual IN_14
Procesamiento semántico Diseño y representación de la
recogida de información IN_11
Diseño de la propagación IN_11
Diseño de las rutinas semánticas IN_11
Diseño del analizador semántico IN_12
Tablas de símbolos Definición de una tabla de símbolos
IN_08
Características semánticas de los lenguajes de programación IN_08
Diseño de las operaciones básicas IN_09
Diseño de la estructura de una tabla de símbolos IN_09
Implementación de una tabla de símbolos IN_10
Breve descripción de las modalidades organizativas utilizadas y métodos de enseñanza empleados
MODALIDAD DESCRIPCIÓN MÉTODO MÉTODOS DE ENSEÑANZA
Clases teóricas El profesor expone los conceptos de un tema Método Expositivo
Aprendizaje Basado en Proyectos
Clases prácticas Los estudienates implementan un lenguaje Aprendizaje Basado en Problemas
Aprendizaje Basado en Proyectos
Estudio y trabajo autónomo
Durane el desarrollo de una clase se plantean cuestiones o ejercicios y el estudiante tiene que adquirir las competencias correspondientes
Aprendizaje Basado en Problemas
Aprendizaje Basado en Proyectos
Estudio de Teoría
Clases de Problemas El profesor plantea problemas relativos a un logro concreto
Aprendizaje Basado en Problemas
Cronograma de trabajo de la asignatura
SEMANA ACTIVIDADES
1
Actividad Modalidad Met.Ense. Lugar Duración Evaluación Tipo Prep. Carga(%)
T_1.1, T_1.2, T_1.3
Clases teóricas
Método Expositivo
Aula 2 hrs. No 1,28
T_1.4 Clases teóricas
Método Expositivo
Aula 2 hrs. No 1,28
Consulta de información
Estudio y trabajo autónomo
Estudio de Teoría
Otros 5 hrs. No 3,21
2
Actividad Modalidad Met.Ense. Lugar Duración Evaluación Tipo Prep. Carga(%)
T_1.4 Cla