Różnica między Prologiem a Lispem

Różnica między Prologiem a Lispem
Różnica między Prologiem a Lispem

Wideo: Różnica między Prologiem a Lispem

Wideo: Różnica między Prologiem a Lispem
Wideo: Różnica między głoską a literą- fonetyka 2024, Lipiec
Anonim

Prolog kontra Lisp

Prolog i Lisp to obecnie dwa najpopularniejsze języki programowania komputerowego AI (sztucznej inteligencji). Zbudowane są z dwóch różnych paradygmatów programowania. Prolog jest językiem deklaratywnym, a Lisp jest językiem funkcjonalnym. Oba są używane do różnych problemów AI, ale Prolog jest używany głównie do problemów logicznych i rozumowania, podczas gdy Lisp jest używany do problemów z potrzebami szybkiego prototypowania.

Prolog

Prolog to język programowania AI. Należy do rodziny języków programowania logicznego. Prolog jest językiem deklaratywnym, w którym obliczenia są przenoszone przez uruchamianie zapytań nad relacjami (które reprezentują logikę programu), które są zdefiniowane jako reguły i fakty. Opracowany w 1970 roku prolog jest jednym z najstarszych języków programowania logicznego i jednym z najpopularniejszych obecnie języków programowania AI (wraz z Lispem). Jest to darmowy język, ale dostępnych jest wiele wariantów komercyjnych. Po raz pierwszy był używany do przetwarzania języka naturalnego, ale teraz jest używany do różnych zadań, takich jak systemy eksperckie, automatyczne systemy zgłoszeniowe, gry i zaawansowane systemy sterowania. Prolog ma tylko jeden typ danych zwany terminem. Termin może być atomem, liczbą, zmienną lub terminem złożonym. Liczby mogą być zmiennoprzecinkowe lub całkowite. Prolog obsługuje listy i ciągi jako kolekcję elementów. Prolog definiuje relacje za pomocą klauzul. Klauzule mogą być regułami lub faktami. Prolog umożliwia iterację przez jego rekurencyjne predykaty.

Lisp

Lisp to rodzina języków programowania komputerowego. A najbardziej znanymi dialektami Lispu używanymi dzisiaj do programowania ogólnego przeznaczenia są Common Lisp i Scheme. Nazwa LISP pochodzi od „Przetwarzania LISt” i jak wskazuje, główną strukturą danych Lispa jest połączona lista. W rzeczywistości całe źródło jest napisane za pomocą list (za pomocą notacji przedrostkowej) lub bardziej poprawnie ujętych w nawiasy list (zwanych s-wyrażeniami). Na przykład wywołanie funkcji jest zapisane jako (f a1 a2 a3), co oznacza, że funkcja f jest wywoływana przy użyciu a1, a2 i a3 jako argumentów wejściowych funkcji. Dlatego nazywa się go językiem zorientowanym na wyrażenia, w którym wszystkie dane i kod są zapisywane jako wyrażenia (w Lispie nie ma rozróżnienia między wyrażeniami a instrukcjami). Ta fajna funkcja jest bardzo wyjątkowa dla Lispa, gdzie można ją wykorzystać do rozszerzenia języka o problem, pisząc pomocne makra. Chociaż rekursja ogonowa jest używana przez programistów do wyrażania pętli, wszystkie często spotykane dialekty Lispa zawierają struktury kontrolne, takie jak pętla. Co więcej, Common Lisp i schema mają mapcar i map, które są przykładami funkcji, które zapewniają funkcjonalność pętli, stosując kolejno funkcję do wszystkich jej elementów, a następnie zbierają wyniki na liście.

Jaka jest różnica między Prologiem a Lispem?

Chociaż Prolog i Lisp są dwoma najpopularniejszymi językami programowania AI, mają różne różnice. Lisp to język funkcjonalny, natomiast Prolog to języki programowania logicznego i deklaratywne. Lisp jest bardzo elastyczny ze względu na szybkie prototypowanie i funkcje makr, więc w rzeczywistości pozwala na rozszerzenie języka, aby dopasować go do problemu. W obszarach sztucznej inteligencji, grafiki i interfejsów użytkownika Lisp jest szeroko stosowany ze względu na tę zdolność szybkiego prototypowania. Jednak ze względu na wbudowane możliwości programowania logicznego, Prolog jest idealny do rozwiązywania problemów AI z rozumowaniem symbolicznym, bazami danych i aplikacjami do analizowania języka. Wybór jednego lub drugiego całkowicie zależy od rodzaju problemu AI, który należy rozwiązać.

Zalecana: