PROCESADORES DEL LENGUAJE

Documentos relacionados
Máster Universitario en Tecnologías de la Información y las Comunicaciones Universidad de Alcalá Curso Académico 2013/14

PROGRAMA DE LABORATORIO SECCIÓN: ÁREA A LA QUE PERTENECE: POS-REQUISITO: AUXILIAR:

FUNDAMENTOS MATEMÁTICOS

Guía docente de la asignatura

GUÍA DOCENTE CURSO: DATOS BÁSICOS DE LA ASIGNATURA DISTRIBUCIÓN HORARIA DE LA ASIGNATURA SEGÚN NORMATIVA DATOS DEL PROFESORADO. Pag.

ASIGNATURA Potencialidades y oportunidades de negocio

LITERATURA ESPAÑOLA. EDAD MEDIA

Grado en Ciencias Ambientales Universidad de Alcalá Curso Académico 2016/2017 Primer Curso Primer Cuatrimestre

Toda copia en PAPEL es un "Documento No Controlado" a excepción del original.

LAS TIC EN LA ENSEÑANZA DE LAS CIENCIAS SOCIALES

PRÁCTICAS EN EMPRESAS E INSTITUCIONES (INGLÉS-ESPAÑOL)

GUÍA DOCENTE PROCESADORES DE LENGUAGE

PRÁCTICAS EN INSTITUCIONES EXTERNAS

PLANIFICACIÓN DE LA DOCENCIA UNIVERSITARIA GUÍA DOCENTE INTRODUCCIÓN Y TEORÍA DE LA COMPUTACIÓN

ANX-PR/CL/ GUÍA DE APRENDIZAJE. ASIGNATURA Control estadistico de procesos. CURSO ACADÉMICO - SEMESTRE Primer semestre

LA PLANIFICACIÓN DIDÁCTICA

GUÍA DOCENTE. Matemáticas II

CONTROL DISTRIBUIDO Y AUTOMATIZACIÓN

GUÍA DOCENTE DE LA ASIGNATURA

LP - Lenguajes de Programación

PROYECTO FIN DE MASTER Y PRÁCTICUM

ASIGNATURA TEMAS DE ECONOMÍA DEL MEDIO AMBIENTE Y DE LOS RECURSOS NATURALES II: DESARROLLO ECONÓMICO Y MEDIO AMBIENTE

DISTRIBUCIÓN HORARIA DE LA ASIGNATURA SEGÚN NORMATIVA

EL MENSAJE CRISTIANO II (IGLESIA, SACRAMENTOS Y MORAL)

GUÍA DOCENTE 2016/2017. Trabajo fin de Grado Grado en ENFERMERÍA 4º curso. Modalidad presencial

APLICACIONES INFORMÁTICAS PARA FINANZAS Y CONTABILIDAD

ASIGNATURA FUNDAMENTOS DEL COMERCIO ELECTRÓNICO

Grado en Ingeniero en Informática Ingeniero en Computadores Sistemas de Información

GUÍA DOCENTE DE LA ASIGNATURA

CONTABILIDAD SUPERIOR

ASDP - Habilidades Académicas para el Desarrollo de Proyectos en Inglés

Universidad de las Illes Balears Guía docente

Universidad Centroccidental Lisandro Alvarado. Decanato de Ciencias y Tecnología Departamento de Sistemas

Plan Ciclo Formativo Tipo Curso Duración. Grado en Humanidades (Plan 2010) Grado Obligatoria 2 Segundo Cuatrimestre

Grado en Administración y Dirección de Empresas Universidad de Alcalá Curso Académico 2011/2012 2º Cuatrimestre

GUÍA DE APRENDIZAJE INGENIERIA DE REQUISITOS Y MODELADO

TI - Telecomunicaciones y Internet

Análisis Exploratorio de Datos 1231X (B.O.E. del 19-julio-2000). Troncal. Obligatoria. Optativa.

Créditos: 6 Horas Presenciales del estudiante: 45 Horas No Presenciales del estudiante: 105 Total Horas: 150 UTILIZACIÓN DE LA PLATAFORMA VIRTUAL:

ASIGNATURA DE GRADO: MECÁNICA I

Universitat de les Illes Balears Guía docente

DISTRIBUCIÓN HORARIA DE LA ASIGNATURA SEGÚN NORMATIVA

Control de procesos industriales

DIPLOMADO. Evaluación de la Calidad de la práctica docente para la implementación del Nuevo Modelo Educativo en Escuelas de Ingeniería del I.P.N.

GUÍA DOCENTE CURSO FICHA TÉCNICA DE LA ASIGNATURA

GUÍA DOCENTE 2016/2017. Elaboración de Trabajos Académicos con Indicadores de Calidad Grado en INGENIERÍA INFORMÁTICA 2º curso. Modalidad Presencial

Diseño de experimentos

Estadística Aplicada: Técnicas Cuantitativas de Investigación Social

PLANIFICACIÓN DE LA CÁTEDRA. Fundamentación de la asignatura (Importancia para la formación profesional en función del perfil del egresado):

GUÍA DOCENTE DE LA ASIGNATURA

DIDÁCTICA DE LA ECONOMÍA

Reclutamiento y selección de personal

Nombre de la asignatura Psicología Evolutiva II Curso 3º Equipo docente responsable de la evaluación y las tutorías

: Algorítmica y Estructura de Datos I

Grupos sociales y organizaciones en la era de la información

PSICOLOGÍA DEL TRABAJO Y DE LAS ORGANIZACIONES

GUÍA DOCENTE DE ESTADÍSTICA EMPRESARIAL I

Retórica y métrica literarias

Universidad de las Illes Balears Guía docente

DIDÁCTICA Y DINÁMICA DE GRUPOS EN EDUCACIÓN SOCIAL

Operaciones algebraicas elementales (Unidad I del curso Matemáticas Básicas).

GUÍA DOCENTE Comunicación Interna y Externa de las Organizaciones

PROYECTO DOCENTE ASIGNATURA: "Lengua Francesa VI" Grupo: GRUPO 2(989773) Titulacion: Grado en Estudios Franceses Curso:

Guía docente Título superior de diseño

PROGRAMA DE LA ASIGNATURA "Formación para el Desarrollo de Contenidos en Deporte, Artes Visuales y Musicales" Grado en Pedagogía

Grado en Contabilidad y Finanzas. Asignatura: Matemáticas Empresariales GUÍA DOCENTE DE LA ASIGNATURA: (Matemáticas Empresariales)

CULTURA Y LITERATURA HISPANOAMERICANA

ANÁLISIS Y DISEÑO DE SISTEMAS

GUÍA DOCENTE Fundamentos de Computadores

Programa de la asignatura Curso: 2007 / 2008 SISTEMAS OPERATIVOS (1299)

Facultad de Derecho. Graduado/a en Relaciones Laborales GUÍA DOCENTE DE LA ASIGNATURA: Fundamentos de Derecho Constitucional

Universidad Católica de Santiago del Estero Facultad de Matemática Aplicada Carrera de Ingeniería en Electrónica

GUÍA DOCENTE Curso Académico

Tema 2 Introducción a la Programación en C.

MÓDULO II. EL EJERCICIO DE LA PROFESIÓN DE

UNIVERSIDAD NACIONAL FEDERICO VILLARREAL VICERECTORADO ACADEMICO Oficina Central de Asuntos Académicos

TRABAJO FIN DE GRADO

EXAR-D3O17 - Expresión Artística

PROGRAMA ANALÍTICO DE ASIGNATURA

Bloque temático Marketing turístico Curso Segundo. Tipos asignatura Obligatoria Créditos 6 cr. ECTS Horas de trabajo autónomo

Asignaturas antecedentes y subsecuentes

Control de procesos industriales

Grado en Turismo Universidad de Alcalá Curso Académico 2015 / 16 4º 1º Cuatrimestre

Tecnología de los Alimentos

GUÍA DOCENTE LITERATURA ESPAÑOLA. EDAD MEDIA

GUÍA DOCENTE Arquitecturas Avanzadas de Computadores

Guía docente de la asignatura

GUÍA DOCENTE MATEMÁTICAS FINANCIERAS

GUÍA DOCENTE MATEMATICAS APLICADAS I

GUÍA DOCENTE. Ingeniería Informática en Sistemas de Información Doble Grado:

UNIVERSIDAD CENTROAMERICANA VICERRECTORIA ACADEMICA SYLLABUS

PROYECTO DOCENTE ASIGNATURA: "Literatura Griega"

UNIVERSIDAD DE GUADALAJARA

ANX-PR/CL/ GUÍA DE APRENDIZAJE. ASIGNATURA Expresion grafica. CURSO ACADÉMICO - SEMESTRE Segundo semestre

GUÍA DOCENTE Curso

GUÍA DOCENTE DE PROGRAMACIÓN ORIENTADA A OBJETOS

GUÍA DOCENTE DE LA ASIGNATURA

GUÍA DOCENTE CONTRATACIÓN PÚBLICA

Modelado y Simulación de Sistemas

Pontificia Universidad Católica del Ecuador

Transcripción:

PROCESADORES DEL LENGUAJE (3º Curso Primer Cuatrimestre) Grado en Ingeniería de Computadores Universidad de Alcalá Curso Académico 2011/12

GUÍA DOCENTE Nombre de la asignatura: Procesadores del lenguaje Código: 780018 Titulación en la que se imparte: Departamento y Área de Conocimiento: Carácter: Obligatoria Créditos ECTS: 6 Curso y cuatrimestre: Profesorado: Grado en Ingeniería de Computadores Ciencias de la Computación / Lenguajes y Sistemas Informáticos 3º curso, 1º cuatrimestre Salvador Sánchez Alonso Daniel Rodríguez García Horario de Tutoría: Idioma en el que se imparte: Español 1. PRESENTACIÓN La asignatura Procesadores del Lenguaje estudia el proceso de traducción de los lenguajes con carácter general y en particular de los lenguajes de programación, las técnicas de traducción de los mismos, los módulos que componen los procesadores de lenguaje y las formas en que dichos módulos se comunican. El objetivo principal es introducir a los estudiantes en la teoría y la práctica de la traducción de lenguajes. Se organiza como una asignatura de 6 ECTS, donde se explora la teoría de la traducción de lenguajes y se muestra cómo aplicar esta teoría a la construcción de compiladores e intérpretes. Abarca la construcción de traductores asistida por la utilización de generadores de compiladores, identificando y analizando también los principales problemas del diseño de los traductores. La asignatura presupone que el estudiante posee unos buenos conocimientos de programación, específicamente en lenguaje Java o C que son los lenguajes a que se orientan las herramientas de generación automática de procesadores léxicos y sintácticos empleados. Es por ello por lo que resulta especialmente importante haber cursado con anterioridad las asignaturas Fundamentos de programación y Programación, siendo también aconsejable un grado de competencia medio-alto en Sistemas operativos y Estructuras de datos. 2

2. COMPETENCIAS Esta asignatura, y de forma más amplia la materia de la que forma parte, desarrolla en el alumno las siguientes competencias: 2.1. Competencias genéricas: Desarrollar aptitudes para la comunicación oral y escrita Desarrollar capacidad de análisis y síntesis Desarrollar capacidad para la toma de decisiones Desarrollar métodos para la auto-organización y planificación del trabajo individual. Motivación por la calidad Desarrollar la capacidad de autoaprendizaje Desarrollar la capacidad de documentarse y aprender de textos en inglés. 2.2. Competencias generales: Reconocer los modelos formales que sostienen la teoría del procesamiento de lenguajes (expresiones regulares, teoría de autómatas y gramáticas). Comparar y contrastar entornos de ejecución interpretados y compilados, con sus ventajas y desventajas, así como la importancia de la abstracción en el contexto de las máquinas virtuales y comprender distintas realizaciones prácticas de dicho concepto. Describir las distintas fases y algoritmos utilizados en la traducción y generación de código desde el programa fuente al ejecutable, incluidas las consideración en la traducción de código dependiente e independiente de la máquina Introducir los conceptos de optimización de código, incluyendo las distintas posibilidades en la elección de código intermedio y fases de optimización. Introducir los conceptos de tipos, ámbito y su comprobación (compatibilidad), en el procesamiento de lenguajes de programación Comprender el concepto de tipo de dato y ser capaz de identificar las características principales de un sistema de tipos. 2.3. Competencias específicas: Diseñar e implementar analizadores léxicos sencillos que produzcan testigos que puedan ser procesados por un analizador. Diseñar la gramática de un lenguaje y utilizarla para generar un analizador sintáctico que junto con un analizador léxico verifiquen los errores estructurales del texto fuente. Ser capaces de realizar un análisis sintáctico simple sin utilizar herramientas de generación automática para ello. Utilizar herramientas de construcción automática de traductores (Flex/Bison, LEX/YACC, JLex-JFlex/CUP). Diseñar analizadores sintácticos para lenguajes artificiales y resolver los posibles conflictos que pudieran aparecer. Conocer los tipos de errores que se pueden presentar durante el análisis de un programa, cómo se detectan, cómo se informa de estos errores y cómo un traductor se puede recuperar de ellos. 3

Incorporar a un analizador sintáctico la gestión de errores y de la tabla de símbolos. Describir e interpretar cómo se aplican los sistemas de tipos en un lenguaje de programación. Describir los distintos tipos de modelos de control de errores, y en cierta medida, saber aplicar los correspondientes algoritmos de control. Construir los módulos de un compilador encargados de las fases de análisis léxico, sintáctico, semántico y de generación de código intermedio Conocer los fundamentos de la generación de código final y las técnicas esenciales de optimización del código. Ser capaces de determinar la posición que ocuparán los datos durante la ejecución de un programa y el modo de acceso a los mismos. 3. CONTENIDOS Bloques de contenido (se pueden especificar los temas si se considera necesario) Módulo I: Introducción a los traductores Módulo II: Análisis Léxico Módulo III: Análisis Sintáctico Módulo IV: Análisis Semántico Módulo V: Generación y optimización de código Módulo VI: Fase de síntesis Total de clases, créditos u horas 0,5 ECTS 1,5 ECTS 2 ECTS 1 ECTS 0,5 ECTS 0,5 ECTS 4. METODOLOGÍAS DE ENSEÑANZA-APRENDIZAJE.-ACTIVIDADES FORMATIVAS 4.1. Distribución de créditos (especificar en horas) Número de horas presenciales: Número de horas del trabajo propio del estudiante: Total horas 150 30 horas de teoría y problemas 30 horas de laboratorio 90 horas, incluyendo tutorías 4.2. Estrategias metodológicas, materiales y recursos didácticos 4

La asignatura se organiza como una asignatura cuatrimestral de 6 ECTS, empleándose en el proceso de enseñanza-aprendizaje de sus contenidos las siguientes actividades formativas: Clases Teóricas presenciales. Clases Prácticas presenciales. Prácticas en Laboratorio presenciales. Tutorías: individuales y/o grupales. Trabajos individuales Además, en función de la naturaleza de las distintas partes de la materia objeto de estudio, se podrán utilizar, entre otras, las siguientes actividades formativas: Elaboración de trabajos en equipo. Puesta en común de la información, problemas y dudas que aparezcan en la realización de los trabajos. Organización y realización de jornadas públicas con presentaciones orales y discusión de resultados. Utilización de Plataforma de Aula Virtual. Actividades presenciales: 1. En el aula: Exposición y discusión de los conocimientos básicos de la asignatura. Planteamiento y resolución teórica de ejercicios y supuestos relacionados. Actividades (lecturas, discusiones, casos, etc.) orientadas a la enseñanza de las competencias específicas de la asignatura. 2. En el laboratorio: Planteamiento, desarrollo y solución de ejercicios prácticos utilizando herramientas, técnicas y métodos objetos de estudio de la asignatura, contribuyendo al desarrollo de la capacidad de análisis, razonamiento crítico y comprensión de las prácticas realizadas. Actividades no presenciales: 1. Análisis y asimilación de los contenidos de la materia, resolución de problemas, consulta bibliográfica, preparación de trabajos individuales y/o grupales, realización de autoevaluaciones. Orientadas especialmente al desarrollo de métodos para la organización y planificación del trabajo individual y en equipo. 2. Tutorías: asesoramiento individual y en grupos durante el proceso de enseñanza-aprendizaje, bien en forma presencial o a distancia. Recursos y Materiales Bibliografía de referencia sobre la asignatura. Ordenadores personales. Software de generación automática de analizadores léxicos (JLex, JFlex, lex, etc.) y sintácticos (Yacc, CUP, etc.) y manuales de uso de los mismos. Entornos de desarrollo Conexión a Internet. Plataforma de Aula Virtual y manuales de uso. Proyectores. Para la adquisición de las competencias prácticas, se utilizará una metodología de aprendizaje basada en una práctica evolutiva e incremental. 5

