Mercury

Skjermbilde programvare:
Mercury
Prog.varedetaljer:
Versjon: 13.05.1
Last opp dato: 15 Apr 15
Lisens: Gratis
Popularitet: 11

Rating: 2.0/5 (Total Votes: 1)

Logic programmeringsspråk har eksistert i mer enn tjue år. Til tross for de forventede fordelene med et svært høyt nivå programmeringsspråk basert på godt utviklede teorier om logikk enn konvensjonelle programmeringsspråk (for eksempel C, C ++, Pascal og Ada) de ikke har hatt betydelig innvirkning på dataindustrien.
Kvikksølv er en ny logikk / funksjonelle programmeringsspråk, som kombinerer klarhet og uttrykksfullhet av deklarativ programmering med avanserte statiske analyse og feildeteksjon funksjoner.
Kvikksølv er svært optimalisert gjennomføring algoritme leverer effektivitet langt i overkant av eksisterende logikk programmering systemer, og i nærheten av konvensjonelle programmeringssystemer.
Mercury løser problemene med storstilt program utvikling, slik at modularitet, separat kompilering, og mange optimalisering / tids trade-offs

Hva er nytt i denne utgaven:.

  • Denne bugfix utslipp fikser bygge problemer på Solaris og NetBSD og legger til støtte for valg av C # kompilatoren ved konfigurasjon tid.
  • Diverse andre mindre bugs har blitt fikset.
  • Det er også noen mindre tilskudd til standard biblioteket.

Hva er nytt i versjon 13.05:

  • Generering av 64-bits kjørbare filer på Windows er nå støttet.
  • Compilation ganger for svært store programmer har blitt forbedret.
  • Flere nye typen representasjon optimaliseringer har blitt lagt til.
  • debugger har nå bedre støtte for håndtering av cliques av gjensidig rekursive samtaler på stakken.
  • En binding til GLFW biblioteket er blitt lagt til statister distribusjon.
  • Assemblies generert med C # backend kan nå bli signert med et sterkt navn.

Hva er nytt i versjon 11.01:

  • Vi har lagt til to nye typer scopes til språket.
  • En omfanget introdusert av en av de nye søkeordene require_det, require_semidet, require_multi, require_nondet, require_cc_multi, require_cc_nondet, require_erroneous og require_failure, som navnet tilsier, krever mål inne i omfang til å ha gitt determinisme.
  • En omfang introdusert av nøkkelordet require_complete_switch krever mål inne i omfang, hvis det er en bryter på variabelen kalt av omfanget, for å være en komplett bytte, dvs. å ha våpen for alle funksjonssymboler i form av slått på variabel.
  • Vi har lagt semidet moduser for hash_table.fold / 4 og version_hash_table.fold / 4.
  • Vi har lagt til nye predikater og funksjoner til assoc_list modulen. Predikatene map_keys_only / 3 map_values_only / 3 og map_values ​​/ 3 komplement funksjoner av samme navn. Predikatene filtrere / 3, negated_filter / 3, filter / 4, fusjonere / 3, som også har funksjon versjoner, gjøre jobben svært lik de predikater av samme navn i listen modul, men gjør de aktuelle operasjonene på nøkler i stedet for hele listeelementer.
  • Vi har flyttet lat evaluering modulen ut av statister distribusjon og inn i en ny standard bibliotek modul kalt `lat". Det har også blitt gjort backend-agnostiker.
  • Vi har gjort endringer i listen modul av standard bibliotek:
  • Vi har lagt til en ny predikat list.member_index0 / 3. Det er som list.member / 2, bortsett fra at det tar også en parameter som representerer nullbasert indeks av elementet inne i listen.
  • Vi har lagt til en ny predikat list.map3_foldl / 7 som kart over en liste produserer tre lister og en foldet verdi.
  • Vi har lagt semidet moduser med unike akkumulatorer for list.foldl3 / 8, list.foldl4 / 10, list.foldl5 / 12, og list.foldl6 / 14.
  • Vi har lagt de predikater dele / 4 og divide_by_set / 4 til tree_bitset modul av standard biblioteket.
  • Vi har lagt de predikater set_ctree234.member / 2 og set_ctree234.non_empty / 1. Vi har legge funksjonen set_ctree234.from_list / 1.
  • Vi har lagt den predikatet set_bbbtree.count / 2 og funksjonen set_bbbtree.count / 1. Disse erstatter predikatet set_bbbtree.size / 2 som nå er foreldet.
  • Vi har lagt predikatet set_ordlist.non_empty / 1.
  • Vi har lagt predikatet set_tree234.non_empty / 1 og funksjonen set_tree234.from_list / 1.
  • Vi har lagt de predikater set_unordlist.non_empty / 1 og set_unordlist.count / 2, og funksjonen set_unordlist.count / 1.
  • Alle modulene i standard bibliotek som implementerer settet ADT, (sett, set_ordlist, set_unordlist, set_bbbtree, set_tree234, og set_ctree234), støtter nå ombretting sett med opptil seks akkumulatorer. Moduser som gir unike og det meste-unike akkumulatorer for settet fold har også blitt lagt til.
  • Vi har gjort følgende endringer i rekken modul av standard bibliotek:
  • Vi har lagt funksjonene unsafe_elem / 2 og legge til / 2.
  • Vi har lagt de predikater svset / 4, unsafe_svset / 4, foldl2 / 4, foldl2 / 6, foldr / 4, foldr2 / 6, map_foldl / 5, map_corresponding_foldl / 6, og medlem / 2.
  • Vi har lagt predikatene version_array.foldl2 / 6, version_array.foldr / 4, og version_array.foldr2 / 6 til standard biblioteket.
  • Vi har lagt semidet moduser med unike og det meste-unike akkumulatorer for følgende predikater:
  • 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
  • Vi har lagt predikatet unsorted_aggregate2 / 6 til løsninger modul av standard biblioteket.
  • Vi har lagt til flere predikater og funksjoner til kreve modul av standard bibliotek. Predikatene beklager / 2 og beklager / 3 rapport fravær av en funksjon, mens de predikater uventede / 2 og uventede / 3 rapporten en intern feil i programmet; alle har funksjons versjoner også. Predikatet forvente / 3 samtaler uventet hvis en betingelse er ikke fornøyd. Vi har nå forventer / 4 så vel som forventet / 3. For forvente / 4 så vel som forventet / 3, første og siste argumentene er forventet tilstand og feilmeldingen henholdsvis, men med forventer / 4, det er to argumenter i midten for å angi plasseringen av feilen (vanligvis navnet av modulen, og av predikat henholdsvis). Vi har også lagt expect_not / 3 og expect_not / 4, som er som forventer / 3 og forventer / 4 henholdsvis, bortsett fra at de forventer at betingelsen for å være * falsk *, ikke sant.

Hva er nytt i versjon 10.04.2:

  • Denne utgivelsen er en bug-fix release. En rekke problemer som forårsaket kompilatoren å abortere har blitt fikset, har noen brutt RTTI operasjoner i java klasse blitt fikset, og vi har lagt en midlertidig løsning for et problem med GCC versjon 4.4.

Begrensninger :

  • Den nåværende implementeringen ikke ennå helt implementere Mercury språk. De viktigste begrensningene i dagens implementering er følgende:
  • Vi tillater ikke klar aliasing i modus system. Uten dette, delvis instansiert modi er ubrukelig, og så er nestet unike moduser.
  • Kompilatoren ikke ennå bruke struktur gjenbruk eller kompilere-tid søppelrydding å utnytte unike moduser.
  • Type og modus slutning er litt mangelfull.

  • I tillegg har design beslutninger i denne implemenation pålagt følgende grenser:
  • predikater og funksjoner kan ha mest om 1000 argumenter.
  • Høyere-ordens ledd kan ha på det meste ca 500 argumenter.

Lignende programvare

SWIG
SWIG

7 Mar 16

Vala
Vala

27 Sep 15

gears-coffeescript
gears-coffeescript

20 Feb 15

Kommentarer til Mercury

Kommentarer ikke funnet
Legg til kommentar
Slå på bilder!