es un paradigma de programación en el que tanto la estructura como la ejecución de los programas van determinados por los sucesos que ocurran en el sistema, definidos por el usuario o que ellos mismos provoquen.
Está basado en describir el problema declarando propiedades y reglas que deben cumplirse, en lugar de instrucciones.
basado en la definición de relaciones lógicas, está representado por Prolog.
basada en la definición los predicados y es de corte más matemático, está representado por Scheme (una variante de Lisp) o Haskell.
Este paradigma está más basado en el modo de realizar los algoritmos, por lo que se puede usar con cualquier lenguaje imperativo.
Está basada en el imperativo, pero encapsula elementos denominados objetos que incluyen tanto variables como funciones. Está representado por C++ o Java, pero el más representativo sería el Smalltalk que está completamente orientado a objetos.
Programación dinámica
Programación lógica
Programación orientada a objetos
Programación funcional
Programación dirigida por eventos
programativa
Programación declarativa