Quecksilber (Programmiersprache)

Quecksilber ist eine funktionelle zu wirklichen Anwendungen eingestellte Logikprogrammiersprache. Es wird an der Universität der Melbourner Informatik-Abteilung unter der Aufsicht von Zoltan Somogyi entwickelt. Die erste Version wurde von Fergus Henderson, Thomas Conway und Zoltan Somogyi entwickelt und wurde am 8. April 1995 veröffentlicht.

Quecksilber ist eine rein Aussagelogiksprache. Es ist sowohl mit der Einleitung als auch mit Haskell verbunden. Es zeigt ein starkes, statisches, polymorphes Typ-System, sowie eine starke Weise und Determinismus-System.

Die offizielle Durchführung, der Melbourner Quecksilberbearbeiter, ist für die meisten UNIX-Plattformen, einschließlich Mac OS X, sowie für Windows von Microsoft verfügbar (in Windows, es verlangt einen von Cygwin oder MinGW toolsets, und kann entweder mit GCC oder mit Microsoft Visual C ++ kompiliert werden).

Übersicht

Quecksilber basiert auf der Logikprogrammiersprache-Einleitung. Es hat dieselbe Syntax und dieselben grundlegenden Konzepte wie der SLD Entschlossenheitsalgorithmus. Es kann als eine reine Teilmenge der Einleitung mit starken Typen und Weisen scheinbar angesehen werden. Als solcher ist es häufig im Vergleich zu seinem Vorgänger, sowohl in Bezug auf Eigenschaften als auch in Bezug auf Laufzeitleistungsfähigkeit.

Die Sprache wird mit Softwaretechnikgrundsätzen im Sinn entworfen. Verschieden von den ursprünglichen Durchführungen der Einleitung hat es eine getrennte Kompilationsphase, anstatt, direkt interpretiert zu werden, der einer viel breiteren Reihe von Fehlern erlaubt, vor dem Laufen eines Programms gefangen zu werden. Es zeigt einen hoch entwickelten, strengen Typ und Weise-System, das seine Autoren fordern, macht es viel leichter, robuste Software zu schreiben. Das Modul-System von Quecksilber ermöglicht Abteilung in geschlossene Einheiten, ein Problem für vorige Logikprogrammiersprachen.

Wegen des Gebrauches der Information erhalten während der Übersetzung (wie Typ und Weise-Information) leisten Programme, die in Quecksilber normalerweise geschrieben sind, bedeutsam schneller als gleichwertige in der Einleitung geschriebene Programme. Die Autoren behaupten, dass Quecksilber die schnellste Logiksprache in der Welt durch einen breiten Rand ist.

Quecksilber ist eine rein Aussagesprache verschieden von der Einleitung, da es "an extralogischen" Einleitungsbehauptungen solcher, wie "geschnitten", und befehlende Eingabe/Ausgabe Mangel hat. Das ermöglicht fortgeschrittene Programm-Optimierung, aber kann bestimmte Programmierkonstruktionen (wie ein Schalter über mehrere Optionen, mit einem Verzug) härter machen auszudrücken. (Bemerken Sie, dass, während Quecksilber wirklich unreine Funktionalität erlaubt, es im grössten Teil der Software nicht notwendig ist, und in erster Linie als eine Weise dient, fremdsprachigen Code zu nennen. Außerdem muss der ganze unreine Code ausführlich gekennzeichnet werden.)

Operationen, die normalerweise unrein sein würden (wie Eingang/Produktion) werden mit reinen Konstruktionen in Quecksilber mit geradlinigen Typen, durch das Einfädeln eines Schein"Welt"-Werts durch den ganzen relevanten Code ausgedrückt.

Bemerkenswerte in Quecksilber geschriebene Programme schließen den Quecksilberbearbeiter selbst und den Prinzen XML formatter ein. Kritische Mission hat ES http://www.missioncriticalit.com/, eine Softwaregesellschaft, auch Quecksilber seit 2000 verwendet, um Unternehmensanwendungen zu entwickeln.

Zurückenden

Quecksilber hat mehrere Zurückenden, was bedeutet, dass es möglich ist, Quecksilbercode in die folgenden Sprachen und Codestile zu kompilieren:

Produktionsniveau:

  • Auf niedriger Stufe C für GCC (das ursprüngliche Quecksilberzurückende)
  • C auf höchster Ebene

Beta-Qualität:

Alpha-Qualität (kann nicht arbeiten so, oder sogar völlig gebrochen werden):

  • IL für den.NET des Microsofts
  • Zusammenbau über das GCC Zurückende

Letzte Zurückenden:

  • Aditi, ein deduktives Datenbanksystem hat sich auch an der Universität Melbournes entwickelt. Quecksilber 0.12.2 ist die letzte Version von Quecksilber, das Aditi unterstützen wird.

Das macht Quecksilber eine nützliche höhere Programmiersprache, um vielfache Plattformen ins Visier zu nehmen, oder um mit dem Code schriftliche verwendende vielfache Zurückenden zu verbinden.

Quecksilber hat auch eine starke fremdsprachige Schnittstelle, Code auf anderen Sprachen (abhängig von gewähltem Zurückende) erlaubend, mit dem Quecksilbercode verbunden zu werden. Die folgenden Fremdsprachen sind möglich:

Andere Sprachen können dann zu durch das Benennen von ihnen aus diesen Sprachen verbunden werden. Jedoch bedeutet das, dass fremdsprachiger Code eventuell mehrere Male für den verschiedenen backends geschrieben werden muss, sonst wird die Beweglichkeit zwischen backends verloren.

Das meistens verwendete Zurückende ist das ursprüngliche auf niedriger Stufe C Zurückende. Als beide werden C backends als Produktionsqualität betrachtet, das bedeutet, dass Sie sehr viel Beweglichkeit mit dem C-Code in der Fremdsprache nicht verlieren werden.

Beispiele

Hallo Welt:

:-Modul hallo.

:-Schnittstelle.

:-import_module io.

:-pred wichtig (io:: di, io:: Uo) ist det.

:-Durchführung.

wichtig (! IO): -

io.write_string ("Hallo, Welt! \n"! IO).

</pre>

Das Rechnen der 10. Fibonacci-Zahl (auf die offensichtlichste Weise):

:-Modul-Flunkerei.

:-Schnittstelle. :-import_module io. :-pred wichtig (io:: di, io:: Uo) ist det. :-Durchführung.

:-interne Import_module-Nummer.

:-Func-Flunkerei (interne Nummer) = interne Nummer.

Flunkerei (N) = (wenn N =

Ausgabe-Liste

Das Quecksilberprojekt hat einen neuen 6 Monatsausgabe-Zyklus. Ausgaben werden gemäß dem Jahr und Monat der Ausgabe genannt.

Die aktuelle Ausgabe ist 11.07 (Dezember 2011).

Vorher wurden Ausgaben 0.12, 0.13, usw. numeriert, und die Periode zwischen stabilen Ausgaben war (3 Jahre) sehr groß.

Das Quecksilberprojekt macht auch eine Schnellschuss-Ausgabe täglich. Die Schnellschuss-Ausgabe ist der letzte Entwicklungsschnellschuss des Systems und hat alle letzten Eigenschaften und üble zur letzten stabilen Ausgabe hinzugefügte Programmfehler-Lagen.

Siehe auch

  • Programmiersprache von Alice
  • Logtalk
  • Oz/Mozart Programmiersprache und Bearbeiter
  • Seheinleitungsprogrammiersprache

Links


Metallurgie / Michael Faraday
Impressum & Datenschutz