Content deleted Content added
m Task 18 (cosmetic): eval 2 templates: del empty params (2×); |
m Fixing bare references Wikipedia:Bare_URLs |
||
Line 27:
'''Mercury''' is a [[functional logic programming]] language made for real-world uses. The first version was developed at the [[University of Melbourne]], Computer Science department, by Fergus Henderson, Thomas Conway, and Zoltan Somogyi, under Somogyi's supervision, and released on April 8, 1995.
Mercury is a purely [[Declarative programming|declarative]] [[logic programming]] language. It is related to both [[Prolog]] and [[Haskell (programming language)|Haskell]].<ref name="motivation">
The official implementation, the Melbourne Mercury Compiler, is available for most [[Unix]] and [[Unix-like]] platforms, including [[Linux]], [[macOS]], and for [[Microsoft Windows|Windows]].
Line 37:
The language is designed using [[software engineering]] principles. Unlike the original implementations of Prolog, it has a separate [[compiler|compilation]] phase, rather than being directly interpreted. This allows a much wider range of errors to be detected before running a program. It features a strict [[Type system#Static type checking|static type]] and mode system<ref name=motivation/> and a module system.
By using information obtained at compile time (such as type and mode), programs written in Mercury typically perform significantly faster than equivalent programs written in Prolog.<ref name="benchmarks">
|last= Somogyi
|first= Zoltan
Line 57:
|first=Nancy |last=Mazur |date=May 2004 |publisher=Katholieke Universiteit Leuven}}</ref> but it can make certain programming constructs (such as a switch over a number of options, with a default{{Dubious|Examples_of_difficulties_introduced_by_declarativeness.3F|date=February 2009}}) harder to express. (While Mercury does allow impure functionality, this serves mainly as a way to call foreign language code. All impure code must be marked explicitly.) Operations which would typically be impure (such as [[input/output]]) are expressed using pure constructs in Mercury using [[Linear type system|linear types]], by threading a dummy ''world'' value through all relevant code.
Notable programs written in Mercury include the Mercury compiler and the [[Prince XML]] formatter. Software company Mission Critical IT has also been using Mercury since 2000 to develop enterprise applications and its Ontology-Driven software development platform, ODASE.<ref>
==Back-ends==
|