Mercury

Software skärmdump:
Mercury
Mjukvaruinformation:
Version: 13.05.1
Ladda upp dagen: 15 Apr 15
Utvecklare: Mercury Developers
Licens: Gratis
Popularitet: 11

Rating: 2.0/5 (Total Votes: 1)

Logik programmeringsspråk har funnits i mer än tjugo år. Trots de förväntade fördelarna med en nivå programmeringsspråk mycket hög baserat på väl utvecklade teorier om logik jämfört med konventionella programmeringsspråk (t.ex. C, C ++, Pascal och Ada) de inte har haft betydande inverkan på datorindustrin.
Kvicksilver är en ny logik / funktionella programmeringsspråk, som kombinerar klarhet och uttrycksfullhet av deklarativ programmering med avancerade statiska analys och feldetektering funktioner.
Kvicksilver är mycket optimerad utförande algoritm levererar effektivitet vida överstiger befintliga logik programmeringssystem, och nära till konventionella programmeringssystem.
Kvicksilver adresserar problemen med storskalig programutveckling, vilket gör modularitet, separat sammanställning, och många optimering / tids avvägningar

Vad är nytt i den här versionen:.

  • Den här versionen fixar Buggfix bygga problem på Solaris och NetBSD och lägger till stöd för val av C # kompilatorn vid konfigurationstiden.
  • Flera andra mindre buggar har åtgärdats.
  • Det finns också några mindre tillägg till standardbiblioteket.

Vad är nytt i version 13.05:

  • Generation av 64-bitars körbara på Windows stöds nu.
  • Sammanställning tider för mycket stora program har förbättrats.
  • Flera nya typen representations optimeringar har lagts till.
  • debugger har nu bättre stöd för hantering av kotterier av ömsesidigt rekursiva anrop på stacken.
  • En bindning till GLFW biblioteket har lagts till den extrafördelningen.
  • församlingar genereras med C # backend kan nu undertecknas med ett starkt namn.

Vad är nytt i version 11.01:

  • Vi har lagt till två nya typer av omfattningar till språket.
  • En räckvidd infördes av en av de nya sökord require_det, require_semidet, require_multi, require_nondet, require_cc_multi, require_cc_nondet, require_erroneous och require_failure, som namnet antyder, kräver målet inuti utrymme att ha gett determinism.
  • En räckvidd infördes av nyckelordet require_complete_switch kräver målet inne i omfattning, om det är en omkopplare på variabeln av omfattningen, att vara en fullständig övergång, dvs att ha vapen för alla funktionssymboler i den typ av inkopplade variabel.
  • Vi har lagt semidet lägen för hash_table.fold / 4 och version_hash_table.fold / 4.
  • Vi har lagt till nya predikat och funktioner till assoc_list modulen. De predikat map_keys_only / 3 map_values_only / 3 och map_values ​​/ 3 komplement funktioner med samma namn. De predikat filter / 3, negated_filter / 3, filter / 4, slå ihop / 3, som också har funktionsversioner, göra jobb mycket liknar de predikat med samma namn i listan modulen, men gör de relevanta operationer på tangenterna istället för hela listelement.
  • Vi har flyttat den lata utvärderingsmodulen ur distributions extramaterial och in i en ny standard biblioteksmodul som kallas `lata". Det har också gjorts backend-agnostic.
  • Vi har gjort ändringar i förteckningen modulen i standardbiblioteket:
  • Vi har lagt ett nytt predikat list.member_index0 / 3. Det är som list.member / 2 förutom att det tar också en parameter som representerar nollbaserade index av elementet i listan.
  • Vi har lagt ett nytt predikat list.map3_foldl / 7 som avbildar över en lista som producerar tre listor och en hopvikt värde.
  • Vi har lagt semidet lägen med unika ackumulatorer för list.foldl3 / 8, list.foldl4 / 10, list.foldl5 / 12, och list.foldl6 / 14.
  • Vi har lagt de predikat dela / 4 och divide_by_set / 4 till tree_bitset modulen i standardbiblioteket.
  • Vi har lagt de predikat set_ctree234.member / 2 och set_ctree234.non_empty / 1. Vi har till funktionen set_ctree234.from_list / 1.
  • Vi har lagt till predikatet set_bbbtree.count / 2 och funktionen set_bbbtree.count / 1. Dessa ersätter predikatet set_bbbtree.size / 2 som nu är föråldrat.
  • Vi har lagt predikatet set_ordlist.non_empty / 1.
  • Vi har lagt predikatet set_tree234.non_empty / 1 och funktionen set_tree234.from_list / 1.
  • Vi har lagt de predikat set_unordlist.non_empty / 1 och set_unordlist.count / 2, och funktionen set_unordlist.count / 1.
  • Alla moduler i standardbiblioteket som implementerar den inställda ADT, (set, set_ordlist, set_unordlist, set_bbbtree, set_tree234 och set_ctree234), stöder nu vika över uppsättningar med upp till sex ackumulatorer. Lägen som ger unika och mestadels-unika ackumulatorer för set gånger har också lagts till.
  • Vi har gjort följande ändringar i arrayen modulen i standardbiblioteket:
  • Vi har lagt funktionerna unsafe_elem / 2 och lägga till / 2.
  • Vi har lagt de predikat svset / 4, unsafe_svset / 4, foldl2 / 4, foldl2 / 6, foldr / 4, foldr2 / 6, map_foldl / 5, map_corresponding_foldl / 6, och ledamot / 2.
  • Vi har lagt de predikat version_array.foldl2 / 6, version_array.foldr / 4, och version_array.foldr2 / 6 till standardbiblioteket.
  • Vi har lagt semidet lägen med unika och mestadels-unika ackumulatorer för följande predikat:
  • 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 till lösningar modulen i standardbiblioteket.
  • Vi har lagt till flera predikat och funktioner till kräva modulen i standardbiblioteket. De predikat sorry / 2 och ledsen / 3 rapport avsaknaden av en funktion, medan de predikat oväntade / 2 och oväntade / 3 rapport ett internt fel i programmet; alla har funktionsversioner också. Predikatet förväntar / 3 samtal oväntat om ett villkor inte är uppfyllt. Vi har nu räknar / 4 samt förvänta sig / 3. För förväntar / 4 samt förvänta sig / 3, den första och sista argument är det förväntade tillstånd och felmeddelandet respektive, men med förväntar / 4, finns det två argument i mitten för att ange platsen för felet (vanligtvis namnet av modulen och av predikatet respektive). Vi har även lagt expect_not / 3 och expect_not / 4, som är som förväntar / 3 och förväntar / 4 respektive utom de förväntar villkoret att vara * falsk *, inte sant.

Vad är nytt i version 10.04.2:

  • Den här versionen är en bugg-fix release. Ett antal problem som orsakade kompilatorn att avbryta har fastställts, har några trasiga RTTI operationer i java klass rättats, och vi har lagt till en lösning på ett problem med GCC version 4.4.

Begränsningar :

  • Den nuvarande genomförandet inte ännu helt genomföra Mercury språket. De viktigaste begränsningarna i det nuvarande genomförandet är följande:
  • Vi tillåter inte definitiv aliasing i läget systemet. Utan detta, delvis instansieras lägen är oanvändbara, och så är kapslade unika lägen.
  • Kompilatorn inte ännu använder återanvändning struktur eller kompilering sophämtning att utnyttja unika lägen.
  • Typ och mode slutledning är lite bristfällig.

  • Dessutom har designbeslut i denna implemenation åläggs följande gränser:
  • Predikat och funktioner kan ha högst ca 1000 argumenten.
  • Högre ordningens termer kan ha som mest cirka 500 argument.

Liknande mjukvara

Erlang
Erlang

18 Feb 15

GCL
GCL

3 Jun 15

Kommentarer till Mercury

Kommentarer hittades inte
Kommentar
Slå på bilder!