Mercury

Software screenshot:
Mercury
Software informatie:
Versie: 13.05.1
Upload datum: 15 Apr 15
Ontwikkelaar: Mercury Developers
Licentie: Gratis
Populariteit: 11

Rating: 2.0/5 (Total Votes: 1)

Logic programmeertalen zijn al meer dan twintig jaar. Ondanks de verwachte voordelen van een zeer hoog niveau programmeertaal gebaseerd op goed ontwikkelde theorieën logisch dan conventionele programmeertalen (zoals C, C ++, Pascal en Ada) zij niet had significante invloed op de computerindustrie.
Kwik is een nieuwe logica / functionele programmeertaal, die de helderheid en de expressiviteit van declaratief programmeren met geavanceerde statische analyse en foutdetectie functies combineert.
Kwik wordt sterk geoptimaliseerde uitvoering algoritme levert efficiëntie ver boven de bestaande logisch programmeren systemen, en dicht bij conventionele programmering systemen.
Kwik worden de problemen van de grootschalige ontwikkeling van programma's, waardoor modulariteit, aparte compilatie, en tal van optimalisatie / tijd trade-offs

Wat is nieuw in deze release:.

  • Dit bugfix versie lost bouwen problemen op Solaris en NetBSD en voegt ondersteuning toe voor het selecteren van de C # compiler bij het configureren.
  • Diverse andere kleine bugs zijn opgelost.
  • Er zijn ook enkele kleine toevoegingen aan de standaard bibliotheek.

Wat is nieuw in versie 13.05:

  • Generatie van 64-bits executables op Windows wordt nu ondersteund.
  • Compilatie tijden voor zeer grote programma's zijn verbeterd.
  • Verscheidene nieuw type vertegenwoordiging optimalisaties zijn toegevoegd.
  • De debugger heeft nu betere ondersteuning voor de behandeling van klieken van onderling recursieve oproepen op de stapel.
  • A binding aan de GLFW bibliotheek toegevoegd aan extra's distributie.
  • Assemblies gegenereerd met de C # backend kan nu worden ondertekend met een sterke naam.

Wat is nieuw in versie 11.01:

  • We hebben twee nieuwe soorten scopes toegevoegd aan de taal.
  • Een scope geïntroduceerd door een van de nieuwe zoekwoorden require_det, require_semidet, require_multi, require_nondet, require_cc_multi, require_cc_nondet, require_erroneous en require_failure, zoals de naam al impliceert, vereist het doel binnen de reikwijdte van de gegeven determinisme te hebben.
  • Een scope geïntroduceerd door het trefwoord require_complete_switch vereist het doel binnen het bereik, als het een schakelaar op de variabele met de naam van de scope, om een ​​complete schakelaar, dat wil zeggen om wapens voor al de functie symbolen hebben in de aard van de ingeschakelde variabele.
  • Wij hebben semidet modi voor hash_table.fold / 4 en version_hash_table.fold / 4.
  • toegevoegd
  • Wij hebben nieuwe predikaten en functies toegevoegd aan de assoc_list module. De predikaten map_keys_only / 3 map_values_only / 3 en map_values ​​/ 3 complement van de functies van de zelfde naam. De predikaten filteren / 3, negated_filter / 3, filteren / 4, samenvoegen / 3, die ook de functie versies, doe banen zeer vergelijkbaar met de predikaten van dezelfde naam in de lijst module, maar wel dat de betrokken activiteiten op toetsen in plaats van het hele elementen van de lijst.
  • Wij hebben de lazy evaluatie module verhuisd van de extra uitkering en in een nieuwe standaard bibliotheek module genaamd `lui '. Het is ook gemaakt backend-agnostisch.

  • Wij hebben wijzigingen in de lijst module van de standaard bibliotheek gemaakt
  • We voegden een nieuwe predikaat list.member_index0 / 3. Het is als list.member / 2, behalve dat het duurt ook een parameter die de nul gebaseerde index van het element in de lijst.
  • We voegden een nieuwe predikaat list.map3_foldl / 7 die kaarten over een lijst produceren van drie lijsten en één gevouwen waarde.
  • Wij toegevoegd semidet modi met unieke accu's voor list.foldl3 / 8, list.foldl4 / 10, list.foldl5 / 12, en list.foldl6 / 14.
  • Wij hebben toegevoegd de predikaten verdelen / 4 en divide_by_set / 4 om de tree_bitset module van de standaard bibliotheek.
  • Wij hebben toegevoegd de predikaten set_ctree234.member / 2 en set_ctree234.non_empty / 1. We hebben voeg de functie set_ctree234.from_list / 1.
  • Wij hebben toegevoegd het het predikaat set_bbbtree.count / 2 en de functie set_bbbtree.count / 1. Deze vervangt het predikaat set_bbbtree.size / 2 die nu wordt afgeraden.
  • Wij hebben het.
  • predikaat set_ordlist.non_empty / 1 toegevoegd
  • Wij hebben het predikaat set_tree234.non_empty / 1 en de functie set_tree234.from_list / 1.
  • toegevoegd
  • Wij hebben toegevoegd de predikaten set_unordlist.non_empty / 1 en set_unordlist.count / 2, en de.
  • functie set_unordlist.count / 1
  • Alle van de modules in de standaard bibliotheek die de set ADT, (set, set_ordlist, set_unordlist, set_bbbtree, set_tree234 en set_ctree234) implementeren, ondersteunen nu omvouwen sets met maximaal zes accu's. Modi die unieke en meestal-unieke accu's zorgen voor set fold zijn ook toegevoegd.

  • Wij hebben de volgende wijzigingen in de array module van de standaard bibliotheek gemaakt
  • Wij hebben toegevoegd de functies unsafe_elem / 2 en toevoegen / 2.
  • Wij hebben foldr2 / 6, map_foldl / 5, map_corresponding_foldl / 6, en lid / 2.
  • voegde de predikaten svset / 4, unsafe_svset / 4, foldl2 / 4, foldl2 / 6, foldr / 4,
  • Wij hebben de predikaten version_array.foldl2 / 6 version_array.foldr / 4, en version_array.foldr2 / 6 toegevoegd, om de standaard bibliotheek.
  • Wij hebben semidet modi met unieke en meestal-unieke accu's voor de volgende predikaten toegevoegd:
  • 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
  • Wij hebben het predikaat unsorted_aggregate2 / 6 toegevoegd aan de oplossingen module van de standaard bibliotheek.
  • Wij hebben een aantal predikaten en functies toegevoegd aan de eisen module van de standaard bibliotheek. De predikaten spijt / 2 en sorry / 3 verslag van de afwezigheid van een functie, terwijl de predikaten onverwachte / 2 en onverwachte / 3 een verslag van een interne fout in het programma; hebben allemaal functie versies ook. Het predikaat verwachten / 3 gesprekken onverwachte als een voorwaarde niet is voldaan. We hebben nu verwachten / 4 en verwachten / 3. Voor video / 4 en verwachten / 3, de eerste en laatste argumenten zijn verwachte conditie en de foutmelding respectievelijk maar verwacht / 4, zijn twee argumenten in het midden om de locatie van de fout (gewoonlijk zowel de naam van de module en het predikaat respectievelijk). We hebben ook expect_not toegevoegd / 3 en expect_not / 4, die als verwacht / 3 en verwachten / 4 respectievelijk, behalve dat ze verwachten dat de voorwaarde om * valse *, niet waar.
  • zijn

Wat is nieuw in versie 10.04.2:

  • Deze release is een bug-fix release. Een aantal problemen die de compiler om af te breken zijn vastgesteld veroorzaakt, hebben een aantal gebroken RTTI operaties in de java klasse is vastgesteld, en we hebben een oplossing voor een probleem met GCC versie 4.4 toegevoegd.

Beperkingen

  • De huidige implementatie nog niet volledig de Mercury taal uit te voeren. De belangrijkste beperkingen van de huidige implementatie zijn de volgende:
  • Wij hebben geen duidelijke aliasing in de mode-systeem mogelijk te maken. Zonder deze, deels geconcretiseerd modi zijn onbruikbaar, en dus zijn genest unieke modi.
  • De compiler niet nog gebruiken structuur hergebruik of compileren garbage collection om unieke modi te exploiteren.
  • Type en mode gevolgtrekking zijn een beetje onvolmaakt.

  • Daarnaast ontwerpbeslissingen in deze implemenation hebben opgelegd de volgende grenzen:
  • Predikaten en functies kan hebben ten hoogste ongeveer 1000 argumenten.
  • Hogere-orde termen kunnen maximaal ongeveer 500 argumenten hebben.

Vergelijkbare software

pyPEG
pyPEG

14 Apr 15

CIL
CIL

20 Feb 15

Bocfel
Bocfel

17 Feb 15

Reacties op Mercury

Reacties niet gevonden
Commentaar toe te voegen
Zet op de beelden!