Logo ITP-NEWS
RSS | Contatti | Login|Registrati| Home
giornali
Il linguaggio Prolog
Di Fusco Francesco :: 2011-03-22
In questo articolo diamo una breve descrizione del linguaggio Prolog
Il Prolog (PROgramming in LOGic) oppure (in francese) Programmation en Logique è un linguaggio di programmazione che adotta il paradigma logico. Infatti e' il primo dell'enorme famiglia dei linguaggi di programmazione logica.
È stato ideato da Robert Kowalski (aspetto teorico), Marten Van Emdem (dimostrazione sperimentale), ed implementato da Alain Colmerauer negli anni 70, costituendo un tentativo di costruire un linguaggio di programmazione che consentisse l'espressione del problema in forma logica invece della traduzione di un algoritmo di soluzione in forma di istruzioni da eseguire da parte della macchina. L'attuale implementazione di Prolog é dovuta in gran parte all'efficente codifica di David Warren.

Prolog e' stato implementato per la prima volta nel 1972 in ALGOL-W. Fu progettato originariamente per l'elaborazione del linguaggio naturale ma e' diventato uno dei piu' usati linguaggi per l'intelligenza artificiale.

Il Prolog è impiegato infatti in molti programmi di Intelligenza artificiale, la sua sintassi e la semantica sono molto semplici e chiare (lo scopo primitivo era quello di fornire uno strumento di lavoro a linguisti privi di conoscenze informatiche).

Il Prolog si basa sul calcolo dei predicati (precisamente il calcolo di predicati del primo ordine); tuttavia la sintassi è limitata a formule dette clausole di Horn che sono disgiunzioni di letterali del primo ordine quantificate universalmente con al più un letterale positivo.

L'esecuzione di un programma Prolog è comparabile alla dimostrazione di un teorema mediante la regola di inferenza detta risoluzione (introdotta da Robinson nel 1965). I concetti fondamentali sono l'unificazione, la ricorsione in coda e il backtracking.
Infatti e' basato sulla unificazione e risoluzione della dimostrazione dei teoremi di LUSH (o SLD).

La prima versione di Prolog non aveva nessuna funzione definita dall'utente e nessuna struttura di controllo oltre che la ricerca depth-first e backtracking. La collaborazione iniziale tra Marseille e Robert Kowalski all'University of Edinburgh continuo' fino al 1975.