Logtalk - Logtalk
| Paradigma | Looginen ohjelmointi , olio-ohjelmointi , prototyyppipohjainen ohjelmointi |
|---|---|
| Suunnitellut | Paulo Moura |
| Ilmestyi ensimmäisen kerran | 1998 |
| Vakaa vapautus | 3.48.0 / 6. heinäkuuta 2021
|
| Käyttöjärjestelmä | Monitasoinen |
| Lisenssi | Taiteellinen käyttöoikeus 2.0 (2.x) / Apache License 2.0 (3.01.x) |
| Verkkosivusto | logtalk |
| Vaikuttanut | |
| Prolog , Smalltalk , Objective-C | |
Logtalk on olio-orientoitu looginen ohjelmointikieli, joka laajentaa ja hyödyntää Prolog- kieltä ominaisuusjoukolla, joka soveltuu suurten ohjelmointiin . Se tarjoaa tukea kapseloinnille ja tietojen piilottamiselle , huolenaiheiden erottamiselle ja parannetulle koodin uudelleenkäytölle . Logtalk käyttää tavallista Prolog-syntaksia lisäämällä muutamia operaattoreita ja direktiivejä.
Logtalk kieli toteutus on jaettu alla avoimen lähdekoodin lisenssi ja voi ajaa käyttämällä Prolog toteutus (yhteensopiva virallisten ja de facto -standardien) kuten back-end kääntäjä.
ominaisuudet
Logtalk pyrkii tuomaan yhteen olio-ohjelmoinnin ja loogisen ohjelmoinnin edut. Kohdesuuntautuminen korostaa erillisten, uudelleenkäytettävien ohjelmistoyksiköiden kehittämistä, kun taas looginen ohjelmointi korostaa kunkin objektin tiedon esittämistä deklaratiivisella tavalla.
Kohdepainotteisena ohjelmointikielenä Logtalkin tärkeimmät ominaisuudet sisältävät tuen molemmille luokille (valinnaisilla metaslaseilla ) ja prototyypeille , parametriobjekteille, protokollille ( käyttöliittymät ), luokille (komponentit, näkökohdat , pikakorjaus ), moniperinteisyydelle , julkiselle / suojatulle / yksityiselle perintö, tapahtumavetoinen ohjelmointi , korkean tason monisäikeinen ohjelmointi, pohdinta ja automaattinen dokumentaation luominen.
Saat Prolog ohjelmoijat, Logtalk tarjoaa laajan siirrettävyys, jossa predikaattia nimiavaruudet (tukevat sekä staattisia ja dynaamisia objekteja), julkinen / suojattu / yksityinen esine predikaatteihin, coinductive predikaatteihin , erottaminen käyttöliittymä ja täytäntöönpanoon, yksinkertainen ja intuitiivinen meta-predikaatti semantiikka, lambda ilmaisuja , selvä lausekieliopit , termilaajennusmekanismi ja ehdollinen kokoaminen. Se tarjoaa myös moduulijärjestelmän, joka perustuu tosiasialliseen vakiomoduulitoimintoon (moduulit kootaan sisäisesti prototyyppeinä).
Esimerkkejä
Logtalkin syntakse perustuu Prologiin:
?- write('Hello world'), nl.
Hello world
true.
Objektin määrittely:
:- object(my_first_object).
:- initialization((write('Hello world'), nl)).
:- public(p1/0).
p1 :- write('This is a public predicate'), nl.
:- private(p2/0).
p2 :- write('This is a private predicate'), nl.
:- end_object.
Oletusta käytettäessä objektia tallennetaan my_first_object.lgt-tiedostoon:
?- logtalk_load(my_first_object).
Hello world
true.
?- my_first_object::p1.
This is a public predicate
true.
Yksityisen predikaatin käyttäminen yrittää antaa virheen:
?- my_first_object::p2.
ERROR: error(permission_error(access, private_predicate, p2), my_first_object::p2, user)
Anonyymit toiminnot
Logtalk käyttää seuraavaa syntaksia nimettömille predikaateille (lambda-lausekkeille):
{FreeVar1, FreeVar2, ...}/[LambdaParameter1, LambdaParameter2, ...]>>Goal
Yksinkertainen esimerkki, jossa ei ole vapaita muuttujia ja joka käyttää luettelokartoituksen predikaattia, on:
| ?- meta::map([X,Y]>>(Y is 2*X), [1,2,3], Ys).
Ys = [2,4,6]
yes
Myös currya tuetaan. Yllä oleva esimerkki voidaan kirjoittaa seuraavasti:
| ?- meta::map([X]>>([Y]>>(Y is 2*X)), [1,2,3], Ys).
Ys = [2,4,6]
yes
Prolog-taustan yhteensopivuus
Tuettuja Prolog-kääntäjiä ovat B-Prolog , Ciao Prolog , CxProlog , ECLiPSe , GNU Prolog , JIProlog , Quintus Prolog , Scryer Prolog , SICStus Prolog , SWI-Prolog , Tau Prolog , Trealla Prolog , XSB ja YAP . Logtalk sallii taustalla olevien Prolog-kääntäjäkirjastojen käytön objektien ja luokkien sisällä.
Kehittäjän työkalut
Logtalk sisältää online-ohjeet, dokumentointityökalun (joka voi luoda PDF- ja HTML-tiedostoja), entiteettikaavioiden generointityökalun, sisäänrakennetun virheenkorjauksen (perustuu laajennettuun versioon perinteisestä Process Box -mallista, joka löytyy useimmista Prolog-kääntäjistä), yksikkötestauskehys koodikattavuusanalyysillä, ja se on myös yhteensopiva valittujen Prolog-profiilien ja graafisten merkkiaineiden kanssa.
Sovellukset
Logtalkia on käytetty tuotteiden valmistustietojen vaihtamiseen käytettyjen STEP- tietomallien käsittelyyn . Sitä on myös käytetty toteuttamaan perustelujärjestelmä, joka mahdollistaa mieltymysten perustelun ja rajoitusten ratkaisemisen .
Katso myös
Viitteet
Ulkoiset linkit
- Virallinen nettisivu
- Logtalking-blogi
- Tavallisesta Prologista Logtalk-objekteihin: tehokas koodin kapselointi ja uudelleenkäyttö (kutsuttu kutsu). Paulo Moura. Proceedings of the 25th International Conference on Logic Programming (ICLP), heinäkuu 2009. LNCS 5649. Springer-Verlag Berlin Heidelberg ". ( Diat )