Ingeniería de Computadores Plan 2019

Grado y Doble Grado. Curso 2019/2020.

LENGUAJES DE PROGRAMACIÓN Y PROCESADORES DE LENGUAJE - 803226

Curso Académico 2019-20

Datos Generales

SINOPSIS

COMPETENCIAS

Generales
CG12-Conocimiento, diseño y utilización de forma eficiente de los tipos y estructuras de datos más adecuados a la resolución de un problema.

CG13-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.
Transversales
CT1-Capacidad de comunicación oral y escrita, en inglés y español utilizando los medios audiovisuales habituales, y para trabajar en equipos multidisciplinares y en contextos internacionales.

CT2-Capacidad de análisis y síntesis en la resolución de problemas.

CT3-Capacidad para gestionar adecuadamente la información disponible integrando creativamente conocimientos y aplicándolos a la resolución de problemas informáticos utilizando el método científico.
Específicas
No tiene

ACTIVIDADES DOCENTES

Clases teóricas
Enseñanza presencial teórica.
Clases prácticas
Realización individual de problemas.
Laboratorios
Realización de prácticas de laboratorio.
Otras actividades
Tutorías individuales.

Presenciales

6

Semestre

1

Breve descriptor:

La asignatura recorre los conceptos básicos de los lenguajes de programación en los diferentes paradigmas y también describe a un nivel de profundidad intermedio la construcción de compiladores. Se presta especial atención a las fases del compilador más cercanas a la máquina.

Requisitos

Programación y arquitectura de computadores a nivel elemental.
Fundamentos y tecnología de la programación.

Objetivos

La asignatura pretende que los alumnos sepan relacionar los conceptos de alto nivel de los lenguajes de programación con su ejecución en un computador real. Para salvar esa distancia se ha escogido un enfoque en el que se van introduciendo en paralelo los conceptos de los diferentes lenguajes y la traducción e implementación a bajo nivel que de los mismos hace el compilador.

Contenido


1. Introducción a los lenguajes de programación y a los compiladores.

2. Autómatas finitos y análisixico.

3. Autómatacon pilagramáticas y análisisintáctico.

4. Análisis de lsemánticestáticaámbitos de definición. Sistemas de tipos.

5. Generación de código.

         6. Máquinas virtuales.

Evaluación

El 75% de la nota se obtendrá en el examen final. El 25% restante se obtendrá por la realización individual de hojas de ejercicios y prácticas de laboratorio, y su supervisión en las
clases de problemas y sesiones de laboratorio. Estos ejercicios y prácticas solo podrán realizarse durante el periodo en el que se imparte la asignatura, y por tanto, no habrá ninguna oportunidad adicional para recuperar este 25% para la convocatoria extraordinaria.

Bibliografía

M .L. Scott. Programming Language Pragmatics. Third Edition. Elsevier 2009.
R. Wilhelm; D. M aurer. Compiler Design. Addison-Wesley, 1995
Alfred V. Aho, M onica S. Lam, Ravi Sethi y Jeffrey D. Ullman. Compiladores. Principios, Técnicas y Herramientas. Segunda edición. Ed. Addison Wesley, 2008.
Kenneth C. Louden. Construcción de Compiladores. Ed. Thomson, 2004.
M . Alfonseca, M . de la Cruz, A. Ortega y E. Pulido. Compiladores e Intérpretes: Teoría y Práctica. Ed. Pearson Prentice Hall, 2006.
G. Sánchez y J.A. Valverde. Compiladores e intérpretes: un enfoque pragmático. Ed. Díaz de Santos, 1989.
F.J. Sanchís y C. Galán. Compiladores: teoría y construcción. Ed. Paraninfo, 1986.
A. Garrido, J.M . Iñesta, F. M oreno y J.A. Pérez. Diseño de Compiladores. Publicaciones U niversidad de Alicante, 2002.
D. Grune, H. Bal, C. Jacobs y K. Langendoen. M odern Compiler Design. John Wiley & Sons. 2000.
T. Pittman, J. Peters. The Art of Compiler Design: Theory and Practice. Ed. Prentice-Hall, 1992.
J.P. Bennett. Introduction to Compiling Techniques: A First Course Using ANSI C, LEX & YACC. Ed. M cGraw-Hill, 1990.
J.R. Levine, T. M ason y D. Brown. Lex & yacc. Ed. O’Reilly, 1995.

Otra información relevante

La ficha detallada se puede consultar en la sección de información docente de la Web de Facultad de Informática.

https://informatica.ucm.es/informacion-docente

Todo el material de la asignatura se proporcionará a través del Campus Virtual.

Estructura

MódulosMaterias
No existen datos de módulos o materias para esta asignatura.

Grupos

Clases teóricas y/o prácticas
GrupoPeriodosHorariosAulaProfesor
Grupo D05/09/2019 - 19/12/2019MARTES 09:00 - 11:00Aula 12RAFAEL DEL VADO VIRSEDA
JUEVES 09:00 - 11:00Aula 12RAFAEL DEL VADO VIRSEDA