Mercury

Software kuvakaappaus:
Mercury
Ohjelmiston tiedot:
Versio: 13.05.1
Lähetyksen päivämäärä: 15 Apr 15
Kehittäjä: Mercury Developers
Lupa: Vapaa
Suosio: 11

Rating: 2.0/5 (Total Votes: 1)

Logic ohjelmointikieliä ovat olleet jo yli kaksikymmentä vuotta. Vaikka odotettavissa etuja erittäin korkean tason ohjelmointikieli perustuu hyvin kehittynyt teorioita logiikan perinteisiin ohjelmointikieliä (kuten C, C ++, Pascal ja Ada) niille ei ole ollut merkittävää vaikutusta tietokone teollisuudessa.
Elohopea on uusi logiikka / toiminnallinen ohjelmointikieli, jossa yhdistyvät selkeys ja ilmaisuvoimaa julistava ohjelmointi kehittyneitä staattisen analyysin ja virheiden havaitsemiseen ominaisuuksia.
Elohopea on hyvin optimoitu toteutus algoritmi tuottaa tehokkuutta huomattavasti ylittää nykyisten logiikkaohjelmoinnin järjestelmiä, ja lähellä tavanomaisia ​​ohjelmatyömenettelyistä.
Mercury korjaa ongelmat laajamittaiset kehittäminen, jonka avulla modulaarisuus, erillinen kokoaminen, ja lukuisia optimointi / aika kompromisseja.

Mitä uutta tässä julkaisussa:

  • Tämä vikakorjaus julkaisu korjaa rakentaa ongelmia Solaris ja NetBSD ja lisää tuen valitsemalla C # kääntäjä klo konfiguraatioaika.
  • Useita muita pieniä vikoja on korjattu.
  • On myös joitakin pieniä lisäyksiä standardin kirjasto.

Mitä uutta versiossa 13,05:

  • Generation 64-bittinen ajettavat Windows on nyt tuettu.
  • Compilation kertaa erittäin suuria ohjelmia on parannettu.
  • Useita uudenlainen esitys optimointeja on lisätty.
  • Debuggeri nyt parempi tuki käsittelyyn klikkejä keskenään rekursiokutsua pinoon.
  • sitoutumisen GLFW kirjastoon on lisätty extrat jakeluun.
  • viimeistelty tuotettu C # backend voidaan nyt allekirjoitettu vahva nimi.

Mitä uutta versiossa 11,01:

  • Olemme lisänneet kaksi uutta erilaista laajuuksia kieltä.
  • soveltamisalaan käyttöön jonkin uuden avainsanoja require_det, require_semidet, require_multi, require_nondet, require_cc_multi, require_cc_nondet, require_erroneous ja require_failure, kuten nimikin kertoo, vaatii maalia sisälle soveltamisala on antanut determinismi.
  • soveltamisalan käyttöön avainsanan require_complete_switch vaatii maalin sisällä soveltamisalaa, jos se on kytkin muuttuja nimeltä laajuuden, olla täydellinen kytkin, eli saada aseita kaikille toiminto symbolit tyyppi Päälle kytketty muuttuja.
  • Olemme lisänneet semidet tilat hash_table.fold / 4 ja version_hash_table.fold / 4.
  • Olemme lisänneet predikaatit ja toimintoja assoc_list moduuli. Predikaatteja map_keys_only / 3 map_values_only / 3 ja map_values ​​/ 3 täydennys toiminnot on sama nimi. Predikaatit suodatin / 3, negated_filter / 3, suodatin / 4, yhdistää / 3, joka on myös toiminto versioita, tehdä työtä hyvin samankaltainen predikaattien samanniminen luettelossa moduulin, mutta tee asiaa toimintansa avaimet sijasta koko lista elementtejä.
  • Olemme muuttaneet laiska arviointimoduulissa pois extrat jakelun ja osaksi uuden standardin kirjasto moduuli nimeltään `laiska". Se on tehty myös backend-agnostikko.
  • Olemme tehneet muutoksia luetteloon moduuli standardin kirjasto:
  • Lisäsimme uusi predikaatti list.member_index0 / 3. Se on kuin list.member / 2, paitsi että se myös kestää parametri edustaa nollapohjaista indeksi elementti luettelosta.
  • Lisäsimme uusi predikaatti list.map3_foldl / 7, joka kuvaa yli lista tuottaa kolme listaa ja toinen taitettu arvo.
  • Lisäsimme semidet tilat ainutlaatuinen akkujen list.foldl3 / 8, list.foldl4 / 10, list.foldl5 / 12, ja list.foldl6 / 14.
  • Olemme lisänneet predikaattien jakaa / 4 ja divide_by_set / 4 tree_bitset moduuli standardin kirjasto.
  • Olemme lisänneet predikaattien set_ctree234.member / 2 ja set_ctree234.non_empty / 1. Meillä on lisätä toiminto set_ctree234.from_list / 1.
  • Olemme lisänneet predikaatti set_bbbtree.count / 2 ja toiminta set_bbbtree.count / 1. Nämä korvaavat predikaatti set_bbbtree.size / 2, joka on nyt vanhentunut.
  • Olemme lisänneet predikaatti set_ordlist.non_empty / 1.
  • Olemme lisänneet predikaatti set_tree234.non_empty / 1 ja toiminta set_tree234.from_list / 1.
  • Olemme lisänneet predikaattien set_unordlist.non_empty / 1 ja set_unordlist.count / 2, ja toiminto set_unordlist.count / 1.
  • Kaikki moduulit standardin kirjasto, joka toteuttaa joukon ADT, (joukko, set_ordlist, set_unordlist, set_bbbtree, set_tree234 ja set_ctree234), tukevat nyt taita, joissa on enintään kuusi akkujen. Tilat, jotka tarjoavat ainutlaatuisen ja enimmäkseen-ainutlaatuinen akkujen joukko kertaiseksi on myös lisätty.
  • Olemme tehneet seuraavat muutokset joukko moduulin standardin kirjasto:
  • Olemme lisänneet toiminnot unsafe_elem / 2 ja liittää / 2.
  • Olemme lisänneet predikaattien svset / 4, unsafe_svset / 4, foldl2 / 4, foldl2 / 6, foldr / 4, foldr2 / 6, map_foldl / 5, map_corresponding_foldl / 6, ja jäsen / 2.
  • Olemme lisänneet predikaattien version_array.foldl2 / 6, version_array.foldr / 4, ja version_array.foldr2 / 6 standardin kirjasto.
  • Olemme lisänneet semidet tilat ainutlaatuinen ja enimmäkseen-ainutlaatuinen akkujen seuraavat predikaattien:
  • 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
  • Olemme lisänneet predikaatti unsorted_aggregate2 / 6 ratkaisuihin moduuli standardin kirjasto.
  • Olemme lisänneet useita predikaatit ja toimintoja edellyttävät moduulin standardin kirjasto. Predikaatit pahoillani / 2 ja anteeksi / 3 kertomuksen puuttuessa ominaisuus, kun taas predikaattien odottamattomia / 2 ja odottamattomia / 3 raportti sisäisestä virheestä ohjelmassa; kaikilla on toiminto versiot liikaa. Predikaatti odottavat / 3 puhelut odottamaton jos ehto ei täyty. Meillä on nyt odottaa / 4 sekä odottaa / 3. Saat odottaa / 4 sekä odottaa / 3, ensimmäinen ja viimeinen perustelut ovat odotettavissa kunnon ja virheilmoitus, mutta näytteiden odottaa / 4 on kaksi argumentit keskellä määrittää virheen sijainnin (yleensä nimi moduulin ja predikaatin vastaavasti). Lisäsimme myös expect_not / 3 ja expect_not / 4, jotka ovat kuin odottaa / 3 ja odottaa / 4 vastaavasti, paitsi he odottavat edellytyksen * väärä *, ei ole totta.

Mitä uutta versiossa 10.04.2:

  • Tämä julkaisu on bug-fix release. Useita ongelmia, jotka aiheuttivat kääntäjä keskeyttää on korjattu, jotkut rikki RTTI toimintojen java luokan on vahvistettu, ja olemme lisänneet kiertää ongelma GCC versio 4.4.

Rajoitukset :

  • nykyinen toteutus ei vielä täysin täytäntöön Mercury kieltä. Tärkein rajoitukset nykyinen toteutus ovat seuraavat:
  • Emme salli varmaa aliasing vuonna tilassa järjestelmään. Ilman tätä, osittain instantioida tilat ovat käyttökelvottomia, ja niin ovat sisäkkäin ainutlaatuisia tiloja.
  • kääntäjä ei vielä käytä rakennetta uudelleen tai käännettäessä roskien keräys hyödyntää ainutlaatuisia tiloja.
  • tyyppi ja tila päättely ovat hieman epätäydellisiä.

  • Lisäksi suunnittelun päätöksiä tässä implemenation ovat määränneet seuraavia rajoja:
  • predikaatit ja toiminnot voivat olla enimmillään noin 1000 argumentteja.
  • Korkeamman asteen termit voi olla korkeintaan noin 500 argumentteja.

Vastaavia ohjelmistoja

byacc
byacc

3 Jun 15

SlimIt
SlimIt

14 Apr 15

ncc
ncc

3 Jun 15

Kommentit Mercury

Kommentteja ei löytynyt
Lisää kommentti
Ota kuvia!