Anar a: Buscar
FIB > Els estudis > Pla 91 > Pàgines de les assignatures > Departament LSI > DLP Castellano | English
A
AD
AED
AIA
AP
BDA
CL1
CL2
DBD
DLP
EA
EDA
ES:D1
ES:D2
ES:E
FBD
FP
FPC
GC
GPI
GSI
IBD
IEA
IIA
IL
IP
LGA
LPO
MAC
MFES
MGC
PC
PD
PGSI
PM
PP
R
RESI
SGBD
SIO
TC
TMIA
VRC



Descripció de Llenguatges de Programació (DLP)




Professors Responsables: SILVIA INÉS CLERICI (silvialsi.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.


versió per imprimir