Curso 2015-2016
Procesadores de Lenguaje
Titulación: | Código: | Tipo: |
Grado en Ingeniería Informática | 21428 | Obligatoria 3º curso |
Grado en Ingeniería Telemática | 22609 | Optativa |
Grado en Ingeniería en Sistemas Audiovisuales | 21654 | Optativa |
Créditos ECTS: | 4 | Dedicación: | 100 horas | Trimestre: | 2º |
Departamento: | Dpto. de Tecnologías de la Información y las Comunicaciones |
Coordinador: | Rafael Ramírez |
Profesorado: | Rafael Ramirez, Zacharias Vamvakousis |
Idioma: | Angl�s |
Horario: | |
Campus: | Campus de la Comunicación - Poblenou |
La
asignatura Procesadores de Lenguajes es una asignatura obligatoria que
se ofrece durante el curso de ingenier�a en inform�tica. La asignatura est� integrada en un
bloque de asignaturas, conjuntamente con lenguajes formales, en la que
se estudia la sintaxis, sem�ntica y compilaci�n de programas y los
principales conceptos de los lenguajes de programaci�n. La asignatura tiene un componente te�rico y otro pr�ctico. Dentro del componente te�rico el �nfasis est� en la
comprensi�n de los conceptos a nivel intuitivo m�s que en la utilizaci�n
estricta de lenguaje matem�tico.
La asignatura est� compuesta de tres activitades principales: clases de teor�a, seminarios y laboratorios. En las clases de teor�a se introducen los conceptos formales y matem�ticos y se muestran ejemplos de su aplicaci�n. En los seminarios los alumnos resuelven peque�os problemas. Cada problema corresponde a uno de los conceptos introducidos en clase de teor�a. En los laboratorios se presenten problemas de mayor
complejidad y de car�cter m�s computacional para que los alumnos tengan
la oportunidad de poner en pr�ctica los conceptos aprendidos.
Objetivos de aprendizaje
El
objetivo de la asignatura es solidificar, profundizar, extender y poner
en pr�ctica las competencias obtenidas en lenguajes formales. M�s
concretamente, se pretende conseguir que los alumnos desarrollen la
capacidad de especificar la sintaxis y sem�ntica de lenguajes de
programaci�n simples, verificar formalmente programas, e implementar
compiladores para lenguajes de programaci�n sencillos. Asimismo,
los estudiantes deber�an desarrollar competencias para entender los
modelos de ejecuci�n de diferentes paradigmas de programaci�n e
identificar el mejor modelo en diferentes problem�ticas.
Los conocimientos previos para el seguimiento de la asignatura son nociones de matem�ticas b�sicas adquiridas en la ense�anza secundaria obligatoria y durante los primeros dos cursos de los estudios. En particular, los conocimientos previos requeridos para la asignatura son:
- Nociones algebraicas b�sicas: funciones (inyectivas, biyectivas), conjuntos y operaciones elementales sobre conjuntos, relaciones de equivalencia.
- Nociones b�sicas de l�gica matem�tica: relaciones, predicados, conectivos l�gicos.
- Aritm�tica b�sica.
- Capacidad b�sica para comprender y escribir expresiones matem�ticas a nivel elemental.
Esta asignatura es asume la asimilaci�n de los conceptos aprendidos en lenguajes formales, as� como en L�gica Computacional.
El objectivo fundamental de la asignatura es que los alumnos adquieran los aspectos fundamentales relacionados con los lenguages de programaci�n: sintaxis, sem�ntica y compilaci�n de programas, as� como nociones de los diferentes paradigmas de programaci�n.
Competencias transversales | Competencias espec�ficas |
---|---|
Instrumentales 1. Capacidad de razonar a nivel abstracto 2. habilidades cognitivas 3. sentido com�n Interpersonales 4. Competencia de comunicaci�n Sist�micas 5. Capacidad de identificar la mejor metodolog�a para resolver un problema. 6. Capacidad de solucionar problemas combinando de manera nueva y no trivial elementos ya conocidos 7. Capacidad de generar ideas |
1. Capacidad de entender a nivel intuitivo y formal los diferentes aspectos en lenguajes de programaci�n: sintaxis, sem�ntica y compilaci�n de programas. 2. Capacidad de aplicar los conocimientos de sintaxis, sem�ntica y compilaci�n de programas en contextos pr�cticos. 3. Capacidad de entender las diferentes fases de compilaci�n y de los modelos de ejecuci�n de diferentes paradigmas de programaci�n |
Concreci�n por competencias
Competencias a alcanzar en la asignatura | Indicadores de logro | Procedimiento de evaluaci�n | Temporalizaci�n |
---|---|---|---|
Competencias generales 1. Capacidad de razonar a nivel abstracto 2. habilidades cognitivas 3. sentido com�n 4. Competencia de comunicaci�n 5. Capacidad de identificar la mejor metodolog�a para resolver un problema. 6. Capacidad de solucionar problemas combinando de manera nueva y no trivial elementos ya conocidos 7. Capacidad de generar ideas |
1. Capacidad de solucionar problemas abstractos 2. Capacidad de proponer soluciones a problemas 3. Capacidad de proponer soluciones a problemas 4. Soluciones coherentes y bien escritos a las pr�cticas y seminarios 5. Soluciones coherentes a las pr�cticas y seminarios 6. Soluciones coherentes a las pr�cticas y seminarios 7. Soluciones ingeniosas a problemas presentados |
1. Evaluaci�n de pr�cticas, seminarios y del examen final 2. Evaluaci�n de pr�cticas, seminarios y del examen final 3. Evaluaci�n de pr�cticas, seminarios y del examen final 4. Evaluaci�n de pr�cticas y seminarios 5. Evaluaci�n de pr�cticas y seminarios 6. Evaluaci�n de pr�cticas, seminarios y del examen final 7. Evaluaci�n de pr�cticas, seminarios y del examen final |
1. Todo el trimestre |
Competencias espec�ficas 1. Capacidad de entender a nivel intuitivo y formal los diferentes aspectos en lenguajes de programaci�n: sintaxis, sem�ntica y compilaci�n de programas. 2. Capacidad de aplicar los conocimientos de sintaxis, sem�ntica y compilaci�n de programas en contextos pr�cticos. 3. Capacidad de entender los diferentes modelos / paradigmas de computaci�n y de identificar el mejor modelo en diferentes problem�ticas.
|
1. Capacidad de entender expresiones matem�ticas elacionades con la sintaxis y sem�ntica de programas y entender los diferentes pasos de compilaci�n de programas. 2. Capacidad de especificar la sintaxis y sem�ntica, as� como implementar un compilador para lenguajes de programaci�n sencillos 3. Capacidad de entender y elaborar programas en diferentes paradigmas de programaci�n y su uso en diferentes contextos. |
1. Evaluaci�n de seminarios y del examen final 2. Evaluaci�n de pr�cticas, seminarios y del examen final 3. Evaluaci�n de pr�cticas, seminarios y del examen final |
1. Todo el trimestre |
En la evaluaci�n continua se tiene en cuenta cada una de las tres actividades que constituyen la asignatura: clases de teor�a, laboratorios y seminarios:
Evaluaci�n | Recuperable? | |
---|---|---|
Teoria |
Evaluaci�n mediante un examen final |
Si |
Laboratorios |
Evaluaci�n con las pr�cticas de programaci�n (LP) y examen final de pr�cticas (LE) |
LP: No |
Seminarios |
Evaluaci�n mediante resoluci�n de ejercicios de seminario |
No |
Bloques de contenido
- Bloque de contenido 1. Sintaxis, sem�ntica y verificacion formal de programas
- Bloque de contenido 2. Compilaci�n de programas
- Bloque de contenido 3. Paradigmas de programaci�n
Organizaci�n y concreci�n de los contenidos
- Bloque de contenido 1. Sintaxis, sem�ntica y verificaci�n formal de programas
Conceptos | Procedimientos | Actitudes |
---|---|---|
1. Gram�ticas BNF, derivaciones, �rboles sint�cticos, parsing 2. Sem�ntica denotacional y sem�ntica axiom�tica 3. Tripletas de Hoare, invariantes y m�todos de verificaci�n formal de programas, model checking |
1. Poder especificar formalmente la sintaxis e implementar parsers para lenguajes de programaci�n 2. Poder especificar la sem�ntica de lenguajes de programaci�n. 3. Poder dise�ar especificar propiedades y verificar formalmente un programa |
1. Apreciar los diferentes tipos de formalismos �tiles en el �rea de los lenguajes de programaci�n 2. Disponibilidad intentar entender conceptos que inicialmente parecen complejos. |
Bloque de contenido 2. Compilaci�n de programas
Conceptos | Procedimientos | Actitudes |
---|---|---|
1. Compiladores e int�rpretes de lenguajes de programaci�n 2. Estructura de un compilador: an�lisis l�xico, an�lisis sint�ctico, an�lisis sem�ntico, c�digo intermedio, optimizaci�n de c�digo, generaci�n de c�digo. |
1. Describir el proceso de ejecuci�n tanto en lenguajes compilados como en lenguajes interpretados. 2. Implementar las diferentes etapas de compilaci�n para un lenguaje imperativo. |
1. Disponibilidad intentar entender conceptos que inicialmente parecen complejos. 2. Predisposici�n a adquirir conocimiento s�lido de base |
Bloque de contenido 3. Paradigmas de programaci�n
Conceptos | Procedimientos | Actitudes |
---|---|---|
1. programaci�n l�gica 2. programaci�n funcional 3. programaci�n concurrente |
1. Escribir programas l�gicos que resuelven problemas concretos 2. Escribir programas funcionales que resuelven problemas concretos 3. Diferenciar entre los diferentes mecanismos de sincronizaci�n y comunicaci�n disponibles en programaci�n concurrente, y escribir programas usando estos mecanismos para resolver problema concretos. |
1. Disponibilidad intentar entender conceptos que inicialmente parecen complejos. 2. Predisposici�n a adquirir conocimiento s�lido de base 3. Disponibilidad de dedicar el tiempo necesario a cada concepto |
Bibliograf�a b�sica (soporte papel y electr�nico)
Compiladores: principios, t�cnicas y herramientas
Aldred V. Aho, Ravi Sethi, Jefrey D. Ullman
Edici�n: Mexico [etc.]: Addison Wesley Longman, 1998.
ISBN: 968-444-333-1
Programming Languages Design and Implementation
Terrence Pratt and Marvin Zelkowitz
Prentice Hall (2001)
Concepts of Programming Languages
Robert Sebesta
Addison Wesley (2002)
Modern compiler implementation in ML
Andrew W. Appel
Cambridge University Press (1997)
Recursos did�cticos. Material docente de la asignatura
Web de la asignatura
apuntes
Colecci�n de ejercicios
Enunciados de las pr�cticas
Recursos did�cticos. Materiales y herramientas de soporte
Brief Java Threads Tutorial