PROLOG (Sains komputer) ialah bahasa pengaturcaraan komputer yang berlandaskan logik peringkat pertama atau logik predikat, dengan penegatifan sebagai kegagalan ('andaian dunia tertutup'). Ia adalah implementasi terawal konsep pengaturcaraan logik, yang dipelopori Robert Kowalski dan lain-lain. Dengan itu, ia digolongkan sebagai suatu bahasa isytiharan.

Suatu aturcara dalam Prolog mempunyai satu sasaran, dan kenyataan-kenyataan lain yang mewakili hukum-hukum dan penerapan-penerapan bagi masalah berkenaan. Perjalanan aturcara mencari penyelesaian logik kepada sasaran berkenaan yang memuaskan hukum-hukum dan penerapan-penerapan yang diberikan.


Contoh:

sukahati(X) :- kaya(X).
sukahati(X) :- suka(zarina,X).
suka(zarina,X) :- suka(X,zarina),baik(X).
suka(zarina,X) :- segak(X),gagah(X).
suka(johan,X) :- cantik(X).
cantik(zarina).
baik(johan).
segak(johan).
gagah(johan).
?- sukahati(johan).

Perhatikan bahawa menggunakan set hukum-hukum dan penerapan-penerapan yang ada (yang dikatakan pangkalan pengetahuan), sasaran lain boleh dikenakan dengan langsung.

Contoh:

?- sukahati(X).

Hukum-hukum dalam Prolog terhad kepada klausa-klausa Horn, yang mempunyai satu dan hanya satu kepala. Ini membolehkan hukum-hukum ini ditafsirkan juga sebagai fungsi atau tatacara. Dengan ini kedudukan sesuatu kenyataan dalam aturcara (aturan kenyataan ditangani) menjadi penting.

Contoh:

faktorial(0,1).
faktorial(X,Y) :- faktorial(X1,Y1),darab(X,Y1,Y),tolak(X,1,X1).

Prolog juga mengadungi binaan bukan-logik, yang terutamanya potongan, '!', yang digunakan bagi mengawal perjalanan aturcara (khususnya untuk memberhentikan gelintaran lanjut).

Contoh:

merah(a).
hitam(b).
warna(X,merah) :- merah(X),!.
warna(X,hitam) :- hitam(X),!.
warna(X,takdiketahui). 
?- warna(a,X).