Descripció de Llenguatges de Programació (DLP)
Professors Responsables: |
SILVIA INÉS CLERICI (silvia lsi.upc.edu)
|
|
Crèdits: 6.0 (4.5 T 1.5 P 0.0 L)
|
Departament:
LSI
|
Tipus d'assignatura
Optativa per la EI , ETIG , ETIS
Requisits de l'assignatura
EDA
- Pre-requisit per la EI , ETIG , ETIS
|
|
LGA
- Pre-requisit per la EI , ETIG , ETIS
|
|
Objectius docents
Objetivo general: Que los alumnos adquieran las herramientas conceptuales necesarias para poder analizar los lenguajes de programación desde diferentes puntos de vista: -Según el modelo subyacente (diferentes classes o paradigmas). -Como objetos formales dotados de una estructura (sintaxis) y su significado según los diversos enfoques semánticos (punto de vista del diseñador, el implementador o el programador). -Según las componentes fundamentales presentes en todo lenguaje de programación y las diversas formas que éstas pueden adoptar en diferentes paradigmas. Subobjetivos. Capacidades involucradas: Los alumnos al finalizar el curso deberán ser capaces de: Manejar la terminología y la notación para la descripción formal de la sintaxis de los lenguajes de programación. Formular y/o interpretar una especificación semántica (en los diversos enfoques) de: - un lenguaje de programación sencillo. - de construcciones particulares en casos más complejos. Manejar los conceptos matemáticos básicos que sirven de fundamento al enfoque denotacional. Diferenciar las características propias de los principales paradigmas. Conocer las características deseables en un lenguaje y cómo pueden afectar las decisiones de diseño en su logro.
Programa
1. Introducción general.
- Concepto del lenguaje de programación - Historia. - Criterios de diseño. - Classes de lenguajes.
2. Definición formal de lenguajes de programación.
- Sintaxis y semántica. Fases del proceso de traducción. - Lenguajes y gramática. Notación BNF. Componentes léxicos. - Arbol sintáctico. Ambigüedad. Sintaxis concreta y abstracta. - Distintos enfoques semánticos y su aplicación: axiomático, de atributos, operacional y denotacional. Definición de un lenguaje ejemplo (Tiny) en los enfoques operacional y de atributos.
3. Semántica denotacional.
- Fundamentos: Lambda cálculo. El problema de las definiciones recursivas. Introducción a la Teoría de dominios. Teorema del Punto fijo. - Descripción semántica de Tiny y sus extensiones. Equivalencia semántica de programas. Semántica de otras clases de lenguajes.
4. Tipos de datos.
- Concepto de tipo de datos. - Mecanismos de definición de tipos. Genericidad y polimorfismo. Herencia. Tipos algebraicos. - Estructura del sistema de tipos. - Comprobación de tipos.
5. Control de secuencia.
- En expresiones. Ordenes de reducción. Evaluación ansiosa y perezosa. - Entre instrucciones. Control implícito y explícito. - Entre unidades de programa. Procedimientos. Conrrutinas. Procesos concurrentes. Tratamiento de excepciones.
6. Control de datos.
- Asociación entre identificadores y objetos. - Ambito y visibilidad. - Datos compartidos. Paso de parámetros.
Avaluació
La nota final se calcula como la media de la nota obtenida en un parcial, que libera materia si la nota es no inferior a 4, con la nota obtenida en el final que tampoco podra ser inferior a 4. Si la nota del parcial es inferior a 4 la nota final sera la obtenida en el examen final que en ese caso incluira ambas partes de la asignatura. Si La nota del parcial es no inferior a 4 y la del final es menor que 4 la nota final se calculara como el maximo entre 0.45 x la nota del parcial, y la nota del final.
Càrrega
La asignatura no tiene prácticas, el trabajo fuera de clase consiste básicamente en resolver los problemas planteados para ejercitar los conceptos desarrollados en las clases de teoría. Problemas tipo podrán ser, por ejemplo: Demostrar que un programa con un bucle de condición siempre cierta es equivalente a la función indefinida. Que dos programas equivalentes en el enfoque denotacional no lo son en el operacional. Cómo sería la evaluación de una expresión en la modalidad ansiosa o en la perezosa. Los diferentes resultados según el paso de parámetros sea por valor, por referencia o por nombre. Quién debería tratar una excepción si la propagación es dinámica o estática, etc.
Bibliografia
Bibliografia bàsica
- T.W. Pratt & M.V.Zelkowitz Programming Languages: Design and Implemetation, 3º Edición Prentice-Hall, 1996 - Ellis Horowitz Fundamentals of Programming Languages Computer SciencePress, 1984 - C.Ghezzi & M. Jazayeri Programming Language Concepts J.Wiley &Sons, 1998 - L. Allison A practical Introduction to Denotational Semantics Cambridge
Computer Science Texts 23, 1986
Bibliografia complementària
- R.Sethi Lenguajes de Programación: Conceptos y Constructores Addison Wesley, 1992 - K. Slonneger & B.Kurtz Formal Sintax and Semantics of Programming Languages Ed. Addison Wesley, 1995 - F. Pagan Formal Sintax and Semantics of Programming Languages:A Panoramic Primer Prentice - Hall, 1981
Informació complementària
RECOMENDACION IMPORTANTE Es aconsejable la cursación simultanea con la asignatura PD puesto que muchos de sus contenidos estan relacionados y son complementarios.
|