GNU Prolog er en gratis Prolog kompilatoren med tvang løse over endelige domener utviklet av Daniel Diaz. GNU Prolog aksepterer Prolog begrensning programmer og produserer innfødte binærfiler (som gcc gjør fra en C-kilde). Den oppnådde kjørbare er så alene.
Størrelsen på denne kjørbare filen kan være ganske små etter GNU Prolog kan unngå å knytte kode for de fleste ubrukte innebygd predikater. Forestillinger av GNU Prolog er veldig oppmuntrende (sammenlignbare til kommersielle systemer). Ved siden native-kode samling, GNU Prolog tilbyr en klassisk interaktive tolk (øverste nivå) med en debugger.
Den Prolog del i henhold til ISO-standarden for Prolog med mange utvidelser svært nyttig i praksis (globale variabler, OS grensesnitt, stikkontakter).GNU Prolog inkluderer også en effektiv begrensning solver over Endelige Domener (FD). Dette åpner contraint logikk programmering for brukeren å kombinere kraften av tvang programmering til declarativity av logikk programmering.
Viktigste funksjoner:
- Prolog-system:
- i henhold til ISO-standarden for Prolog (flyttall, bekker, dynamisk kode).
- mye av utvidelser: globale variabler, bestemte punkt grammatikker (DCG), stikkontakter grensesnitt, operativsystem grensesnitt
- mer enn 300 Prolog innebygd predikater.
- Prolog debugger og et lavt nivå WAM feilsøkingsprogrammet.
- line redigering av anlegget under den interaktive tolk med ferdigstillelse på atomer.
- kraftig toveis grensesnitt mellom Prolog og C.
- Kompilatoren:
- native-kode kompilatoren produserer frittstående kjørbare filer.
- enkel kommando-linje-kompilatoren aksepterer et bredt utvalg av filer: Prolog-filer, C filer, WAM-filer,...
- direkte generasjon av assembly-kode 15 ganger raskere enn wamcc gcc.
- de fleste av ubrukte innebygd predikater ikke er tilknyttet (for å redusere størrelsen på den kjørbare filer).
- samlet predikater (native-kode) så fort som wamcc i gjennomsnitt.
- konsultert predikater (byte-kode) 5 ganger raskere enn wamcc.
- Begrensning solver:
- FD variabler godt integrert i Prolog miljø (full kompatibilitet med Prolog variabler og heltall). Ingen behov for eksplisitt FD-erklæringer.
- veldig effektiv FD solver (sammenlignbare til kommersielle solvers).
- høyt nivå begrensninger kan beskrives i form av enkle primitives.
- mye av forhåndsdefinerte begrensninger: aritmetisk begrensninger, boolsk begrensninger, symbolsk begrensninger, reified begrensninger,...
- flere forhåndsdefinerte opplisting heuristikk.
- brukeren kan definere sin egen nye begrensninger.
- mer enn 50 FD innebygde begrensninger/predikater.
Kommentarer