Mercury

Screenshot der Software:
Mercury
Softwarebeschreibung:
Version: 13.05.1
Upload-Datum: 15 Apr 15
Entwickler: Mercury Developers
Lizenz: Frei
Popularität: 59

Rating: 2.0/5 (Total Votes: 2)

Logic Programmiersprachen gibt es schon seit mehr als zwanzig Jahren. Trotz der erwarteten Vorteile einer sehr hohen Programmiersprache Grundlage gut entwickelt Theorien Logiküber herkömmlichen Programmiersprachen (wie C, C ++, Pascal und Ada) sie nicht hatten bedeutende Auswirkung auf die Computerindustrie.
Mercury ist eine neue Logik / funktionale Programmiersprache, die die Klarheit und Ausdruckskraft deklarative Programmierung mit fortgeschrittenen statischen Analyse und Fehlererkennungsfunktionen kombiniert.
Quecksilber ist hoch optimierte Ausführung Algorithmus liefert Effizienz weit über bestehende Logik Programmiersysteme, und in der Nähe herkömmlichen Programmiersystemen.
Mercury geht die Probleme der großen Programmentwicklung und ermöglicht Modularität getrennte Sammlung und zahlreiche Optimierungs / Zeit Kompromisse

Was ist neu in dieser Pressemitteilung:.

  • Diese Bugfix-Release behebt Probleme bauen auf Solaris und NetBSD und fügt Unterstützung für die Auswahl der C # -Compiler zum Zeitpunkt der Konfiguration.
  • Verschiedene andere kleinere Fehler wurden behoben.
  • Es gibt auch einige kleinere Ergänzungen der Standardbibliothek.

Was ist neu in Version 13.05:

  • Generation von 64-Bit-Programme unter Windows wird jetzt unterstützt.
  • Compilation-mal für sehr große Programme wurden verbessert.
  • Einige neue Typ-Darstellung Optimierungen wurden hinzugefügt.
  • Der Debugger hat jetzt eine bessere Unterstützung für den Umgang mit Cliquen gegenseitig rekursive Aufrufe auf den Stapel.
  • Eine Bindung an die GLFW Bibliothek wurde auf die Extras Vertrieb aufgenommen.
  • mit dem C # Backend generiert Baugruppen können nun mit einem starken Namen signiert werden.

Was ist neu in Version 11.01:

  • Wir haben zwei neue Arten von Bereichen in die Sprache aufgenommen.
  • Ein von einem der neuen Keywords require_det, require_semidet, require_multi, require_nondet, require_cc_multi, require_cc_nondet, require_erroneous und require_failure führte Tragweite wie der Name andeutet, erfordert das Ziel, innerhalb des Bereichs, den Determinismus gegeben haben.
  • Ein durch das Schlüsselwort require_complete_switch eingeführt Umfang erfordert das Ziel, innerhalb des Bereichs, wenn es sich um einen Schalter an der Variable durch den Bereich mit dem Namen, um ein komplettes Gerät sein, das heißt zu den Waffen für alle Funktionssymbole in der Art der das haben schalteten variabel.
  • Wir haben semidet Modi für hash_table.fold / 4 und version_hash_table.fold / 4.
  • hinzugefügt
  • Wir haben neue Prädikate und Funktionen an die assoc_list Modul hinzugefügt. Die Prädikate map_keys_only / 3 map_values_only / 3 und map_values ​​/ 3 ergänzt die Funktionen mit dem gleichen Namen. Die Prädikate filtern / 3, negated_filter / 3, Filter / 4, zusammenführen / 3, die auch Funktion Versionen tun Aufträge sehr ähnlich wie die Prädikate mit dem gleichen Namen in der Liste Modul, aber nicht die entsprechenden Operationen auf Tasten statt gesamten Listenelemente.
  • Wir haben die verzögerte Auswertung Modul aus dem Extras Verteilung und zu einem neuen Standard-Bibliothek-Modul namens 'faul' verschoben. Es wurde auch Backend-Agnostiker werden.

  • Wir haben Änderungen an der Liste Modul der Standardbibliothek gemacht
  • Wir haben ein neues Prädikat list.member_index0 / 3. Es ist wie list.member / 2 mit der Ausnahme, dass es auch ein Parameter, der den nullbasierten Index des Elements in der Liste.
  • Wir haben ein neues Prädikat list.map3_foldl / 7, die über eine Liste Herstellung drei Listen und einer gefalteten Wert abbildet.
  • Wir haben semidet Modi mit einzigartigen Akkumulatoren für list.foldl3 / 8, list.foldl4 / 10, list.foldl5 / 12 und list.foldl6 / 14.
  • Wir haben hinzugefügt die Prädikate teilen / 4 und divide_by_set / 4 an die tree_bitset Modul der Standardbibliothek.
  • Wir haben hinzugefügt die Prädikate set_ctree234.member / 2 und set_ctree234.non_empty / 1. Wir haben fügen Sie die Funktion set_ctree234.from_list / 1.
  • Wir haben hinzugefügt die das Prädikat set_bbbtree.count / 2 und die Funktion set_bbbtree.count / 1. Sie ersetzen das Prädikat set_bbbtree.size / 2, die nicht mehr weiterentwickelt wird.
  • Wir haben das Prädikat set_ordlist.non_empty / 1.
  • hinzugefügt
  • Wir haben das Prädikat set_tree234.non_empty / 1 und die Funktion set_tree234.from_list / 1.
  • hinzugefügt
  • Wir haben hinzugefügt die Prädikate set_unordlist.non_empty / 1 und set_unordlist.count / 2, und die Funktion set_unordlist.count / 1.
  • Alle Module der Standardbibliothek, die die Gruppe ADT, (Satz, set_ordlist, set_unordlist, set_bbbtree, set_tree234 und set_ctree234) zu implementieren, unterstützen jetzt Umklappen Sätze mit bis zu sechs Akkumulatoren. Betriebsarten, die einzigartig und vor allem eindeutige Akkumulatoren für Set-fach bieten wurden ebenfalls hinzugefügt.

  • Wir haben die folgenden Änderungen an der Array-Modul der Standardbibliothek gemacht
  • Wir haben hinzugefügt die Funktionen unsafe_elem / 2 und fügen Sie / 2.
  • Wir haben hinzugefügt die Prädikate svset / 4, unsafe_svset / 4, foldl2 / 4, foldl2 / 6, foldr / 4, foldr2 / 6, map_foldl / 5, map_corresponding_foldl / 6 und Mitglied / 2.
  • Wir haben die Prädikate version_array.foldl2 / 6 auf der Standard-Bibliothek aufgenommen version_array.foldr / 4 und version_array.foldr2 / 6.
  • Wir haben semidet Modi mit einzigartigen und vor allem eindeutige Akkumulatoren für folgende Prädikate hinzugefügt:
  • bimap.foldl2 / 6
  • bimap.foldl3 / 8
  • cord.foldl_pred / 4
  • cord.map_foldl / 5
  • list.map_corresponding_foldl2 / 8
  • list.map_corresponding_foldl3 / 10
  • list.map_corresponding3_foldl / 7
  • map.foldl3 / 8
  • Wir haben das Prädikat unsorted_aggregate2 / 6 an den Lösungen Modul der Standard-Bibliothek hinzugefügt.
  • Wir haben einige Prädikate und Funktionen der require Modul der Standard-Bibliothek hinzugefügt. Die Prädikate leid / 2 und sorry / 3 Bericht das Fehlen einer Funktion, während die Prädikate unerwarteten / 2 und unerwarteten / 3 Bericht ein interner Fehler im Programm; alle Funktionsvarianten zu. Das Prädikat erwarten / 3 Anrufe unerwartet, wenn eine Bedingung nicht erfüllt ist. Wir haben jetzt erwarten / 4, sowie zu erwarten / 3. Zu erwarten / 4, sowie zu erwarten / 3, die ersten und letzten Argumente sind die erwarteten Zustand und die Fehlermeldung entsprechend, jedoch mit erwarte / 4 gibt es zwei Argumente in der Mitte, um die Position des Fehlers (in der Regel der Name angeben des Moduls und des Prädikats beziehungsweise). Wir haben auch expect_not hinzugefügt / 3 und expect_not / 4, die wie erwartet / 3 und erwarten sind / 4 mit der Ausnahme, sie erwarten, dass die Bedingung, * falsch *, nicht wahr.
  • sein

Was ist neu in der Version 10.04.2:

  • Diese Version ist ein Bugfix-Release. Eine Reihe von Problemen, die den Compiler zum Abbruch behoben wurden verursacht, einige gebrochene RTTI Operationen in der Java-Klasse wurden behoben, und wir haben eine Lösung für ein Problem mit GCC-Version 4.4 hinzugefügt.

Grenzen :

  • Die aktuelle Implementierung ist noch nicht vollständig den Mercury Sprache umzusetzen. Die wichtigsten Einschränkungen der aktuellen Implementierung sind die folgenden:
  • Wir haben keine eindeutige Aliasing in der Mode-System zu ermöglichen. Ohne diese sind teilweise instanziiert Modi unbrauchbar, und so verschachtelt sind einzigartige Modi.
  • Der Compiler noch nicht verwenden Struktur Wiederverwendung oder Compiler-Garbage-Collection, um einzigartige Modi nutzen.
  • Typ und Modus Inferenz sind ein wenig unvollkommen.

  • Darüber hinaus Design-Entscheidungen in dieser Implementierung zu verhängt folgende Grenzwerte:
  • Prädikate und Funktionen können höchstens etwa 1000 Argumente haben.
  • Terme höherer Ordnung kann höchstens etwa 500 Argumente haben.

Ähnliche Software

Toka
Toka

3 Jun 15

bpython
bpython

14 Apr 15

Kommentare zu Mercury

Kommentare nicht gefunden
Kommentar hinzufügen
Schalten Sie auf die Bilder!