Mercury

Screenshot Software:
Mercury
Mga detalye ng Software:
Bersyon: 13.05.1
I-upload ang petsa: 15 Apr 15
Nag-develop: Mercury Developers
Lisensya: Libre
Katanyagan: 11

Rating: 2.0/5 (Total Votes: 1)

Logic programming wika ay sa paligid para sa higit sa dalawampung taon. Sa kabila ng inaasahang mga bentahe ng isang napakataas na antas ng wika programming batay sa mahusay na binuo teoryang ng logic sa paglipas ng maginoo mga wika programming (tulad ng C, C ++, Pascal at Ada) hindi sila nagkaroon ng makabuluhang epekto sa industriya ng computer.
Mercury ay isang bagong logic / functional programming language, na pinagsasama ang kalinawan at expressiveness ng paturol programming na may advanced na mga tampok static na pagtatasa at pag-detect ng error.
Mercury ay lubos na-optimize na algorithm pagpapatupad naghahatid kahusayan malayo na labis sa mga umiiral na system logic programming, at malapit sa maginoo mga sistema ng programming.
Mercury address ang problema ng pag-unlad programa malakihang, na nagpapahintulot sa modularity, hiwalay na pagsasama-sama, at maraming pag-optimize / oras kalakalan-off

Ano ang bagong sa paglabas:.

  • Ang bugfix pag-aayos ng paglabas bumuo ng mga problema sa Solaris at NetBSD at nagdadagdag ng suporta para sa pagpili sa C # compiler sa oras na configuration.
  • Iba't ibang mga iba pang mga menor de edad bug na-naayos na.
  • Mayroon ding ilang mga menor karagdagan sa karaniwang library.

Ano ang bagong sa bersyon 13.05:

  • Pagbuo ng 64-bit na mga executable sa Windows ay suportado na ngayon.
  • beses compilation para sa mga napakalaking mga programa ay nai-pinabuting.
  • Ang ilang mga bagong uri na representasyon optimization ay naidagdag.
  • Ang debugger ay mayroon na ngayong mas mahusay na suporta para sa paghawak ng cliques ng kapwa recursive tawag sa stack.
  • Ang isang may-bisang sa GLFW library ay naidagdag na sa pamamahagi extra.
  • pagtitipon na binuo gamit ang C # backend ay maaari na ngayong naka-sign na may isang malakas na pangalan.

