Mercury (Programmiersprache)

Mercury (Programmiersprache)
Mercury
Maintainer Zoltán Somogyi
Entwickler Universität Melbourne
Aktuelle Version 11.01
(27. April 2011)
Betriebssystem plattformunabhängig
Kategorie Programmiersprache
Lizenz GPL
www.mercury.csse.unimelb.edu.au

Mercury ist eine stark an Prolog angelehnte Programmiersprache. Sie vereint Elemente aus der funktionalen und der logischen Programmierung. Die erste Version wurde von Fergus Henderson, Thomas Conway und Zoltan Somogyi entwickelt und am 8. April 1995 veröffentlicht. Die aktuelle stabile Version 11.01 erschien am 27. April 2011.

Mercury ist eine „reinere“, und damit stärker deklarative Sprache als Prolog, weil es im Gegensatz zu Prolog keine „nicht-logischen“ Eigenschaften hat, wie den Cut-Operator (ein Prolog-Konstrukt, das Backtracking verhindert) oder imperative Eingabe und Ausgabe. Dies macht die Programmierung sequentieller Algorithmen etwas unhandlich, erleichtert jedoch die Optimierung der Programme. Damit kann deutlich schnellerer Code erzeugt werden, als es mit Prolog möglich ist.

Mercury hat einige Eigenschaften für eine bessere Softwaretechnik, es wird kompiliert statt interpretiert, wie es sonst bei logischen Programmiersprachen üblich ist, und realisiert ein fortgeschrittenes, striktes Typ- und Mode-System. Die Autoren behaupten, diese Eigenschaften, zusammen mit der abstrakten Natur der logischen Programmierung, beschleunigten die Erstellung zuverlässiger Programme. Mercurys Modul-System ermöglicht die Unterteilung in abgeschlossene Einheiten, was in der Vergangenheit ein Problem logischer Programmierung darstellte. (Wobei einige Prolog-Implementierungen ebenfalls ein Modul-System einführten.) Ein- und Ausgabe wird durch Uniqueness types verwirklicht.

Mercury verfügt über mehrere Backends wie "low-level C" (das originale Mercury-Back-end), "high-level C", Microsofts IL für .NET, Suns JVM und Assembler unter Verwendung des gcc-Back-ends, wobei die letzten drei Back-ends derzeit noch Alpha- oder Beta-Status haben. Mercury wird an der Universität Melbourne unter der Leitung von Zoltan Somogyi entwickelt und ist für die meisten Unix-Plattformen, für Mac OS X und mit Hilfe von Cygwin und MinGW auch für Microsoft Windows verfügbar.

Hello World in Mercury:

 :- module hello.
 :- interface.
 :- import_module io.
 :- pred main(io.state, io.state).
 :- mode main(di, uo) is det.

 :- implementation.
 main(!IO) :-
        io.write_string("Hello, World!\n", !IO).

(nach Ralph Beckets Mercury tutorial).

Weblinks


Wikimedia Foundation.

Игры ⚽ Поможем сделать НИР

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Mercury — bezeichnet in der Technik: Mercury Programm, erstes bemanntes Raumfahrtprogramm der USA (1958–1963) Bristol Mercury, Flugzeugtriebwerk Baureihe der Firma Bristol Aircraft Company Celebrity Mercury, Kreuzfahrtschiff der Reederei Celebrity Cruises… …   Deutsch Wikipedia

  • Funktionale Programmiersprache — Dieser Artikel oder Abschnitt bedarf einer Überarbeitung. Näheres ist auf der Diskussionsseite angegeben. Hilf mit, ihn zu verbessern, und entferne anschließend diese Markierung. Funktionale Programmierung ist ein Programmierparadigma. Programme… …   Deutsch Wikipedia

  • Logische Programmiersprache — Logische Programmierung (Prädikative Programmierung) ist ein Programmierparadigma, das auf der mathematischen Logik beruht. Anders als bei der imperativen Programmierung besteht ein Logik Programm nicht aus einer Folge von Anweisungen, sondern… …   Deutsch Wikipedia

  • Regelbasierte Programmiersprache — Logische Programmierung (Prädikative Programmierung) ist ein Programmierparadigma, das auf der mathematischen Logik beruht. Anders als bei der imperativen Programmierung besteht ein Logik Programm nicht aus einer Folge von Anweisungen, sondern… …   Deutsch Wikipedia

  • Prolog (Programmiersprache) — Prolog Paradigmen: logisch, deklarativ, oft auch constraintbasiert Erscheinungsjahr: 1972 Designer: Alain Colmerauer Entwickler: Philippe Roussell …   Deutsch Wikipedia

  • Liste der Programmiersprachen — A A (Programmiersprache) A# A+ A 0 A 1 A 2 A 3 A9 AACC AADL AAIMS aal AAPL Aardappel AARDVARK Abacus ABACUS 10 ABACUS/X ABAP ActionScript Ada ADbasic AgentSpeak(L) Agilent VEE AHDL Aleph ALGOL (ALGOL 60, ALGOL W, ALGOL 68) Amber …   Deutsch Wikipedia

  • Funktionionale Programmierung — Dieser Artikel oder Abschnitt bedarf einer Überarbeitung. Näheres ist auf der Diskussionsseite angegeben. Hilf mit, ihn zu verbessern, und entferne anschließend diese Markierung. Funktionale Programmierung ist ein Programmierparadigma. Programme… …   Deutsch Wikipedia

  • PROLOG — Paradigmen: logisch, deklarativ, oft auch constraintbasiert Erscheinungsjahr: 1972 Designer: Alain Colmerauer Entwickler: Philippe Roussell …   Deutsch Wikipedia

  • Logikprogrammierung — Logische Programmierung (Prädikative Programmierung) ist ein Programmierparadigma, das auf der mathematischen Logik beruht. Anders als bei der imperativen Programmierung besteht ein Logik Programm nicht aus einer Folge von Anweisungen, sondern… …   Deutsch Wikipedia

  • Regelbasierte Programmierung — Logische Programmierung (Prädikative Programmierung) ist ein Programmierparadigma, das auf der mathematischen Logik beruht. Anders als bei der imperativen Programmierung besteht ein Logik Programm nicht aus einer Folge von Anweisungen, sondern… …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”