LENGUAJES Y PARADIGMAS DE PROGRAMACIÓN
Presentación
Curso 2003-2004
LPP: DescripciónCarácter: ObligatoriaAdaptado por Ing. Otitigbe Obadiah Oghoerore AlegbeUniversidad Nacional de Lanús - Argentina
Basado en el trabajo de
Profesores: María Alpuente (Despacho 240)
[email protected] Mª José Ramírez (Despacho 239)
[email protected] DSIC,
Planta 2ª
Material de la asignatura: microweb
Curso 2003-2004
Por qué estudiar LPP?
Para entender el diseño e implementación de los lenguajes: sintaxis - reglas de construcción de los programassemántica - significado de los programasimplementación - cómo se ejecutanpragmática - aspectos prácticos de su uso
Para saber qué lenguaje es más apropiado para resolver cierto tipo de problemas imperativo: PascaL/C,
OO: C++/JavaFuncional: Haskell/LISP/ML Lógico: Prolog/Mercury …
Para mejorar el conocimiento de los lenguajes que ya utilizamosPara mejorar nuestras técnicas de programación
Programar = definir nuevas extensiones de un lenguajePara saber proyectar nuevos lenguajesPara poder aprender fácilmente nuevos lenguajes
Curso 2003-2004
LPP: Objetivos docentes
Introducir los fundamentos y aplicaciones de los paradigmas clave en que se enmarcan los lenguajes de programación actuales:
funcionallógicoobjetos imperativo
y otros
Curso 2003-2004
LPP: Objetivos de aprendizaje
Capacitar a los estudiantes para entender los lenguajes de programación desde diferentes puntos de vista:
según el modelo subyacente (paradigma) según las componentes fundamentales presentes en
todo lenguaje de programación (estructuras de datos, modo de ejecución, ...)
como objetos formales dotados de una estructura (sintaxis) y un significado (semántica), según diversos enfoques (diseñador, implementador, programador)
Curso 2003-2004
LPP: Objetivos de aprendizaje
Al finalizar el curso, los estudiantes serán capaces de:
diferenciar las características propias de los principales paradigmas
conocer las características deseables en un lenguaje resolver un mismo problema en diferentes estilos escribir pequeños programas en cada lenguaje
Curso 2003-2004
LPP: Temario
1. IntroducciónConcepto de lenguaje de programaciónHistoriaCriterios de diseñoPrincipales paradigmas
2. Sintaxis y semántica los lenguajes de programación
Sintaxis de los lenguajes de programación: criterios generales, elementos sintácticos, modelos de traducciónConcepto y necesidad de las descripciones semánticas. Equivalencia de programas. Corrección y Completitud. Semánticas denotacional, axiomática, operacional.
Curso 2003-2004
LPP: Temario
3. Paradigma funcionaltipos de datos, inferencia de tiposrecursiónpolimorfismoevaluación impaciente y perezosaorden superior
4. Paradigma lógicovariables lógicasunificación y resoluciónbúsqueda de soluciones (backtracking)control
Curso 2003-2004
LPP: Temario
5. Paradigma imperativoabstracción de datosevaluación de expresionesestructuras de controlsubprogramas, paso de parámetros, excepciones
6. Otros paradigmasOrientación a ObjetosConcurrencia...
Curso 2003-2004
LPP: Laboratorio
Se realizarán prácticas para ilustrar los conceptos más relevantes de la asignatura.Se usarán dos lenguajes cuyas características fundamentales serán presentadas en las clases prácticas:
El lenguaje funcional Haskell. El lenguaje lógico SicstusProlog.
Curso 2003-2004
LPP: Evaluación
Se realizará un examen de tipo test con preguntas teórico-prácticas referentes al temario de teoría explicado en clase y a las características generales de los lenguajes vistos en el laboratorio. Las prácticas se evaluarán en el laboratorio con la presentación de los ejercicios propuestos a tal fin. La realización y presentación de las prácticas es un requisito indispensable para poder aprobar la asignatura aunque no contribuyen a la nota de la misma.En caso de proponer alguna práctica voluntaria, su realización permitirá obtener hasta un punto adicional a sumar a la nota del examen.
Curso 2003-2004
LPP: Bibliografía
Básica: Apt, K.R. From Logic Programming to Prolog, Prentice Hall,
1996. Bird, R. Introducción a la Programación Funcional, Prentice
Hall, 2000. Pratt, T.W.; Zelkowitz, M.V. Lenguajes de programación:
diseño e implementación, Prentice-Hall, 1998 Scott, M.L. Programming Language Pragmatics, Morgan
Kaufmann Publishers, 2000Complementaria:
Horowitz, E. Fundamentals of Programming Languages, Computer Science Press, 1984.
Louden, K.C. Programming Languages: Principles and Practice, PWS Publishing, 1993.
Sethi, R. Lenguajes de programación: conceptos y constructores, Addison Wesley, 1992.