La programación declarativa es una forma de especificar qué debe hacer un programa, en lugar de especificar cómo hacerlo. La mayoría de los lenguajes de computadora se basan en los pasos necesarios para resolver un problema, pero algunos lenguajes solo indican las características esenciales del problema y dejan que la computadora determine la mejor manera de resolver el problema. Se dice que los primeros lenguajes soportan la programación imperativa mientras que los segundos soportan la programación declarativa.
Se puede considerar el siguiente ejemplo de SQL para obtener todas las regiones de ventas donde las ganancias exceden un cierto número, digamos, $ 700 dólares estadounidenses (USD), a partir de los datos de ventas.
Seleccione Región, Beneficio de las ventas donde Beneficio> 700
Esta declaración no indica qué tiene que hacer el sistema SQL para obtener los datos. El sistema SQL puede revisar cada registro de ventas y determinar si se cumple la condición, o puede obtener rápidamente los primeros registros a partir de datos preclasificados. La declaración solo indica la naturaleza de los datos deseados.
Prolog es un lenguaje de programación declarativo que indica las relaciones lógicas entre entidades.
ancestro (M, C): – madre (M, C)
ancestro (X, Z): – madre (X, Y), ancestro (Y, Z)
El programa anterior indica obviedades. Si M es la madre de C, entonces M es un antepasado de C. Si X es la madre de alguna persona Y que es un antepasado de Z, entonces X es un antepasado de Z. Dado esto y algunos hechos de madre e hijo, el programa puede responder preguntas sobre todo el árbol genealógico materno.
Durante la ejecución del programa, el sistema Prolog acumula una serie de declaraciones verdaderas, creando así una base de conocimientos. Esta base de conocimientos se busca de manera eficiente por sí sola. El creador del programa anterior no especifica cómo buscar.
HTML y CSS son lenguajes de programación declarativos. Por ejemplo, el ejemplo HTML
En el ámbito de la programación y las ciencias de la computación, los contratos de operación son una forma de especificar o documentar cómo una función en particular cambiará diferentes elementos dentro de un programa. A diferencia de una interfaz de programación abstracta (API) o un documento de control de interfaz, los contratos de operación se utilizan para ayudar durante la fase de desarrollo y modelado de la creación de una aplicación o sistema informático. En el nivel más básico, el contrato define cuatro características de la operación, específicamente el nombre de la operación, cualquier referencia a la operación en otras áreas del diseño, cualquier requisito de entrada o estado antes de que se realice la operación y el estado de la operación. el sistema o las variables una vez realizada la operación. El contrato no define nada específico sobre cómo funciona la operación internamente y, en cambio, solo se ocupa de cómo el estado de un programa se ve afectado por su uso.
Los contratos de operación, en general, no se construyen para cada operación dentro de un modelo de programa. En cambio, están reservados para operaciones que son particularmente complejas o difíciles de rastrear. Varios lenguajes de modelado por computadora, como el lenguaje de modelado unificado (UML), admiten contratos de operación y tienen formas de ayudar a visualizar cómo puede cambiar el estado de un programa una vez que se ha realizado la operación.
Las dos primeras definiciones necesarias para crear contratos de operación son el nombre de la operación, que puede ser cualquier cosa, y cualquier referencia cruzada. Una referencia cruzada es una lista de otras operaciones o áreas de un modelo de programa que utilizan la operación que se está definiendo o que la operación utilizará en su procesamiento. Esto ayuda a ver cómo interactúa un diseño general y es especialmente útil para ver cómo los cambios en un área del modelo afectarán a otras áreas.
A continuación, los contratos de operación definen las condiciones previas necesarias para ejecutar la operación. Esto puede implicar requerir que ciertas variables se carguen con valores apropiados, o puede requerir que ciertas partes del programa estén en un estado particular. Si no se cumplen las condiciones previas cuando se ejecuta la operación, la operación no se llevará a cabo o podría fallar por completo. El contrato se utiliza como una herramienta abstracta, por lo que las condiciones previas suelen ser bastante generales e involucran más el estado del programa que las variables específicas.
La parte final de los contratos de operación define las condiciones posteriores. Las condiciones posteriores son una lista de elementos dentro del modelo del programa que se han modificado debido a la ejecución de la operación. Esto puede especificar cambios en una estructura de datos o modificaciones en el estado del programa, como cambiar el control a un módulo separado. Mediante el uso de contratos de operación bien definidos, los programas se pueden modelar y modificar de manera efectiva antes de que comience la implementación real.