Mercury

Software screenshot:
Mercury
Podrobnosti Software:
Verze: 13.05.1
Datum uploadu: 15 Apr 15
Licence: Volný
Popularita: 11

Rating: 2.0/5 (Total Votes: 1)

Logic programovací jazyky byly po více než dvacet let. Navzdory očekávané výhody velmi vysoké úrovni programovací jazyk založený na dobře vyvinutými teorie logiky než konvenčních programovacích jazyků (jako je C, C ++, Pascal a Ada), které neměly významný dopad na počítačovém průmyslu.
Merkur je nový logické / funkční programovací jazyk, který kombinuje jasnost a expresivitu deklarativní programování s pokročilými statické analýzy a detekce chyb funkcí.
Merkur je vysoce optimalizovaný výkon algoritmus přináší efektivitu daleko více než stávajících logické programování systémů, a v blízkosti běžných programovacích systémů.
Mercury řeší problémy rozvoje rozsáhlých programů, který umožňuje modularity, samostatné kompilace, a četné kompromisy optimalizace / času

Co je nového v této verzi:.

  • Tento Oprava chyby opravuje úniku vybudovat problémy na Solaris a NetBSD a přidává podporu pro volbu C # kompilátoru v době konfigurace.
  • různé další drobné chyby byly opraveny.
  • Tam jsou také některé menší přírůstky do standardní knihovny.

Co je nového ve verzi 13.05:

  • Generace 64-bitových spustitelné soubory v systému Windows je nyní podporována.

  • Byly vylepšeny
  • kompilace časy velkých programů.
  • Bylo přidáno několik nových optimalizace typ reprezentace.
  • debugger má nyní lepší podporu pro práci s klik vzájemně rekurzivní volání v zásobníku.
  • vázat se na knihovny GLFW byl přidán k distribuci Extra.
  • Sestavy generované s C # backend lze nyní podepsal se silným názvem.

