Prologin ja Lisp:n välinen ero

Prologin ja Lisp:n välinen ero
Prologin ja Lisp:n välinen ero

Video: Prologin ja Lisp:n välinen ero

Video: Prologin ja Lisp:n välinen ero
Video: What programming language to learn in 2023? Ranking, Comparison, Applications / Best Language 2024, Heinäkuu
Anonim

Prolog vs Lisp

Prolog ja Lisp ovat kaksi suosituinta tekoälyn (AI) tietokoneohjelmointikieliä nykyään. Ne on rakennettu kahdella eri ohjelmointiparadigmalla. Prolog on deklaratiivinen kieli, kun taas Lisp on toiminnallinen kieli. Molempia käytetään erilaisiin tekoälyongelmiin, mutta Prologia käytetään eniten logiikka- ja päättelyongelmiin, kun taas Lispiä käytetään ongelmiin, jotka liittyvät nopeisiin prototyyppitarpeisiin.

Prolog

Prolog on tekoälyohjelmointikieli. Se kuuluu loogisten ohjelmointikielten perheeseen. Prolog on deklaratiivinen kieli, jossa laskelmat siirretään suorittamalla kyselyitä relaatioiden (jotka edustavat ohjelman logiikkaa), jotka määritellään säännöiksi ja tosiasiaksi. Vuonna 1970 kehitetty prolog on yksi vanhimmista logiikkaohjelmointikielistä ja yksi suosituimmista tekoälyohjelmointikielistä nykyään (Lispin ohella). Se on ilmainen kieli, mutta saatavilla on monia kaupallisia versioita. Sitä käytettiin alun perin luonnollisen kielen käsittelyyn, mutta nyt sitä käytetään erilaisiin tehtäviin, kuten asiantuntijajärjestelmiin, automaattisiin vastausjärjestelmiin, peleihin ja edistyneisiin ohjausjärjestelmiin. Prologilla on vain yksi tietotyyppi, jota kutsutaan termiksi. Termi voi olla atomi, luku, muuttuja tai yhdistetermi. Numerot voivat olla kelluvia tai kokonaislukuja. Prolog tukee luetteloita ja merkkijonoja kohteiden kokoelmana. Prolog määrittelee suhteet lauseiden avulla. Lausekkeet voivat olla joko sääntöjä tai tosiasioita. Prolog mahdollistaa iteroinnin perusteellisesti sen rekursiiviset predikaatit.

Lisp

Lisp on tietokoneohjelmointikielien perhe. Ja tunnetuimmat Lisp-murteet, joita käytetään yleiseen ohjelmointiin nykyään, ovat Common Lisp ja Scheme. Nimi LISP tulee sanasta "LIST Processing", ja kuten se vihjaa, Lispin tärkein tietorakenne on linkitetty luettelo. Itse asiassa koko lähde on kirjoitettu käyttäen listoja (käyttäen etuliitemerkintää) tai oikeammin suluissa olevilla listoilla (kutsutaan s-lausekkeiksi). Esimerkiksi funktiokutsu kirjoitetaan muodossa (f a1 a2 a3), mikä tarkoittaa, että funktiota f kutsutaan käyttämällä funktion syöttöargumentteja a1, a2 ja a3. Siksi sitä kutsutaan lausekesuuntautuneeksi kieleksi, jossa kaikki data ja koodi kirjoitetaan lausekkeina (Lispissä ei ole eroa lausekkeiden ja lausekkeiden välillä). Tämä mukava ominaisuus on hyvin erikoinen Lispille, jossa sitä voitaisiin käyttää laajentamaan kieltä käsillä olevaan ongelmaan kirjoittamalla hyödyllisiä makroja. Vaikka ohjelmoijat käyttävät häntärekursiota silmukoiden ilmaisemiseen, kaikki usein nähdyt Lisp-murteet sisältävät ohjausrakenteita, kuten silmukka. Lisäksi Common Lispissä ja -skeemassa on mapcar ja map, jotka ovat esimerkkejä funktioista, jotka tarjoavat silmukkatoiminnallisuuden soveltamalla funktiota peräkkäin kaikkiin elementteihinsä ja keräämällä tulokset luetteloon.

Mitä eroa on Prologilla ja Lispillä?

Vaikka Prolog ja Lisp ovat kaksi suosituinta tekoälyohjelmointikieliä, niillä on useita eroja. Lisp on toiminnallinen kieli, kun taas Prolog on looginen ohjelmointi ja deklaratiiviset kielet. Lisp on erittäin joustava nopeiden prototyyppien ja makroominaisuuksien ansiosta, joten se mahdollistaa itse asiassa kielen laajentamisen käsillä olevaan ongelmaan sopivaksi. Tekoälyn, grafiikan ja käyttöliittymien alueilla Lispia on käytetty laajasti tämän nopean prototyyppikyvyn ansiosta. Sisäänrakennettujen logiikkaohjelmointikykyjensä ansiosta Prolog on kuitenkin ihanteellinen tekoälyongelmiin, jotka liittyvät symboliseen päättelyyn, tietokantoihin ja kielten jäsennyssovelluksiin. Toisen valinta riippuu täysin ratkaistavana AI-ongelman tyypistä.

Suositeltava: