La programación lógica es un paradigma de programación declarativa basado en la lógica de predicados de primer orden. Utiliza hechos, reglas y preguntas, donde los hechos son la base de datos con predicados, las reglas definen relaciones entre predicados, y las preguntas son consultas. Permite el uso de tipos abstractos de datos como árboles y listas, y técnicas como la recursividad.