The Mercury Project
Introduction

[Mercury Logo]
Home

News

Information

Documentation

Mailing Lists

Back-ends

Download

Related

Contact

Search

Bug Database

What is Mercury?

Logic programming languages have been around for more than twenty years. Despite the expected advantages of a very high level programming language based upon well developed theories of logic over conventional programming languages (such as C, C++, Pascal and Ada) they have not had significant impact on the computer industry.

Mercury is a new logic/functional programming language, which combines the clarity and expressiveness of declarative programming with advanced static analysis and error detection features. Its highly optimized execution algorithm delivers efficiency far in excess of existing logic programming systems, and close to conventional programming systems. Mercury addresses the problems of large-scale program development, allowing modularity, separate compilation, and numerous optimization/time trade-offs.

Latest News

[09 February 2009]RSS Feed
You can now receive Mercury news items via an RSS feed by subscribing to the following URL: http://www.mercury.csse.unimelb.edu.au/rss.xml
[05 February 2009]New standard library modules
We have added two new modules to the standard library: parsing_utils and calendar. parsing_utils is a set of utilities to help with writing recursive descent parsers. calendar contains utilities for working with dates in the Gregorian calendar. Both modules are available in the latest release of the day.
[03 November 2008]New paper
We have a new paper available from our papers page that describes some recent work on automatically introducing parallelism in Mercury programs based on profiling data.
[13 October 2008]Google protocol buffers for Mercury
Google protocol buffers allows a extensible binary protocol to be defined in a programming language independent .proto file. The protoc compiler then generates APIs for the protocol in C++, Java or Python. protoc has recently been extended with basic support for Mercury. The extension is available from the protobuf-mercury project site.
[29 April 2008]Currying of multi-moded predicates
We now support currying of multi-moded predicates where the mode to use can be determined from the curried arguments. For example one can now use expressions such as list.foldl(list.foldl(int.plus), [[1, 2], [3, 4]], 0), that previously had to be written using explicit lambda expressions. This feature was added by Mission Critical Australia.

This list contains only the latest news items.
For older news items, see the (complete news archive).

News is also available as an RSS feed at http://www.mercury.csse.unimelb.edu.au/rss.xml.