Ano ang bagong sa bersyon 11.01:

  • nagdagdag kami ng dalawang bagong uri ng saklaw sa wika.
  • Ang isang saklaw ipinakilala sa pamamagitan ng isa sa mga bagong keyword require_det, require_semidet, require_multi, require_nondet, require_cc_multi, require_cc_nondet, require_erroneous at require_failure, pati na nagpapahiwatig ang pangalan, ay nangangailangan ng mga layunin sa loob ng saklaw na magkaroon ng ibinigay na determinismo.
  • Ang isang saklaw ipinakilala sa pamamagitan ng mga keyword require_complete_switch ay nangangailangan ng layunin sa loob ng saklaw, kung ito ay isang switch sa variable na pinangalanan ng saklaw, upang maging isang kumpletong switch, ibig sabihin, na magkaroon ng armas para sa lahat ng mga simbolo function na sa ang uri ng mga lumipat-sa variable.
  • Idinagdag namin semidet mga mode para sa hash_table.fold / 4 at version_hash_table.fold / 4.
  • Idinagdag namin bagong predicates at mga function sa module assoc_list. Ang predicates map_keys_only / 3 map_values_only / 3 at map_values ​​/ 3 ganap na bilang ng mga pag-andar ng parehong pangalan. -Filter ang predicates / 3, negated_filter / 3, i-filter / 4, pagsamahin / 3, kung saan ay mayroon ding mga bersyon ng function, gawin ang mga trabaho na halos kapareho sa predicates ng parehong pangalan na module sa listahan, ngunit ang may-katuturang mga pagpapatakbo sa mga key sa halip ng buong mga elemento ng listahan.
  • namin inilipat sa module ng pagsusuri tamad sumali sa pamamahagi ng mga extra at sa isang bagong module standard library na tinatawag na `tamad '. Ito din ginawa backend-agnostiko.
  • Gumawa kami ng mga pagbabago sa listahan ng module ng standard library:
  • Nagdagdag kami ng bagong tambalan list.member_index0 / 3. Ito ay tulad ng list.member / 2 maliban na rin tumatagal ito ng isang parameter na kumakatawan sa index ng zero-based ng elemento sa loob ng listahan.
  • Nagdagdag kami ng bagong tambalan list.map3_foldl / 7 na mga mapa sa isang listahan na gumagawa tatlong mga listahan at isang nakatuping halaga.
  • Nagdagdag kami semidet mode na may natatanging Accumulators para sa list.foldl3 / 8, list.foldl4 / 10, list.foldl5 / 12, at list.foldl6 / 14.
  • namin naidagdag ang predicates hatiin / 4 at divide_by_set / 4 sa tree_bitset module ng standard library.
  • namin naidagdag ang predicates set_ctree234.member / 2 at set_ctree234.non_empty / 1. Mayroon kaming magdagdag ng pag-andar set_ctree234.from_list / 1.
  • namin naidagdag ang mga tambalan set_bbbtree.count / 2 at ang function ng set_bbbtree.count / 1. Ang mga palitan ang tambalan set_bbbtree.size / 2 na kung saan ay hindi na ginagamit ngayon.
  • namin naidagdag ang tambalan set_ordlist.non_empty / 1.
  • namin naidagdag ang tambalan set_tree234.non_empty / 1 at ang function ng set_tree234.from_list / 1.
  • namin naidagdag ang predicates set_unordlist.non_empty / 1 at set_unordlist.count / 2, at ang function ng set_unordlist.count / 1.
  • Ang lahat ng mga module sa standard library na ipatupad ang mga hanay ADT, (set, set_ordlist, set_unordlist, set_bbbtree, set_tree234, at set_ctree234), sinusuportahan ngayon natitiklop na sa paglipas ng mga hanay na may hanggang sa anim na Accumulators. Mga Mode na nagbibigay ng natatanging at karamihan natatanging Accumulators para sa hanay fold pa rin ay naidagdag na.
  • ginawa namin ang mga sumusunod na pagbabago sa array module ng standard library:
  • namin naidagdag ang function unsafe_elem / 2 at ikabit / 2.
  • namin naidagdag ang predicates svset / 4, unsafe_svset / 4, foldl2 / 4, foldl2 / 6, foldr / 4, foldr2 / 6, map_foldl / 5, map_corresponding_foldl / 6, at miyembro / 2.
  • Idinagdag namin ang predicates version_array.foldl2 / 6, version_array.foldr / 4, at version_array.foldr2 / 6 sa karaniwang library.
  • Idinagdag namin semidet mga mode ng natatangi at karamihan natatanging Accumulators para sa mga sumusunod predicates:
  • 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
  • namin naidagdag ang tambalan unsorted_aggregate2 / 6 sa mga solusyon sa module ng standard library.
  • Idinagdag namin ang ilang mga predicates at pag-andar sa nangangailangan ng module ng standard library. Ang predicates ng paumanhin / 2 at ng paumanhin / 3 ulat ang kawalan ng isang tampok, habang ang predicates hindi inaasahang / 2 at hindi inaasahang / 3 ulat ng panloob na error sa programa; lahat ay may masyadong bersyon function. Ipahayag na totoo ang inaasahan / 3 tawag na hindi inaasahang kung ang isang kondisyon ay hindi nasiyahan. Sa ngayon ay namin inaasahang / 4 pati na rin ang inaasahan / 3. Para sa inaasahan / 4 pati na rin ang inaasahan / 3, ang una at huling argumento ay inaasahang kundisyon at ang mensahe ng error ayon sa pagkakabanggit, ngunit may inaasahan / 4, may dalawang argumento sa gitna upang tukuyin ang lokasyon ng ang error (karaniwang pangalan ng module at ng tambalan ayon sa pagkakabanggit). Nagdagdag din kami ng expect_not / 3 at expect_not / 4, na ay tulad ng inaasahan / 3 at inaasahan / 4 ayon sa pagkakabanggit, maliban inaasahan nila ang kundisyon upang maging * * false, hindi totoo.

Ano ang bagong sa bersyon 10.04.2:

  • Ang release na ito ay isang bug-fix release. Ang isang bilang ng mga problema na sanhi ng compiler upang iurong na-fixed, ang ilang mga sirang pagpapatakbo RTTI sa java grado na-fixed, at nagdagdag kami ng isang remedyo para sa isang problema sa GCC bersyon 4.4.

Mga Limitasyon :

  • Ang kasalukuyang pagpapatupad ay hindi pa ganap na ipatupad ang wika Mercury. Ang pangunahing limitasyon ng kasalukuyang pagpapatupad ay ang mga sumusunod:
  • Hindi namin pinapayagan ang tiyak aliasing nasa mode ng system. Nang walang mga ito, bahagyang instantiated mga mode ay magagamit, at sa gayon ay nested natatanging mga mode.
  • compiler ay hindi pa gumagamit ng istraktura sa muling paggamit o sumulat ng libro-time na koleksyon ng basura sa maningning na tagumpay natatanging mga mode.
  • Uri at mode hinuha ay medyo hindi lubos na pagsisisi.

  • Bilang karagdagan, pasya sa disenyo sa implemenation na ipinapataw sa mga sumusunod na limitasyon:
  • Predicates at pag-andar ay maaaring magkaroon ng hindi hihigit sa tungkol sa 1000 mga argumento.

  • Mga tuntunin
  • Ang mas mataas na-order ay maaaring magkaroon ng hindi hihigit sa 500 mga argumento.

Katulad na software

Cython
Cython

27 Sep 15

Enchanting
Enchanting

14 Apr 15

bc
bc

3 Jun 15

Cake
Cake

14 Apr 15

Mga komento sa Mercury

Mga Komento hindi natagpuan
Magdagdag ng komento
I-sa mga imahe!