Quels sont les bons IDE Prolog?

Meilleure réponse

Emacs jusquen bas!

Pour le développement sérieux de Prolog, je recommande GNU Emacs avec le mode Prolog qui est maintenu par Stefan Bruda. La page daccueil de SWI-Prolog explique comment le configurer et comprend également des pointeurs vers dautres informations:

Utilisation de SWI-Prolog avec GNU Emacs

En fait, SWI-Prolog est même livré avec son propre clone Emacs, ce qui est utile pour les petites tâches dédition. Vous pouvez linvoquer avec? – emacs.

Pour quelques suggestions alternatives, consultez cette discussion:

Quest-ce que « cest bien Prolog IDE pour Linux?

Réponse

Prolog nest pas en train de mourir. Généralement, il est enseigné à tous les étudiants en Comp Sci qui préparent un doctorat! Cependant, votre question peut être en partie en raison du fait que vous « avez remarqué que tout le monde est forcé de lapprendre, la quantité de code Prolog nouvellement écrit est en deçà des jeunes langages moins » éprouvés et vrais « ? Au cours des deux dernières années, évaluez le nombre de nouveaux projets ou articles de blog autour: Clojure, F #, Brain4uck, Go, Cobra, miniKanren et Scala. Malheureusement, même les plus petits dentre eux ont dépassé le nombre de bibliothèques et de projets Prolog nouvellement démarrés au cours des 10 dernières années! (Désolé si certaines de ces langues ne sont pas très jeunes … mais pensez à la force de traction de chacune sur de si courtes périodes)

Je pense que les deux prochaines années, Prolog dépassera au moins deux ou trois les langages ci-dessus dans les articles de blog et les nouveaux projets.

Plus de réflexions

Jécris un compilateur lisp commun dans Prolog .. cela ressemble à un projet denviron 2 mois. Cela fonctionne en demandant au compilateur de convertir le code source de lisp en Prolog, puis en optimisant le code du prologue plutôt quen laissant le backend compiler le prologue. Ce flux de données semble déjà difficile pour Haskell ou Idris. Je pense que le vrai problème fondamental est que les deux derniers langages ne sont pas assez expressifs pour décrire ce que je viens de dire de manière déclarative au niveau du détail pour y arriver.

Voici un exemple de « détails descriptifs » (pour le système de paquets) https://github.com/TeamSPoon/wam\_common\_lisp/blob/master/prolog/wam\_cl/package.pl

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

Est-il facile de faire en sorte que Haskell optimise sa source avant de lexécuter? Je mattends également à ce que dans Haskell, il ait besoin dune sorte de représentation intermédiaire de Haskell quil puisse interpréter. Probablement, il ne serait pas trop difficile décrire un interpréteur Lisp en Haskell .. le compilateur est beaucoup plus de travail?

Les niveaux dendoctrinement de Haskell sont bien adaptés à des fins académiques, et par conséquent, Haskell a plus de doctorat. Trophées épouses que Prolog. Il y a beaucoup plus de complexité et de manuels sur la façon de plaire à leurs maris (le programmeur Haskell lit le livre HoTT après le livre HoTT) Mais je pense quils ne réalisent peut-être pas quils sont dans une relation abusive: ce qui est pervers, cest quils pensent (espèrent) leur mari, nommé Haskell, leur accordera les mêmes privilèges que les épouses Prolog (les emmener pendant les mêmes vacances) (Ils ne sont pas au courant de lexistence réelle dépouses prologues ou soumis à la propagande de leur mari (comme on le voit sur ce fil) ) …. Les privilèges nobtiennent que sils fonctionnent très bien. Je pense quun tel mariage ne conviendrait quaux nubiles … ce quils ne savent pas, cest quils ne seront jamais « assez bons » pour obtenir les mêmes vacances (capacités du programme), on leur dit que ces désirs sont faux et quils se calmeront en regardant une autre vidéo de Wadler.

Ne vous méprenez pas, Prolog a un endoctrinement. . « ne pas utiliser de coupes .. ne pas utiliser setarg / ou asserta / » Mais chez Haskell, si vous affinez votre méthodologie, vous découvrirez que votre intention est fausse. Dans Prolog, si vous affinez votre méthodologie, vous découvrez que votre intention na jamais été faux.

Autres aspects de la relation dysfonctionnelle:

Haskell et Prolog sont tous deux des systèmes déclaratifs pour décrire latténuation des états. Les deux langages que le programmeur semble devoir développer un langage autour des transitions de données. En Prolog, cela sexprime via des propositions (mais chez Haskell ces propositions doivent être en types)

Tous deux construisent fastidieusement un parcours dobstacles de rongeurs en utilisant des rouleaux de papier toilette … La bataille est intellectuellement faire bouger ce rongeur de manière ultra-intelligente. Dans Prolog, vous construisez les rouleaux de papier toilette, puis vous faites des générateurs de papier toilette appelés méta-prédicats au lieu du calcul des constructeurs.

Pour moi, je vois Haskell comme ayant un extra de mes propositions logiques de prologue doit devenir des types (une par cla utilisation). Cela semble assez fastidieux (les rouleaux de papier toilette ont des noms uniques) (essayer de typer certaines de mes clauses prolog serait difficile) Puisque la plupart de mes programmes prolog qui font des choses étonnantes contiennent des milliers de clauses. La seule raison de rendre cela difficile pour moi serait de faciliter les choses pour le vérificateur de type?Je ne suis pas sûr que ces tours supplémentaires dans la flopée du découragement maideraient. De plus, je nai pas à faire en sorte que chaque clause (proposition) tienne dans un système de types (dans un type)!

Dans Prolog, je conçois mon système de types de manière dynamique .. non terminable (termes illimités infinis que jutilise dans limplémentation de lenvironnement Lisp) Haskell voudrait que je perde cela. Pourtant, quest-ce quil offre en retour? Une certaine cohérence? Pourquoi un programmeur Prolog sinscrirait-il à la microgestion philosophique?

Tout ce que veut Haskell, cest que je perde mes capacités? Cela semble être un pire cas de mariage si jétais un programmeur nubile que je naurais pas mieux connu.

Haskell a un « culte » de lendoctrinement. Peut-être pour la plupart des programmeurs OO, car ils verraient toujours Haskell comme un mouvement ascendant vers de vrais génériques.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *