A linguagem nasceu de um projeto que foco não era a implementação de uma linguagem de programação, mas o processamento de linguagens naturais, na Universidade de Marselha, Alain Colmerauer e Robert Pasero trabalhavam juntos na parte de linguagem natural e Jean Trudel e Philippe Roussel trabalhavam juntos na parte de dedução do projeto. Interessado pelo método de resolução SL, Trudel persuadiu um dos seus inventores Robert Kowalski que possui um conceito da interpretação procedimental das cláusulas de Horn, que se uniu ao projeto. A motivação para isso veio em parte da vontade de reconciliar o uso da lógica como uma linguagem declarativa de representação do conhecimento com a representação procedimental do conhecimento, que era popular na América do Norte no final da década de 1960 para início de 1970, e assim, Prolog foi criada em meados de 1972 por Alain Colmerauer e Philippe Rousse.
Muito do desenvolvimento moderno do Prolog veio dos projetos de computadores da quinta geração (FGCS), que desenvolveu uma variante do Prolog chamada Kernel Language para seu primeiro sistema operacional.
Com o passar do tempo de desenvolvimento, Prolog ainda não é uma linguagem portável, já que cada implementação usa rotinas completamente diferentes e incompatíveis entre si. Por exemplo, um programa trivial que faz um loop de ler uma linha da console e escreve a mesma linha, terminando quando for entrada uma linha vazia, é impossível de ser escrito de forma que qualquer interpretador consiga rodar.
Características
O Prolog é uma linguagem declarativa, o que significa que em vez de o programa estipular a maneira de chegar à solução, passo a passo, como nas linguagens de procedimentais ou imperativas, o programa limita-se em fornecer uma descrição do problema que se pretender computador, assim, usando uma coleção base de dados de fatores e de relações logicas (regras) que exprimem o domínio relacional do problema a resolver.
Um programa pode rodar em um modo interativo, a partir de consultas formuladas pelo usuário, utilizando a base de dados (os ‘fatos’) e as regras relacionais (essencialmente implicações lógicas: se.. então), o mecanismo de unificação para produzir a solução, por uma cadeia de deduções lógicas.
A linguagem de programação Prolog é baseada em um subconjunto do cálculo de predicados de primeira ordem, o que é definido por cláusulas de Horn. A execução de um programa em Prolog é efetivamente a prova de um teorema por resolução de primeira ordem. Alguns conceitos fundamentais são unificações, recursão, e backtracking.