Hva er noen gode Prolog IDEer?

Beste svaret

Emacs helt ned!

For seriøs Prolog-utvikling anbefaler jeg GNU Emacs med Prolog-modusen som vedlikeholdes av Stefan Bruda. SWI-Prolog-hjemmesiden forklarer hvordan du konfigurerer den, og inkluderer også pekere til ytterligere materiale:

Bruke SWI-Prolog med GNU Emacs

SWI-Prolog leverer til og med med sin egen Emacs-klon, noe som er nyttig for mindre redigeringsoppgaver. Du kan påkalle det med? – emacs.

For noen få alternative forslag, sjekk ut denne diskusjonen:

Hva er bra Prolog IDE for Linux?

Svar

Prolog er ikke døende. Generelt blir det undervist til alle Comp Sci-studenter som arbeider mot en doktorgrad! Spørsmålet ditt kan imidlertid være i del på grunn av det faktum at du «har lagt merke til til tross for at alle er tvunget til å lære det, at mengden nyskrevet Prolog-kode kommer til kort for unge mindre» velprøvde og sanne «språk? I løpet av de siste to årene må du evaluere hvor mange nye prosjekter eller blogginnlegg som ligger rundt: Clojure, F #, Brain4uck, Go, Cobra, miniKanren og Scala. Dessverre har selv de minste av disse overskredet antall nylig startede Prolog-biblioteker og prosjekter kombinert de siste 10 årene! (Beklager hvis noen av disse språkene ikke er veldig unge .. men tenk på hvor mye trekkraft hver har gevinst over så korte tidsperioder)

Jeg tror de neste to årene vil Prolog overstige minst to eller tre av de ovennevnte språkene i blogginnlegg og nye prosjekter.

Flere tanker

Jeg skriver en vanlig lisp-kompilator i Prolog .. det ser ut som om 2-måneders prosjekt. Det fungerer ved å få kompilatoren til å konvertere lisp kildekode til Prolog og deretter optimalisere prolog-koden enn å la backend kompilere prologen. Denne dataflyten virker allerede vanskelig for Haskell eller Idris. Jeg føler at det virkelige grunnleggende problemet er at de to sistnevnte ikke er uttrykksfulle nok til å beskrive det jeg nettopp sa uttalende på detaljnivå for å få det til.

Her er et eksempel på «beskrivende detaljer» (for pakkesystemet) https://github.com/TeamSPoon/wam\_common\_lisp/blob/master/prolog/wam\_cl/package.pl

Eller optimalisereren: https://github.com/TeamSPoon/wam\_common\_lisp/blob/master/prolog/wam\_cl/mizepro.pl

Er det enkelt å få Haskell til å optimalisere kilden før du kjører? Jeg forventer også at det i Haskell vil trenge en slags mellomliggende Haskell-representasjon som den kan tolke. Sannsynligvis ville det ikke være for vanskelig å skrive en Lisp-tolk i Haskell .. kompilatoren er mye mer arbeid?

Indoktrinasjonsnivåene til Haskell er godt egnet for akademiske formål, og som et resultat, Haskell har mer Ph.D. Trophy koner enn Prolog. Det er mye mer kompleksitet og håndbøker om hvordan de kan glede ektemenn (Haskell-programmereren leser HoTT-boken etter HoTT-boken) Men jeg tror de kanskje ikke skjønner at de er i et voldelig forhold: det som er pervers er at de tror (håper) deres ektemannen, som heter Haskell, vil gi dem de samme privilegiene som Prolog-konene har (ta dem med på samme ferier) (De er ikke klar over den faktiske eksistensen av prolog-koner, men er underlagt ektemannens propaganda (slik man ser på denne tråden) ) …. Få privilegier bare hvis de presterer veldig bra. Jeg tror et slikt ekteskap bare vil være egnet for nubilen. Det de ikke vet er at de aldri vil være «gode nok» til å få de samme feriene (programfunksjonene) de blir fortalt at slike ønsker er gale og gjort for å kjøle seg ned ved å se en annen Wadler-video.

Ikke misforstå, Prolog to har indoktrinering. . «ikke bruk kutt .. ikke bruk setarg / eller asserta /» Men i Haskell, hvis du avgrenser metodikken din, vil du oppdage at intensjonen din er feil. I Prolog, hvis du avgrenser metodikken din, oppdager du at din intensjon var aldri galt.

Flere aspekter av det dysfunksjonelle forholdet:

Både Haskell og Prolog er deklarative systemer for å beskrive dempingen av tilstander. Begge språkene som programmereren ser ut til å ha for å utvikle et språk rundt dataoverganger. I Prolog uttrykkes det via proposisjoner. (Men i Haskell må disse proposisjonene være i typer)

Begge kjedelig bygger en gnagerhindringsløype ved hjelp av papirtoalettruller … får gnageren til å bevege seg på ultraintelligente måter. I Prolog bygger du toalettrullene, så lager du toalettrullgeneratorer som kalles meta-predikater i stedet for kalkulatoren til konstruktører.

For meg ser jeg Haskell som å ha et ekstra av mine logiske forslag til prolog må bli typer (en per cla bruk). Dette ser ut til at det kan være ganske kjedelig (toalettrullene har unike navn) (det vil være vanskelig å prøve å skrive noen av mine prologklausuler) Siden de fleste av mine prologprogrammer som gjør fantastiske ting, inneholder 1000-setninger. Den eneste grunnen til å gjøre dette vanskelig for meg ville være å gjøre ting lettere for typekontrolløren?Ikke sikker på at disse ekstra runder i massen av fortvilelse ville hjelpe meg. Også, jeg trenger ikke å gjøre at hver ledd (proposisjon) passer inn i et eller annet type system (til en type)!

I Prolog, utenfor mansjetten, designer jeg typesystemet mitt dynamisk .. ikke terminering vilkår. (uendelige ubundne vilkår som jeg bruker i Lisp-miljøimplementeringen) Haskell vil at jeg skal miste det. Likevel, hva tilbyr det til gjengjeld? Noe konsistens? Hvorfor skulle en Prolog-programmerer registrere seg for filosofisk mikrostyring?

Alt Haskell ønsker er at jeg mister evner? Det virker som et verre tilfelle ekteskap hvis jeg var en nubile programmerer, ville jeg ikke visst bedre.

Haskell har en «kult» av indoktrinering. Kanskje for de fleste OO-programmerere, da de fremdeles vil se Haskell som et oppadgående skritt mot ekte generikk.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *