Mercury

Sagteware kiekie:
Mercury
Sagteware besonderhede:
Weergawe: 13.05.1
Upload datum: 15 Apr 15
Ontwikkelaar: Mercury Developers
Lisensie: Gratis
Populariteit: 11

Rating: 2.0/5 (Total Votes: 1)

Logika programmeertale gewees het om vir meer as twintig jaar. Ten spyte van die verwagte voordele van 'n baie hoë vlak programmeertaal gebaseer op goed ontwikkelde teorieë van logika oor konvensionele programmeertale (soos C, C ++, Pascal en Ada) hulle het nie 'n beduidende impak op die rekenaar bedryf.
Mercury is 'n nuwe logika / funksionele programmeertaal, wat kombineer die duidelikheid en uitdrukking van verklarende programmering met 'n gevorderde statiese ontleding en foutopsporing funksies.
Mercury is geoptimaliseerde uitvoering algoritme lewer doeltreffendheid ver bo bestaande logika programmering stelsels, en naby aan konvensionele programmering stelsels.
Mercury die probleme van grootskaalse program ontwikkeling, sodat modulariteit, aparte samestelling, en talle optimization / tyd trade-offs

Wat is nuut in hierdie release:.

  • Dit bugfix release fixes bou probleme op Solaris en NetBSD en voeg ondersteuning vir die kies van die C # samesteller configuration tyd.
  • Verskeie ander klein foute is vasgestel.
  • Daar is ook 'n paar klein toevoegings tot die standaard biblioteek.

Wat is nuut in die weergawe 13,05:

  • Generation van 64-bit executables op Windows is nou ondersteun.
  • Samestelling tye vir baie groot programme is verbeter.
  • Verskeie nuwe tipe verteenwoordiging optimalisaties bygevoeg.
  • Die debugger het nou 'n beter ondersteuning vir die hantering van druk van wedersyds rekursiewe oproepe op die stapel.
  • 'n binding aan die GLFW biblioteek is bygevoeg tot die ekstras verspreiding.
  • Assemblies gegenereer met die C # backend kan nou geteken word met 'n sterk naam.

Wat is nuut in die weergawe 11.01:

  • Ons het twee nuwe soorte teleskope na die taal.
  • 'n omvang wat deur een van die nuwe sleutelwoorde require_det, require_semidet, require_multi, require_nondet, require_cc_multi, require_cc_nondet, require_erroneous en require_failure, soos die naam impliseer, vereis dat die doel binne die bestek van die gegewe determinisme te hê.
  • 'n omvang wat deur die navraag require_complete_switch vereis dat die doel binne die omvang, as dit is 'n skakelaar op die veranderlike naam wat deur die omvang, 'n volledige skakelaar te wees, dit wil sê arms vir al die funksie simbole te hê in die tipe van die oorgeskakel-op veranderlike.
  • Ons het bygevoeg semidet modes vir hash_table.fold / 4 en version_hash_table.fold / 4.
  • Ons het 'n nuwe predicaten en funksies aan die assoc_list module. Die predicaten map_keys_only / 3 map_values_only / 3 en map_values ​​/ 3 aanvulling van die funksies van die dieselfde naam. Die predicaten filter / 3, negated_filter / 3, filter / 4, saam te smelt / 3, wat ook 'n funksie weergawes, nie werk baie soortgelyk aan die predicaten van die dieselfde naam in die lys module nie, maar doen die betrokke bedrywighede op sleutels in plaas van die hele lys elemente.
  • Ons het die lui evaluering module verskuif uit die ekstras verspreiding en in 'n nuwe standaard biblioteek module genoem `lui '. Dit is ook gemaak backend-agnostikus.

  • Ons het veranderinge aan die lys module van die standaard biblioteek gemaak
  • Ons het 'n nuwe gesegde list.member_index0 / 3. Dit is soos list.member / 2 behalwe dat dit ook 'n parameter om die nul-gebaseerde indeks van die element in die lys verteenwoordig.
  • Ons het 'n nuwe gesegde list.map3_foldl / 7 wat oor 'n lys vervaardiging van drie lyste en een gevou waarde kaarte.
  • Ons bygevoeg semidet modes met 'n unieke accu list.foldl3 / 8, list.foldl4 / 10, list.foldl5 / 12, en list.foldl6 / 14.
  • Ons het bygevoeg die predicaten verdeel / 4 en divide_by_set / 4 tot die tree_bitset module van die standaard biblioteek.
  • Ons het bygevoeg die predicaten set_ctree234.member / 2 en set_ctree234.non_empty / 1. Ons het by die funksie set_ctree234.from_list / 1.

  • Die die gesegde set_bbbtree.count / 2 en die funksie set_bbbtree.count / 1
  • Ons het bygevoeg. Hierdie vervang die gesegde set_bbbtree.size / 2 wat nou afgekeur.
  • Ons het bygevoeg die gesegde set_ordlist.non_empty / 1.
  • Ons het bygevoeg die gesegde set_tree234.non_empty / 1 en die funksie set_tree234.from_list / 1.
  • Ons het bygevoeg die predicaten set_unordlist.non_empty / 1 en set_unordlist.count / 2, en die funksie set_unordlist.count / 1.
  • Al die modules in die standaard biblioteek wat die stel ADT, (stel, set_ordlist, set_unordlist, set_bbbtree, set_tree234 en set_ctree234) implementeer, ondersteun nou vou oor stelle met tot ses opgaarbatterye. Modes wat verskaf unieke en meestal unieke accu stel vou het ook bygevoeg.

  • Ons het die volgende veranderinge aan die skikking module van die standaard biblioteek gemaak
  • Ons het bygevoeg die funksies unsafe_elem / 2 en voeg / 2.
  • Ons het bygevoeg die predicaten svset / 4, unsafe_svset / 4, foldl2 / 4, foldl2 / 6, foldr / 4, foldr2 / 6, map_foldl / 5, map_corresponding_foldl / 6, en lid / 2.
  • Ons het bygevoeg die predicaten version_array.foldl2 / 6, version_array.foldr / 4, en version_array.foldr2 / 6 tot die standaard biblioteek.
  • Ons het bygevoeg semidet modes met 'n unieke en meestal unieke opgaarbatterye vir die volgende gesegdes:
  • 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
  • Ons het bygevoeg die gesegde unsorted_aggregate2 / 6 tot die oplossings module van die standaard biblioteek.
  • Ons het bygevoeg 'n paar gesegdes en funksies aan die vereis module van die standaard biblioteek. Die predicaten jammer / 2 en jammer / 3-verslag die afwesigheid van 'n funksie, terwyl die predicaten onverwagte / 2 en onverwagte / 3-verslag 'n interne fout in die program; almal funksie weergawes ook. Die gesegde verwag / 3 oproepe onverwagte indien 'n voorwaarde is nie tevrede nie. Ons het nou verwag / 4 asook verwag / 3. Vir verwag / 4 asook verwag / 3, die eerste en die laaste argumente is die verwagte toestand en die fout boodskap onderskeidelik, maar met verwag / 4, is daar twee argumente in die middel van die ligging van die fout (gewoonlik die naam te spesifiseer van die module en van die predikaat onderskeidelik). Ons het ook expect_not / 3 en expect_not / 4, wat soos verwag / 3 en verwag / 4 onderskeidelik bygevoeg, as hulle verwag dat die toestand * valse *, nie waar nie.
  • te wees

Wat is nuut in die weergawe 10.04.2:

  • Hierdie vrystelling is 'n fout-fix release. 'N Aantal probleme wat veroorsaak het dat die vertaler te staak is vasgestel, het 'n paar gebreekte RTTI bedrywighede in die java graad vasgestel, en ons het bygevoeg 'n oplossing vir 'n probleem met GCC weergawe 4.4.

Beperkings :

  • Die huidige implementering nie nog heeltemal die Mercury taal implementeer. Die belangrikste beperkinge van die huidige implementering is die volgende:
  • Ons laat nie definitiewe aliasing in die modus stelsel nie. Sonder hierdie, gedeeltelik aangehaal modes is onbruikbaar, en so is geneste unieke modes.
  • Die samesteller nie nog gebruik struktuur hergebruik of stel-time vullisverwydering unieke modes te ontgin.
  • Tipe en modus afleiding is 'n bietjie onvolmaak.

  • Verder het die ontwerp besluite in hierdie Implementering opgelê die volgende limiete:
  • Predikaten en funksies kan hê op die meeste ongeveer 1000 argumente.
  • Hoër-orde terme kan by die meeste sowat 500 argumente.

Soortgelyke sagteware

Polyglot
Polyglot

2 Jun 15

GNU Cobol
GNU Cobol

17 Feb 15

TinyCOBOL
TinyCOBOL

11 May 15

gears-coffeescript
gears-coffeescript

20 Feb 15

Kommentaar te Mercury

Kommentaar nie gevind
Kommentaar te lewer
Draai op die foto!