Differenza tra Prolog e Lisp

Differenza tra Prolog e Lisp
Differenza tra Prolog e Lisp

Video: Differenza tra Prolog e Lisp

Video: Differenza tra Prolog e Lisp
Video: AI and Society: 05a. Symbolic AI and Prolog 2024, Luglio
Anonim

Prolog vs Lisp

Prolog e Lisp sono oggi due dei linguaggi di programmazione per computer AI (Intelligenza Artificiale) più popolari. Sono costruiti con due diversi paradigmi di programmazione. Prolog è un linguaggio dichiarativo, mentre Lisp è un linguaggio funzionale. Entrambi vengono utilizzati per vari problemi di intelligenza artificiale, ma Prolog viene utilizzato principalmente per problemi di logica e ragionamento, mentre Lisp viene utilizzato per problemi con esigenze di prototipazione rapida.

Prologo

Prolog è un linguaggio di programmazione AI. Appartiene alla famiglia dei linguaggi di programmazione logica. Prolog è un linguaggio dichiarativo, in cui i calcoli vengono trasferiti eseguendo query sulle relazioni (che rappresentano la logica del programma), che sono definite come regole e fatti. Sviluppato nel 1970, prolog è uno dei più antichi linguaggi di programmazione logica e uno dei linguaggi di programmazione AI più popolari oggi (insieme a Lisp). È un linguaggio gratuito, ma sono disponibili molte varianti commerciali. È stato inizialmente utilizzato per l'elaborazione del linguaggio naturale, ma ora è stato utilizzato per varie attività come sistemi esperti, sistemi di risposta automatica, giochi e sistemi di controllo avanzati. Prolog ha un solo tipo di dati chiamato termine. Un termine può essere un atomo, un numero, una variabile o un termine composto. I numeri possono essere float o interi. Prolog supporta liste e stringhe come raccolta di elementi. Prolog definisce le relazioni usando clausole. Le clausole possono essere regole o fatti. Prolog consente l'iterazione attraverso i suoi predicati ricorsivi.

Lisp

Lisp è una famiglia di linguaggi di programmazione per computer. E i dialetti Lisp più famosi utilizzati oggi per la programmazione generica sono Common Lisp e Scheme. Il nome LISP deriva da "LISTT Processing" e, come suggerisce, la principale struttura di dati di Lisp è l'elenco collegato. Infatti l'intera fonte è scritta usando liste (usando la notazione del prefisso), o liste più correttamente tra parentesi (chiamate s-espressioni). Ad esempio, una chiamata di funzione viene scritta come (f a1 a2 a3), il che significa che la funzione f viene chiamata utilizzando a1, a2 e a3 come argomenti di input per la funzione. Pertanto è chiamato un linguaggio orientato alle espressioni, in cui tutti i dati e il codice sono scritti come espressioni (non c'è distinzione tra espressioni e istruzioni in Lisp). Questa simpatica funzionalità è molto speciale per Lisp, dove potrebbe essere utilizzata per estendere il linguaggio al problema in questione scrivendo utili macro. Sebbene la ricorsione della coda sia utilizzata dai programmatori per esprimere i loop, tutti i dialetti Lisp visti di frequente includono strutture di controllo come il loop. Inoltre, Common Lisp e schema hanno mapcar e map che sono esempi di funzioni, che forniscono funzionalità di loop applicando la funzione successivamente a tutti i suoi elementi e quindi raccogliendo i risultati in un elenco.

Qual è la differenza tra Prolog e Lisp?

Sebbene Prolog e Lisp siano due dei linguaggi di programmazione AI più popolari, presentano diverse differenze. Lisp è un linguaggio funzionale, mentre Prolog è un linguaggio di programmazione logica e dichiarativo. Lisp è molto flessibile grazie alla sua prototipazione rapida e alle funzionalità macro, quindi consente effettivamente di estendere il linguaggio per adattarsi al problema in questione. Nelle aree dell'IA, della grafica e delle interfacce utente, Lisp è stato ampiamente utilizzato grazie a questa capacità di prototipazione rapida. Tuttavia, grazie alle sue capacità di programmazione logica integrate, Prolog è ideale per problemi di intelligenza artificiale con applicazioni di ragionamento simbolico, database e analisi del linguaggio. La scelta dell'uno rispetto all' altro dipende completamente dal tipo di problema di IA che deve essere risolto.

Consigliato: