Blog de Contraslash (Legacy)

Modelos y Paradigmas de Programación

June 08, 2018

Modelos y Paradigmas de Programación

Los modelos y paradigmas de programación son principios subyacentes a la implementación de cada lenguaje de programación. Entender estos conceptos permite que se pueda utilizar de una manera adecuada cada uno de estas optimizaciones a la hora de resolver algún tipo de problema.

No existe ningún paradigma o modelo que sea el más adecuado para resolver todo tipo de problemas. Por esta razón algún paradigma o modelo puede aproximarse mejor a la manera natural de resolver un problema

Se analizarán los siguientes modelos y paradigmas:

  1. Programación declarativa. Se define como un proceso donde un programa es un conjutno de declaraciones de lo que se desea, pero el funcionamiento interno es desconocido por el programador. Conceptos importantes dentro de este paradigma:

    • Lenguaje Núcleo
    • Variables declarativas
    • Procedimientos y Registros como valores básicos
  2. Programación concurrente declarativa: La programación declarativa es secuencial y es posible sacarle provecho a la implementación de ordenadores con múltiples núclos. Conceptos importantes de este paradigma:

    • Hilos
    • Flujos
    • Disparadores por necesidad
    • Programación dirigida por demanda y por datos
  3. Programación con estado: El modelo declarativo tiene limitaciones con la modularidad y la reutilización, el estado añade sostenibilidad a lo largo del tiempo. Conceptos básicos de este paradigma:

    • Celdas
    • Estado explícito
  4. Programación concurrente por paso de mensajes: El modelo concurrente declarativo no permite modelar procesos cliente servidor, entonces se extiende este modelo con los siguientes conceptos:

    • Puertos
    • Programación multiagente
  5. Programación orientada a objetos: El modelo de programación orientada a objetos es un paradigma avanzado que se situa encima del paradigma de programación con estado, y sus principales conceptos no implican añadir un concepto transversal, aunque sus abstracciones linguisticas ayudan mucho:

    • Objetos
    • Clases
    • Herencia
  6. Programación relacional: Algunos problemas pueden resolverse naturalmente pensando en relaciones en vez de funciones, por esto se extiende el modelo declarativo con los siguientes conceptos:

    • Escogencia no determinista
    • Espacio de computación