You are on page 1of 4

PROGRAMACIN FUNCIONAL Y LGICA

CLAVE: 0813 SEMESTRE: (Optativa) CRDITOS: 10 HORAS POR CLASE CLASES POR SEMANA HORAS POR SEMESTRE REA: CIENCIAS DE LA COMPUTACIN Requisitos: Anlisis Lgico Lenguajes de Programacin y sus Paradigmas TERICA: 1 TERICA: 2 TERICA: 64 TERICO-PRCTICAS: 2 TERICO-PRCTICAS: 1 TERICO-PRCTICAS: 32

Objetivos generales: Se busca con este curso familiarizar a los estudiantes con los paradigmas de la programacin funcional y lgica. El primero de stos est ntimamente ligado al estudio de los lenguajes de programacin en cuanto a su aspecto semntico, mientras que el segundo es una herramienta poderossima en este mismo sentido en las aplicaciones de Inteligencia Artificial. Se revisan en este curso el estilo de programacin de los lenguajes funcionales, su estructura, aplicaciones e implementacin. Temario: PARTE A. Programacin Funcional. I. Funciones y Programas 3 horas Caracterizacin de los lenguajes funcionales frente a los lenguajes imperativos o de procedimientos. I.1 Programacin con funciones I.2 Programacin con procedimientos. II. Un lenguaje funcional puro 10 horas Elementos principales de los lenguajes funcionales. Estilo de programacin funcional. Mecanismos de control de flujo. II.1 Datos simblicos II.2 Constructores y selectores elementales. II.3 La Aritmtica y los predicados elementales. II.4 Funciones recursivas. II.5 Ms funciones recursivas. II.6 Parmetros acumuladores. II.7 Definiciones locales. II.8 Funciones de orden superior y Expresiones-. II.9 Notacin de punto.

III.

Programas funcionales simples 6 horas Ejemplos de algoritmos programados en un lenguaje funcional. Ventajas de la programacin funcional en cuanto a verificacin de programas. III.1 Anlisis dimensional - un ejemplo de programacin estructurada y prueba estructurada de programas. Sistemas Expertos ...

III.2 Bsquedas en rboles - Comparacin de programas para bsquedas por nivel (breadth first) y de profundidad (depth first). IV. Representacin e interpretacin de programas3 horas Aspectos relacionados con la implementacin de lenguajes funcionales. Momentos de ligado: compilacin frente a interpretacin. IV.1 Formas concretas y abstractas de programas. IV.2 Ligado. IV.3 Intrprete para la variante de LISP. V. Correspondencia entre programas funcionales e imperativos 4 horas Se revisa la relacin y correspondencia que existen entre los lenguajes funcionales y los lenguajes imperativos. Se dan los mecanismos para pasar del segundo al primero y el soporte necesario para la programacin funcional. V.1 Un intrprete para un programa iterativo. V.2 Equivalentes funcionales de programas imperativos. V.3 Transformacin de programas imperativos a programas funcionales. V.4 Soporte para programas funcionales en mquinas convencionales.

VI. Una arquitectura para programas funcionales 5 horas Se revisan mquinas virtuales para la ejecucin de programas funcionales, en particular programas escritos en el lenguaje LISP. VI.1 Generalidades de la computadora. VI.2 La computadora SECD VI.3 Un compilador para la variante de LISP. VI.4 La programacin del compilador. VI.5 Terminacin de la descripcin semntica. PARTE B. Programacin Lgica. I. Construcciones bsicas 11 horas Presentacin de los mecanismos de reglas y de la mquina de inferencia en lenguajes de programacin lgica. I.1 Hechos. I.2 Consultas. I.3 La variables lgica, sustituciones e instancias. I.4 Consultas de existencia. I.5 Hechos universales. I.6 Consultas conjuntivas y variables compartidas. I.7 Reglas. I.8 Un intrprete abstracto simple. I.9 El significado de un programa lgico. II. Programacin de la base de datos 4 horas Se presentan las distintas formas que toma la base de datos para poder elaborar el conjunto de reglas de inferencia que den solucin a los problemas tratados. II.1 Base de datos simple. ...

Sistemas Manejadores de Bases de Datos

II.2 Datos estructurados y abstraccin de los datos. II.3 Reglas recursivas. II.4 Programas lgicos y el modelo relacional de bases de datos. III. Programacin recursiva 5 horas Se dan ejemplos concretos de solucin de problemas a travs de la programacin lgica. III.1 Aritmtica. III.2 Listas. III.3 Composicin de programas recursivos. III.4 rboles binarios. III.5 Manipulacin de expresiones simblicas.

IV. El modelo computacional para los programas lgicos 4 horas Se presenta la mquina virtual en la que se procesan los programas funcionales del tipo de los expuestos hasta este momento. IV.1 Unificacin. IV.2 Un intrprete abstracto de programas lgicos. V. Teora de la programacin lgica 6 horas Se formalizan los conceptos arriba mencionados para conocer la teora subyacente a la programacin lgica y su aplicacin en la demostracin de correctez de un programa. V.1 Semntica. V.2 Correctez de programas. V.3 Complejidad. V.4 rboles de bsqueda. V.5 La negacin en la programacin lgica.

Bibliografa: Bsica: Hogger, C. J., Introduction To Logic Programming, Academic Press, Inc., 1984 Ullman, J.D., Elements of ML Programming, Prentice-Hall Computer Science, 1994. Complementaria: Coelho, H.; Cotta, J.C., Prolog by Example. How to Learn, Teach and Use It, SpringerVerlag, 1988. Henderson, P., Functional Programming, Application and Implementation, PrenticeHall International, 1980. Hennesey, W., Common Lisp, McGraw-Hill Computer Science, 1989. Lloyd, J.W., Foundations of Logic Programming, Second, extended edition, SpringerVerlag, 1987. Sangal, R., Programming Paradigms in Lisp, McGraw-Hill Computer Science, 1991. Springer, G.; Friedman, D.P., Scheme and the Art of Programming, McGraw-Hill Computer Science, 1990.
Supercmputo

...

Sterling, L.; Shapiro, E., The Art of Prolog, Advanced Programming Techniques, The MIT Press, 1986.

Teora de Cdigos

...

You might also like