2011-01-16 10 views

Antwort

9

Mercury ist schön und modern und ähnelt Prolog.

Mercury ist eine neue logische/funktionale Programmiersprache, die die Klarheit und Aussagekraft der deklarativen Programmierung mit erweiterten statischen Analyse- und Fehlererkennungsfunktionen kombiniert. Sein hoch optimierter Ausführungsalgorithmus liefert eine Effizienz, die weit über die vorhandenen Logikprogrammiersysteme hinausgeht und nahe an herkömmlichen Programmiersystemen liegt. Mercury adressiert die Probleme der groß angelegten Programmentwicklung und ermöglicht Modularität, separate Kompilierung und zahlreiche Optimierungs-/Zeitkompromisse.

+1

Ich würde Mercury auch als eine großartige logische Programmiersprache vorstellen. Beachten Sie auch, dass die Mercury-Syntax zwar wie die von Prolog aussieht, sich aber aufgrund des starken Typsystems eher an die Programmierung in Haskell anlehnt. Wenn Sie außerdem einige Prolog-Funktionen wie Logic-Variablen benötigen, unterstützt Mercury diese nicht. In der Praxis wird das Vermeiden Ihrer Programme Ihr Programm unterhaltsamer machen :-). Haftungsausschluss: Ich arbeite am Mercury-Projekt, Beobachtungen zur Wartbarkeit von Codes sind subjektiv und anekdotisch. Andere Kommentare sind objektiv. –

+1

Der Mangel an logischen Variablen scheint wie ein großer Nachteil. Ist das nicht ein ziemlich zentraler Aspekt von Prolog/LP? – ib84

5

Es gibt eine ziemlich vielversprechende funktionale Logik Programmiersprache namens Curry. Trotz seiner Neuheit sollte es leicht sein, sich an Curry zu gewöhnen, wenn Sie Haskell und Prolog bereits kennen, da es direkt von diesen beiden Sprachen beeinflusst wurde.

Curry vereint in einer nahtlosen Weise Funktionen von funktionalen Programmierung (verschachtelte Ausdrücke höherer Ordnung Funktionen, lazy evaluation), Logik Programmierung (logische Variablen, Teildatenstrukturen, integrierte in Suche) und gleichzeitige Programmierung (gleichzeitige Auswertung von Ausdrücken mit Synchronisation auf logischen Variablen).

1

Oz/Mozart ist eine Multi-Paradigma-Programmiersprache, die Logic-Programmierung als eine ihrer Funktionen unterstützt. Ich habe es nie benutzt, also kann ich nicht sagen, ob es gut ist. Es scheint jedoch interessant zu sein.

Haftungsausschluss: Ich arbeite am Mercury-Projekt und würde Mercury in einer Wahl zwischen Oz/Mozart und Mercury wählen.

+0

Bitte korrigieren Sie den Link zu Oz/Mozart. – nbro

2

Vergessen Sie nicht, dass Prolog der Gastgeber für viele neuere Erweiterungen ist, die als eigenständige Sprachen gelten können. Insbesondere in Abhängigkeitssprachen wie CLP (R), CLP (Q), CLP (FD). Allgemeinere Erweiterungen wie CHR, aber auch viele typisierte Ansätze.

Diese Sprachen werden normalerweise als Bibliothek in einem vorhandenen Prolog-System geliefert. Was Sie in dieser Umgebung erhalten, ist oft eine wesentlich ausgereiftere und stabilere Implementierung, als ein System von Grund auf bieten kann. Schließlich sind viele Prolog-Systeme fast 30 Jahre alt.

3

Logtalk ist eine objektorientierte Logik-Programmiersprache, die die Prolog-Sprache mit einem Feature-Satz erweitert und nutzt, der für die Programmierung in den großen, auf Code-Kapselung und -Wiederverwendungsmechanismen fokussierten Funktionen geeignet ist. Es ist sehr portabel und unterstützt als Backend-Compiler aktiv Prolog-Implementierungen. Weitere bemerkenswerte Funktionen sind die Unterstützung von Prototypen und Klassen, Protokollen (Schnittstellen), Koinduktion, komponentenbasierte Programmierung, ereignisgesteuerte Programmierung und High-level Multi-Threading-Programmierung. Die aktuelle Distribution enthält eine große Anzahl von Programmierbeispielen, Programmiertools, Bibliotheken und Texteditoren und Syntax-Highlighter-Unterstützung für die Programmierung und Veröffentlichung von Quellcode.

Verwandte Themen