Mercury

Screenshot Software:
Mercury
Szczegóły programowe:
Wersja: 13.05.1
Filmu: 15 Apr 15
Wywoływacz: Mercury Developers
Licencja: Wolny
Popularność: 11

Rating: 2.0/5 (Total Votes: 1)

Języki programowania logicznego już od ponad dwudziestu lat. Mimo spodziewanych korzyści języku bardzo wysokim poziomie w oparciu programowania rozwiniętych teorii logiki ponad konwencjonalnych języków programowania (takich jak C, C ++, Pascal i Ada) nie miały istotnego wpływu na branży komputerowej.
Rtęć jest nowy język logiki / programowanie funkcyjne, które łączy w sobie klarowność i wyrazistość deklaratywnego programowania z zaawansowanych funkcji analizy statycznej i wykrywania błędów.
Rtęć jest wysoce zoptymalizowany algorytm wykonanie zapewnia wydajność znacznie przekraczającą istniejących systemów programowania logicznego, i blisko do konwencjonalnych systemów programowania.
Rtęć zajmuje się problemami rozwoju programu na dużą skalę, umożliwiając modułowość, oddzielne kompilacji, oraz liczne optymalizacja / czas kompromisów

Co nowego w tym wydaniu:.

  • Ten naprawiające błędy poprawki uwolnienia zbudować problemy na Solaris i NetBSD i dodaje wsparcie dla wyboru kompilatora C # w czasie konfiguracji.
  • Różne inne drobne błędy zostały naprawione.
  • Są też pewne drobne dodatki do biblioteki standardowej.

Co nowego w wersji 13.05:

  • generacja 64-bitowych plików wykonywalnych w systemie Windows jest teraz.
  • czas kompilacji dla bardzo dużych programów zostały ulepszone.
  • Kilka nowych optymalizacje reprezentacji typu zostały dodane.
  • debugger ma teraz lepsze wsparcie dla obsługi połączeń klik wzajemnie rekurencyjnych na stosie.
  • wiązania w bibliotece GLFW został dodany do dystrybucji dodatków.
  • Zespoły generowane z C # backend może zostać podpisany z silnym nazwie.

