Jaké jsou dobré IDE Prologu?


Nejlepší odpověď

Emacs až dolů!

Pro seriózní vývoj Prologu doporučuji GNU Emacs s režimem Prolog, který udržuje Stefan Bruda. Domovská stránka SWI-Prolog vysvětluje, jak to nastavit, a zahrnuje také odkazy na další materiál:

Používání SWI-Prolog s GNU Emacs

SWI-Prolog se dokonce dodává s vlastním klonem Emacs, což je užitečné pro menší úpravy. Můžete jej vyvolat pomocí? – emacs.

Několik alternativních návrhů naleznete v této diskusi:

Co je dobré Prolog IDE pro Linux?

Odpověď

Prolog neumírá. Obecně se učí každého studenta Comp Sci, který pracuje na získání titulu PhD! Vaše otázka však může být v částečně díky tomu, že jste si všimli, i když se všichni musí naučit, množství nově napsaného kódu Prolog nedosahuje mladých méně „osvědčených“ jazyků? Za poslední dva roky vyhodnotte, kolik nových projektů nebo příspěvků na blogu se objevilo: Clojure, F #, Brain4uck, Go, Cobra, miniKanren a Scala. Je smutné, že i ty nejméně překročily počet nově zahájených knihoven a projektů Prolog dohromady za posledních 10 let! (Omlouváme se, pokud některé z těchto jazyků nejsou příliš mladé .. ale přemýšlejte o tom, kolik trakce každý z nich získal za tak krátká období)

Myslím, že příští dva roky bude Prolog překračovat minimálně dva nebo tři výše uvedené jazyky v příspěvcích na blogu a v nových projektech.

Další myšlenky

V Prologu píšu běžný překladač lisp .. vypadá to jako asi 2měsíční projekt. Funguje to tak, že kompilátor převede zdrojový kód lisp do Prologu a poté optimalizuje kód prologu, než aby nechal backend kompilovat prolog. Tento tok dat se zdá být pro Haskella nebo Idrise již těžký. Cítím, že skutečným základním problémem je, že poslední dva jazyky nejsou dostatečně expresivní, aby popsaly to, co jsem právě deklarativně řekl na úrovni podrobností, aby se tak stalo.

Zde je příklad „popisných podrobností“ (pro systém balíků) https://github.com/TeamSPoon/wam\_common\_lisp/blob/master/prolog/wam\_cl/package.pl

Nebo optimalizátor: https://github.com/TeamSPoon/wam\_common\_lisp/blob/master/prolog/wam\_cl/mizepro.pl

Je snadné nechat Haskell optimalizovat zdroj před spuštěním? Očekávám také, že v Haskellu by to potřebovalo nějakou střední reprezentaci Haskellu, kterou dokáže interpretovat. Pravděpodobně by nebylo příliš těžké napsat tlumočníka Lisp v Haskellu .. překladač je mnohem více práce?

Úrovně indoktrinace Haskella jsou vhodné pro akademické účely, a proto Haskell má více Ph.D. Trofeje manželky než Prolog. Existuje mnohem složitější a příručky, jak potěšit své manžely (programátor Haskell čte knihu HoTT po knize HoTT), ale myslím si, že si možná neuvědomují, že jsou ve zneužívajícím vztahu: co je zvrácené, je to, že si myslí (doufají) jejich Manžel jménem Haskell jim poskytne stejná privilegia, jaké mají manželky Prologů (vezměte je na stejné dovolené) (Nevědí však o skutečné existenci manželek Prologových nebo podléhají jejich manželské propagandě (jak je vidět na tomto vlákně) ) …. Získejte oprávnění, pouze pokud fungují velmi dobře. Myslím, že takové manželství by bylo vhodné pouze pro nubila. To, co nevědí, je, že nikdy nebudou „dost dobří“ na to, aby dostali stejné dovolené (možnosti programu), je jim řečeno, že takové touhy jsou špatné a musí se ochladit sledováním dalšího videa Wadler.

Nechápejte mě špatně, Prolog to má indoktrinaci. . „nepoužívejte škrty .. nepoužívejte setarg / nebo asserta /“ Pokud ale v Haskellu zdokonalíte svou metodiku, zjistíte, že váš záměr je špatný. V Prologu, pokud zdokonalíte svou metodologii, zjistíte, že váš záměr nikdy se nemýlilo.

Další aspekty nefunkčního vztahu:

Haskell i Prolog jsou deklarativní systémy pro popis zmírňování stavů. Zdá se, že oba jazyky musí programátor vyvinout jazyk kolem datových přechodů. V Prologu je to vyjádřeno propozicemi. (Ale v Haskellu musí být tyto propozice v typech)

Oba zdlouhavě budují překážkovou dráhu pro hlodavce pomocí papírových toaletních rolí … Intelektuální bitva je díky čemuž se tento hlodavec pohybuje ultrainteligentním způsobem. V Prologu stavíte toaletní role, poté místo počtu konstruktérů vytváříte generátory toaletních rolí, které se nazývají metadikáty.

Podle mě vidí Haskella jako navíc z mých logických prologů prologu se musí stát typy (jeden na kla použití). Zdá se, že to může být docela zdlouhavé (toaletní role mají jedinečné názvy) (snažit se typizovat některé z mých prologových klauzulí by bylo těžké) Protože většina mých prologových programů, které dělají úžasné věci, obsahuje 1000 s klauzulí. Jediným důvodem, proč mi to ztěžovat, by bylo usnadnit ověřovateli typu?Nejsem si jistý, jestli by mi tato kola navíc v mrzutosti pomohla. Také nemusím každou klauzuli (propozici) přizpůsobit do nějakého typového systému (do typu)!

V Prologu, mimo manžetu, navrhuji svůj typový systém dynamicky .. nelze jej ukončit termíny. (nekonečné nevázané termíny, které používám při implementaci prostředí Lisp) Haskell by chtěl, abych o to přišel. Přesto co na oplátku nabízí? Nějaká konzistence? Proč by se programátor Prologu přihlásil k filozofickému mikromanagementu?

Jediné, co Haskell chce, je, abych ztratil schopnosti? To se jeví jako horší případ manželství, kdybych byl programátorem, který by mě neznal.

Haskell má „kult“ indoktrinace. Možná pro většinu programátorů OO, protože by stále viděli Haskella jako vzestupný pohyb směrem ke skutečným generikám.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *