Skip to content

Latest commit

 

History

History
45 lines (31 loc) · 2.56 KB

README.md

File metadata and controls

45 lines (31 loc) · 2.56 KB

Paradigmas de Programacion - 1er C 2024 - FCEN UBA

Contenidos de la materia:

  • Fundamentos de lógica proposicional y de primer orden. Sistemas deductivos: juicios, proposiciones y derivaciones. Sistemas de demostración y nociones de semántica (estructuras de primer orden, valuaciones, modelos, fórmulas válidas y satisfactibles). Nociones de corrección y completitud.

  • Programación aprovechando las características de distintos modelos de cómputo.

  • Programación funcional. Tipos de datos inductivos y funciones recursivas. Funciones anónimas. Esquemas de recursión básicos. Demostración de propiedades de programas por inducción estructural. Esquemas de recursión sobre listas y sobre tipos de datos inductivos en general. Recursión estructural y recursión primitiva.

  • Programación lógica. Método de resolución para lógica proposicional y de primer orden. Cláusulas de Horn y resolución SLD. Criterios de búsqueda y selección. Operador de corte y negación por falla.

  • Programación orientada a objetos. Nociones de objeto, mensaje, clase, instancia, subclasificación, herencia, polimorfismo.

  • Introducción a la semántica formal de lenguajes de programación. Cálculo-lambda simplemente tipado. Sustitución, alfa y beta-reducción. Semántica operacional small-step. Estrategias de reducción: call-by-name y call-by-value. Progreso, preservación y normalización fuerte. Extensiones del cálculo-lambda con recursión general (operador de punto fijo), polimorfismo y subtipado. Semántica big-step. Semántica denotacional.

  • Nociones básicas de implementación de lenguajes de programación. Interpretación y compilación. Máquinas abstractas. Algoritmos de unificación e inferencia de tipos.

Orden cronológico de presentación:

  1. Programación funcional
  2. Razonamiento ecuacional e inducción estructural
  3. Deducción natural para lógica proposicional
  4. Sistemas de tipos y reducción (semántica operacional small-step)
  5. Interpretación (semántica big-step y denotacional) y compilación
  6. Lógica de primer orden
  7. Programación lógica
  8. Resolución lógica
  9. Programación orientada a objetos

Temas a evaluar en el primer parcial:

  • Programación funcional (en Haskell)
  • Razonamiento ecuacional e inducción estructural
  • Deducción natural para lógica proposicional
  • Sistemas de tipos y reducción
  • Interpretación y compilación

Temas a evaluar en el segundo parcial:

  • Lógica de primer orden
  • Resolución lógica
  • Programación lógica (en Prolog)
  • Programación orientada a objetos (en SmallTalk) "# Paradigmas-de-Programacion-UBA"