A Mercury egy új, általános célú programozási nyelv, melyet egy kutatókból álló kis csoport tervezi és implementálja a Melbourne-i Egyetemen, Ausztráliában. A Mercury a tisztán deklaratív programozás paradigmáin alapszik, és arra tervezték, hogy hasznos eszköz legyen nagy és robosztus, "valódi" applikációk fejlesztésése során. A meglévő logikai programozási nyelveket továbbfejlesztve megnövekedett produktivitást, megbízhatóságot és hatékonyságot nyújt, valamint kikerüli a nem-logikai programkonstrukciók szükségességét. A Mercury a tradícionális logika programozási szintaxisát nyújtja, de emellett kényelmes szintaxist biztosít a felhasználó által definiált függvények megírásához, zökkenőmentesen integrálva a logikai és a funkcionális programozást egyetlen paradigmává.
A Mercury-ban programozóknak meg kell adniuk a predikátumok és függvények típusára, módjára és determinizmusára vonatkozó deklarációkat. A fordító megvizsgálja ezeket a deklarációkat, és elutasítja a programot, ha nem tudja bizonyítani, hogy minden predikátum és függvény kielégíti a deklarációit. Ez növeli a megbízhatóságot, mivel sok típusú hiba egyszerűen nem fordulhat elő egy sikeresen lefordított Mercury programban. Ez növeli a produktivitást is, mivel a fordítóprogram sok olyan hibát megállapít, amit egyébként kézi debugolással kellene megtalálni. Továbbá a fordítóprogram kihasználja a deklarációk garantált helyességét, hogy ezzel jelentősen javítsa a generált kód hatékonyságát.
Hogy megkönnyítse a "nagybani" programozást, hogy lehetővé tegye a különálló fordítást és hogy támogassa az enkapszulációt, a Mercury egyszerű modulrendszerrel rendelkezik. A Mercury Standard Library pedig gyakori programozási feladatokhoz használható, előre definiált modulokat tartalmaz -- bővebben lásd a Mercury Library Referencia Kézikönyvét.