Co je nového ve verzi 11.01:

  • Přidali jsme dva nové druhy oborů na jazyku.
  • Rozsah představil jeden z nových klíčových slov require_det, require_semidet, require_multi, require_nondet, require_cc_multi, require_cc_nondet, require_erroneous a require_failure, jak název napovídá, vyžaduje cíl uvnitř rozsahu, aby daný determinismus.
  • Rozsah zavedla klíčovým slovem require_complete_switch vyžaduje cíl uvnitř rozsahu, pokud je přepínač na proměnné pojmenované podle rozsahu, být úplný přechod, tj mít zbraně pro všechny funkčních symbolů typu zapnuté proměnné.
  • Přidali jsme semidet režimy hash_table.fold / 4 a version_hash_table.fold / 4.
  • Přidali jsme nové predikáty a funkce na assoc_list modulu. Tyto predikáty map_keys_only / 3 map_values_only / 3 a map_values ​​/ 3 doplňují funkce se stejným názvem. Tyto predikáty filtr / 3, negated_filter / 3, filtr / 4, sloučení / 3, které mají i verze funkce, do práce velmi podobné predikáty se stejným názvem v modulu seznamu, ale že příslušné operace na klíče namísto celých Prvky seznamu.
  • Přestěhovali jsme se líný vyhodnocení modul z distribuce Doplňky a do nového standardní knihovny modulu s názvem `líný". To bylo také dosaženo backend-agnostik.
  • jsme udělali změny v seznamu modulu standardní knihovny:
  • Přidali jsme nové predikát list.member_index0 / 3. Je to jako list.member / 2, s výjimkou, že se také přebírá parametr reprezentující nuly index prvku v seznamu je.
  • Přidali jsme nový predikát list.map3_foldl / 7, která mapuje přes seznam produkující tři seznamy a jeden složený hodnotu.
  • Přidali jsme semidet režimy s jedinečným akumulátory pro list.foldl3 / 8, list.foldl4 / 10, list.foldl5 / 12, a list.foldl6 / 14.
  • Přidali jsme predikáty rozdělit / 4 a divide_by_set / 4 na tree_bitset modulu standardní knihovny.
  • Přidali jsme predikáty set_ctree234.member / 2 a set_ctree234.non_empty / 1. Máme přidat funkci set_ctree234.from_list / 1.
  • Přidali jsme predikát set_bbbtree.count / 2 a funkce set_bbbtree.count / 1. Ty nahrazují predikát set_bbbtree.size / 2, který je dnes již nepoužívá.
  • Přidali jsme predikát set_ordlist.non_empty / 1.
  • Přidali jsme predikát set_tree234.non_empty / 1 a funkce set_tree234.from_list / 1.
  • Přidali jsme predikáty set_unordlist.non_empty / 1 a set_unordlist.count / 2, a funkce set_unordlist.count / 1.
  • Všechny moduly ve standardní knihovny, které používají set ADT, (set, set_ordlist, set_unordlist, set_bbbtree, set_tree234, a set_ctree234), nyní podporují skládací přes sad s až šesti akumulátory. Byly také přidány režimy, které poskytují unikátní a hlavně, unikátní akumulátory pro set krát.
  • jsme provedli následující změny pole modulu standardní knihovny:
  • Přidali jsme funkce unsafe_elem / 2 a připojit / 2.
  • Přidali jsme predikáty svset / 4, unsafe_svset / 4, foldl2 / 4, foldl2 / 6, foldr / 4, foldr2 / 6, map_foldl / 5, map_corresponding_foldl / 6, a člen / 2.
  • Přidali jsme predikáty version_array.foldl2 / 6, version_array.foldr / 4, a version_array.foldr2 / 6 na standardní knihovny.
  • Přidali jsme semidet režimy s jedinečným a hlavně, jedinečné akumulátory pro tyto predikáty:
  • bimap.foldl2 / 6
  • bimap.foldl3 / 8
  • cord.foldl_pred / 4
  • cord.map_foldl / 5
  • list.map_corresponding_foldl2 / 8
  • list.map_corresponding_foldl3 / 10
  • list.map_corresponding3_foldl / 7
  • map.foldl3 / 8
  • Přidali jsme predikát unsorted_aggregate2 / 6 na řešení modulu standardní knihovny.
  • Přidali jsme několik predikáty a funkce na požadovat modulu standardní knihovny. Tyto predikáty líto / 2 a omlouvám zpráva / 3 absence prvku, zatímco predikáty nečekané / 2 a nečekané / 3 Zpráva vnitřní chybě v programu; Všechny mají verze funkce taky. Predikát očekávat / 3 hovory neočekávané, pokud podmínka není splněna. V současné době máme Očekáváme / 4 stejně jako čekat / 3. Pro očekávat / 4 stejně jako čekat / 3, první a poslední argumenty jsou očekávaný stav a chybová zpráva, respektive, ale očekáváme / 4, existují dva argumenty ve středu zadejte umístění chyby (obvykle jméno modulu a predikátu v tomto pořadí). Také jsme přidali expect_not / 3 a expect_not / 4, které jsou stejně jako očekávat / 3 a očekávat / 4, respektive, s výjimkou, že očekávají, že podmínka bude * false *, není to pravda.

Co je nového ve verzi 10.04.2:

  • Tato verze je bug-fix release. Řada problémů, které způsobily, že kompilátor přerušit byly opraveny, byly některé rozbité operace RTTI ve třídě java byla opravena, a my jsme přidali řešení pro problém s GCC verze 4.4.

Omezení :

  • Aktuální implementace není dosud plně implementovat jazyk Mercury. Hlavní omezení současné implementaci jsou následující:
  • Nechceme, aby definitivní aliasingu v systému režimu. Bez toho, částečně instance režimy jsou nepoužitelné, a proto jsou vnořené unikátní režimy.
  • kompilátor dosud nepoužívají opětovné struktury nebo v době kompilace úklid využít jedinečných druhů.
  • Type a režim závěr jsou trochu nedokonalé.

  • Kromě toho, rozhodnutí designu v tomto implemenation byly uloženy tyto limity:
  • predikáty a funkce mohou mít nanejvýš asi 1000 argumentů.
  • vyššího řádu termíny mohou mít nanejvýš asi 500 argumenty.

Podobný software

Pyexpander
Pyexpander

20 Feb 15

Octave
Octave

2 Jun 15

execline
execline

18 Jul 15

Komentáře k Mercury

Komentáře nebyl nalezen
Přidat komentář
Zapnout obrázky!