Co nowego w wersji 11.01:

  • Dodaliśmy dwa nowe rodzaje zakresów do języka.
  • Zakres wprowadzone przez jednego z nowych słów kluczowych require_det, require_semidet, require_multi, require_nondet, require_cc_multi, require_cc_nondet, require_erroneous i require_failure, jak sama nazwa wskazuje, wymaga cel wewnątrz zakresu mieć daną determinizm.
  • Zakres wprowadzony przez require_complete_switch słów kluczowych wymaga cel wewnątrz zakresu, jeśli jest to przełącznik na zmiennej o nazwie zakresem, być kompletne switch, czyli mieć broń dla wszystkich symboli funkcyjnych w rodzaju włączonego zmiennej.
  • Dodaliśmy semidet tryby hash_table.fold / 4 i version_hash_table.fold / 4.
  • Dodaliśmy nowe predykaty i funkcje modułu assoc_list. Predykaty map_keys_only / 3 map_values_only / 3 i map_values ​​/ 3 uzupełnieniem funkcje o tej samej nazwie. Predykaty filtrować / 3, negated_filter / 3, filtr / 4, łączenie / 3, które również posiadają wersje funkcji, do pracy bardzo podobnych do orzeczników o tej samej nazwie w module listy, ale czy odpowiednie działania na klawiszach, a nie całą elementy listy.
  • Przeszliśmy moduł oceny leniwy z dystrybucją dodatków i do nowego standardowego modułu biblioteki o nazwie `leniwi". To zostało również backend-agnostykiem.
  • Dokonaliśmy zmian w module listy standardowej biblioteki:
  • Dodaliśmy nową źródłowe list.member_index0 / 3. To jest jak list.member / 2, z wyjątkiem, że to również przyjmuje parametr reprezentujący indeksu od zera do elementu w liście.
  • Dodaliśmy nową źródłowe list.map3_foldl / 7, który mapuje na liście produkuje trzy listy i jeden złożony wartość.
  • Dodaliśmy semidet tryby z unikalnych akumulatorów dla list.foldl3 / 8, list.foldl4 / 10, 12 / list.foldl5 i list.foldl6 / 14.
  • Dodaliśmy predykaty podzielić / 4/4 i divide_by_set do modułu tree_bitset standardowej bibliotece.
  • Dodaliśmy predykaty set_ctree234.member / 2 i set_ctree234.non_empty / 1. Musimy dodać funkcję set_ctree234.from_list / 1.
  • Dodaliśmy set_bbbtree.count orzecznik / 2 i set_bbbtree.count funkcji / 1. Zastępują orzecznik set_bbbtree.size / 2, który jest teraz przestarzała.
  • Dodaliśmy orzecznik set_ordlist.non_empty / 1.
  • Dodaliśmy set_tree234.non_empty źródłowe / 1 oraz set_tree234.from_list funkcji / 1.
  • Dodaliśmy predykaty set_unordlist.non_empty / 1 i set_unordlist.count / 2, a funkcja set_unordlist.count / 1.
  • Wszystkie moduły w bibliotece standardowej, które wdrażają zestawu ADT, (zestaw, set_ordlist, set_unordlist, set_bbbtree, set_tree234 i set_ctree234), obsługują obecnie składanych przez zestawy z maksymalnie sześciu akumulatorów. Tryby, które zapewniają wyjątkowe i najczęściej powtarzających się akumulatory do kompletu krotnie dodano również.
  • Zrobiliśmy następujące zmiany do modułu tablicy standardowej biblioteki:
  • Dodaliśmy funkcje unsafe_elem / 2 i dołączyć / 2.
  • Dodaliśmy predykaty svset / 4, unsafe_svset / 4, foldl2 / 4, foldl2 / 6, foldr / 4, foldr2 / 6, map_foldl / 5, map_corresponding_foldl / 6, a członek / 2.
  • Dodaliśmy predykaty version_array.foldl2 / 6, version_array.foldr / 4, i version_array.foldr2 / 6 do biblioteki standardowej.
  • Dodaliśmy semidet tryby z unikalnych i najczęściej powtarzających akumulatorów dla następujących predykatów:
  • 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
  • Dodaliśmy orzecznik unsorted_aggregate2 / 6 do modułu rozwiązań z biblioteki standardowej.
  • Dodaliśmy kilka predykatów i funkcje modułu wymaga standardowej bibliotece. Predykaty przepraszam / 2 i przepraszam / 3 Raport brak funkcji, podczas gdy predykaty nieoczekiwane / 2 i nieoczekiwane / 3 Raport wewnętrzny błąd w programie; wszystkie posiadają wersje funkcji też. Orzecznik spodziewać / 3 Połączenia nieoczekiwane, jeśli warunek nie jest spełniony. Mamy teraz spodziewać / 4, jak również spodziewać / 3. Dla spodziewać / 4, jak również spodziewać / 3, pierwsze i ostatnie argumenty są spodziewane stan i komunikat o błędzie, odpowiednio, ale oczekują / 4, są dwa argumenty w środku, aby określić lokalizację błędu (zazwyczaj nazwy modułu i orzeczenia, odpowiednio). Dodaliśmy również expect_not / 3/4 i expect_not, które są jak oczekiwać i spodziewać / 3/4 z tym wyjątkiem, że oczekują stan się * false *, nie jest prawdą.

Co nowego w wersji 10.04.2:

  • Ta wersja jest wersją bug-fix. Wiele problemów, które spowodowały, że kompilator przerwać zostały ustalone, niektóre połamane operacje RTTI w klasie java zostały ustalone i dodaliśmy obejście problemu z GCC 4.4.

Ograniczenia :

  • Obecna implementacja nie w pełni jeszcze wdrożyć język Mercury'ego. Główne ograniczenia bieżącej realizacji są następujące:
  • Nie zezwalamy na określony aliasing w systemie trybu. Bez tego, częściowo instancja tryby są bezużyteczne, a więc są zagnieżdżone unikalne tryby.
  • kompilator nie używa jeszcze struktury ponowne wykorzystanie lub kompilacji zbieranie śmieci wykorzystać unikalne tryby.
  • Typ i tryb wnioskowania są nieco niedoskonały.

  • W bbli Ponadto decyzje projektowe w tym implementacja zostały nałożone następujące ograniczenia:
  • predykaty i funkcje może mieć co najwyżej około 1000 argumentów.

  • Terminy
  • wyższego rzędu może mieć co najwyżej około 500 argumentów.

Podobne oprogramowanie

IGCC
IGCC

14 Apr 15

Guile
Guile

20 Feb 15

ncc
ncc

3 Jun 15

gears-coffeescript
gears-coffeescript

20 Feb 15

Komentarze do Mercury

Komentarze nie znaleziono
Dodaj komentarz
Włącz zdjęć!