3. a:-b Origens A programação em lógica inicia com a publicação do artigo de John Alan Robinson em 1965 pela ACM: "A Machine-Oriented Logic Based on the Resolution Principle" Uma das primeiras linguagens a implementar os resultados de Robinson é Prolog, proposta por Alain Colmerauer e Phillipe Roussel em 1972 (Marseille).
4. O Que é o paradigma declarativo? Linguagens que seguem o paradigma declarativo são baseadas em programação em lógica (tradução direta de logic programming ). Prolog (do francês Pro grammation en Log ique ) é a linguagem-expoente desse paradigma, embora existam outras, como Gödel, Mercury, MUSE, etc. Há um outro paradigma derivado deste, que é o paradigma de programação por propagação de restrições (CLP – Constraint Logic Programming), com as linguagens Oz, CLP(R), ECL i PS e , etc.
5.
6. (Breve) Embasamento teórico Basicamente, a programação em lógica corresponde a escrever códigos como: goal :- subgoal_1, ..., subgoal_n. Que significa que para provar goal , é suficiente provar de subgoal_1 até subgoal_n .
7. MODULE GCD. IMPORT Integers. PREDICATE Gcd : Integer * Integer * Integer. Gcd(i,j,d) <- CommonDivisor(i,j,d) & ~ SOME [e] (CommonDivisor(i,j,e) & e > d). PREDICATE CommonDivisor : Integer * Integer * Integer. CommonDivisor(i,j,d) <- IF (i = 0 j = 0) THEN d = Max(Abs(i),Abs(j)) ELSE 1 =< d =< Min(Abs(i),Abs(j)) & i Mod d = 0 & j Mod d = 0. Exemplo em Gödel