5. EVALUACIÓN: Procedimientos, criterios de evaluación y de calificación Los estudiantes se acogerán a los procedimientos de evaluación recogidas por la Normativa de Evaluación de los Aprendizajes de la Universidad de Alcalá, específicamente en su Título 2, artículos 9 (evaluación continua) y 10 (evaluación final). Criterios de evaluación La evaluación de la adquisición de competencias tendrá en cuenta los siguientes criterios de evaluación: - Dominio de los contenidos básicos - Capacidad de resolución de problemas - Aplicación y transferencia de los contenidos Evaluación continua y evaluación final La Evaluación servirá, en cualquier caso, como evaluación formativa durante el proceso de enseñanza-aprendizaje. El sistema de evaluación continua que se propone se compone de: Pruebas escritas de carácter teórico/practico y realización de prácticas de programación donde el alumno deberá utilizar el software de generación automática de analizadores sintácticos/léxicos. Ambas pruebas pueden ser de carácter eliminatorio, y se podrán realizar en el aula/laboratorio o a través de la plataforma de e-learning puesta a disposición del alumno. La calificación final se calculará teniendo en cuenta que el valor de las pruebas teóricas será de un 50% de la nota final y otro 50% las prácticas. La evaluación final consistirá en un examen (50% de la calificación) y una práctica extensa que cubrirá los contenidos de la asignatura en su totalidad (50%). 6. BIBLIOGRAFÍA Bibliografía Básica AHO, A.V., SETHI, R. y ULLMAN, J.D. (2008) Compiladores: Principios, técnicas y herramientas, 2ª edición. Addison Wesley. Clásico de la informática que trata con mucha profusión y profundidad la mayoría de los temas -aunque puede alcanzarse una buena comprensión de los compiladores sin necesidad de comprender todos los detalles de cada algoritmo-. 6

LOUDEN, K. C. 1997. Compiler Construction: Principles and Practice. International Thomson Publishing (ITP). Uno de los libros más claros y didácticos sobre el tema, aborda todas las fases de la traducción con la profundidad exigida a un curso de grado pero sin perder por ello la claridad y la visión didáctica. Es posiblemente el mejor libro para hacer un estudio poco dirigido por un profesor, por lo que se recomienda especialmente dada la naturaleza de las nuevas titulaciones en el EEES. Bibliografía Complementaria BENNETT, J. P. (1996). Introduction to Compiling Techniques. McGraw-Hill, 1996. Texto fácil de leer y ameno de nivel introductorio. Puede ser un complemento como texto de introducción para aquellos que buscan un libro fácil y didáctico con una fuerte componente práctica al mismo tiempo. DOMINGUEZ, J. (2008). Compiladores: Teoría Y práctica Con Java, Jlex, Cup Y Ens2001. Lulu.com. Describe completamente el proceso de creación de un compilador en Java con las herramientas JLex, Cup y Ens2001. Es un excelente complemento para el estudio del análisis sintáctico y una imprescindible referencia para los trabajos prácticos las PECs. GRUNE, D y Jacobs, C.J.H. (2008). Parsing techniques: a practical guide, 2nd edition. New York: Springer. Se dedica íntegramente a una de las partes más complejas para los alumnos, el análisis sintáctico, que constituye en la práctica el primer escalón verdaderamente fuerte en su curva de aprendizaje en la asignatura. MAK, R. (2009). Writing Compilers and Interpreters: A Software Engineering Approach, 3rd edition. Wiley. Desarrolla muy bien las técnicas para construir un analizador, un intérprete, un depurador a nivel de código fuente y un compilador para la máquina virtual Java Virtual Machine. El libro es más para el que quiere aplicar los compiladores que para el teórico del compilador, por lo que resulta especialmente recomendable como compañero a la hora de implementar las partes más prácticas de la asignatura. MUCHNICK, S. (1997). Advanced Compiler Design and Implementation. Morgan Kaufmann. Cubre temas avanzados en todas las áreas fundamentales del diseño de compiladores, pero es especialmente interesante como guía de estudio en los temas relacionados con la optimización de código pues describe una amplia gama de posibles algoritmos de optimización y determina la importancia relativa de las optimizaciones. Excelente complemento para estudiar la fase de optimización. WIRTH, N. 1996. Compiler construction. Addison Wesley. Presenta un ejemplo completo de compilador con el lenguaje Oberon para una arquitectura RISC lo cual resulta muy útil para el alumno cuando se enfrenta a la tarea de realizar su propia implementación pues tiene ejemplos similares de los que aprender. Interesante complemento para el estudio de la asignatura. 7