Abby's Digital Cafe

Paradigma de programación declarativo

¿Qué es la programación declarativa?

La programación declarativa es un paradigma donde se describe qué se desea lograr sin especificar necesariamente cómo hacerlo paso a paso. A diferencia de la programación imperativa, aquí no nos enfocamos en modificar estados de variables, sino en expresar condiciones, funciones o reglas que el sistema debe cumplir.

Características principales

  • El foco está en el resultado, no en los pasos para alcanzarlo.
  • Se evita manejar estados mutables en el programa.
  • Se basa en reglas, funciones matemáticas y expresiones.
  • Favorece la claridad, reutilización y abstracción del código.

Programación lógica

En la programación lógica, los programas se construyen a partir de hechos y reglas. Un motor de inferencia procesa consultas basándose en estas declaraciones, deduciendo respuestas de forma automática.

Ejemplo de hechos y reglas:

[prolog]
ave(pichurri). ave(alegria). perro(sandokan). pinguino(tux). vuela(X) :- ave(X), not(pinguino(X)).

En este programa se afirma que existen aves, perros y pingüinos, y se define la regla: un animal vuela si es ave y no es pingüino. Consultas como vuela(pichurri). o vuela(X). permitirán que Prolog responda automáticamente.

Programación funcional

La programación funcional modela los programas como funciones matemáticas puras aplicadas a datos inmutables. Evita el cambio de estado y utiliza con frecuencia la recursión en lugar de bucles.

[python]
def sumar(a, b): return a + b print(sumar(2, 3)) # 5

En este ejemplo, definimos la función sumar y la usamos sin modificar estados externos. Además, la composición de funciones permite cadenas expresivas como:

[pseudo]
"MI TEXTO".minusculas().quitarEspacios().colorear("celeste").imprimir()

El resultado final sería: mitexto con formato celeste, mostrando cómo funciones encadenadas pueden transformar datos de manera elegante.

Lenguajes declarativos

  • Prolog, Datalog y Mercury (programación lógica).
  • Erlang, Haskell, F# (programación funcional).
  • SQL (consultas declarativas en bases de datos).

Preguntas frecuentes

¿En qué se diferencia de la programación imperativa?

La imperativa indica cómo resolver un problema paso a paso, mientras que la declarativa solo indica qué resultado se desea. Por ejemplo, en SQL escribimos SELECT nombre FROM usuarios; sin preocuparnos por cómo se recorren los registros.

¿Por qué se usa recursividad en programación funcional?

Porque los bucles tradicionales implican estados cambiantes. La recursividad, en cambio, permite repetir operaciones sin modificar variables externas, manteniendo la pureza de las funciones.

¿Qué ventajas ofrece la programación declarativa?

Favorece la legibilidad, la abstracción y el razonamiento matemático sobre el código. Esto la hace ideal para sistemas críticos, consultas de datos y entornos concurrentes, donde reducir efectos secundarios es vital.


En conclusión, la programación declarativa cambia el foco: en lugar de indicar cómo lograr algo, describimos las condiciones y relaciones que deben cumplirse. Este paradigma, con sus ramas lógica y funcional, abre la puerta a escribir software más expresivo, seguro y mantenible.

Comentarios