Mercury

Скриншот программы:
Mercury
Детали программы:
Версия: 13.05.1
Дата загрузки: 15 Apr 15
Разработчик: Mercury Developers
Тип распространения: Бесплатная
Популярность: 11

Rating: 2.0/5 (Total Votes: 1)

языки логического программирования были вокруг в течение более чем двадцати лет. Несмотря на ожидаемые преимущества языка программирования очень высокого уровня, основанной на хорошо развитой теории логики по сравнению с традиционными языками программирования (таких как C, C ++, Pascal и Ada) они не имели существенного влияния на компьютерной индустрии.
Ртуть является новая логика / функциональный язык программирования, который сочетает в себе четкость и выразительность декларативного программирования с передовыми статического анализа и обнаружения ошибок возможностей.
Ртуть оптимизированный алгоритм выполнения обеспечивает эффективность намного превышает существующие системы логического программирования, и близко с традиционными системами программирования.
Меркурий рассматриваются проблемы развития крупномасштабной программы, что позволяет модульность, раздельная компиляция, а также многочисленные оптимизации / время компромиссов

Что нового В этом выпуске:.

  • Это исправления ошибок и исправления релиз построить проблем на Solaris и NetBSD и добавляет поддержку для выбора C #, компилятор во время конфигурации.
  • Различные другие незначительные ошибки были исправлены.
  • Есть также некоторые незначительные дополнения к стандартной библиотеке.

Что нового в версии 13.05:

  • Поколение 64-битных исполняемых Windows, теперь поддерживается.
  • раз компиляции для очень больших программ были улучшены.
  • Несколько новых представление типа оптимизации были добавлены.
  • Отладчик теперь лучше поддержку для обработки клик взаимно рекурсивных вызовов в стеке.
  • Привязка к библиотеке GLFW был добавлен к распределению Доп.
  • Агрегаты, полученные с C #, серверной теперь могут быть подписаны с сильным именем.

Что нового в версии 11.01:

  • Мы добавили два новых вида областей в языке.
  • Область применения введен одним из новых ключевых слов require_det, require_semidet, require_multi, require_nondet, require_cc_multi, require_cc_nondet, require_erroneous и require_failure, как следует из названия, требует цели внутри рамки, чтобы данный детерминизм.
  • Область применения введен ключевому слову require_complete_switch требует цели внутри рамки, если это переключатель на переменную с именем объемом, чтобы быть полным переключатель, т.е. иметь оружие для всех функциональных символов в тип включенном переменной.
  • Мы добавили semidet режимы для hash_table.fold / 4 и version_hash_table.fold / 4.
  • Мы добавили новые предикаты и функции модуля assoc_list. Предикаты map_keys_only / 3 map_values_only / 3 и map_values ​​/ 3 дополнением функции с тем же именем. Предикаты фильтр / 3, negated_filter / 3, фильтр / 4, слияние / 3, которые также имеют функции версии, делать работу, очень похожие на предикатов с тем же именем в модуле Список, но делать соответствующие операции на ключи, а целых Список элементов.
  • Мы переехали ленивый модуль оценки из распределения статистов и в новой стандартной библиотеки под названием модуля `ленивый. Это был также достигнут базовая агностик.
  • Мы внесли изменения в модуле Список стандартной библиотеки:
  • Мы добавили новый предикат list.member_index0 / 3. Это как list.member / 2, за исключением, что он также принимает параметр, представляющий нуля индекс элемента в списке.
  • Мы добавили новый предикат list.map3_foldl / 7, который отображает по списку производства три списка и один сложенный значение.
  • Мы добавили semidet режимов с уникальными аккумуляторов для list.foldl3 / 8, list.foldl4 / 10, list.foldl5 / 12, и list.foldl6 / 14.
  • Мы добавили предикаты разделить / 4 и divide_by_set / 4 к tree_bitset модуля стандартной библиотеки.
  • Мы добавили предикаты set_ctree234.member / 2 и set_ctree234.non_empty / 1. У нас есть добавить функцию set_ctree234.from_list / 1.
  • Мы добавили предикат set_bbbtree.count / 2 и функция set_bbbtree.count / 1. Они заменить предикат set_bbbtree.size / 2, который в настоящее время не используется.
  • Мы добавили предикат set_ordlist.non_empty / 1.
  • Мы добавили предикат set_tree234.non_empty / 1 и функция set_tree234.from_list / 1.
  • Мы добавили предикаты set_unordlist.non_empty / 1 и set_unordlist.count / 2, а функция set_unordlist.count / 1.
  • Все модули стандартной библиотеки, которые реализуют набор ADT, (набор, set_ordlist, set_unordlist, set_bbbtree, set_tree234 и set_ctree234), теперь поддерживают складывающиеся над множествами до шести аккумуляторов. Режимы, которые обеспечивают уникальные и в основном-уникальные аккумуляторы для множества раза были также добавлены.
  • Мы сделали следующие изменения в модуль массива стандартной библиотеки:
  • Мы добавили функции unsafe_elem / 2 и добавить / 2.
  • Мы добавили предикаты svset / 4, unsafe_svset / 4, foldl2 / 4, foldl2 / 6, foldr / 4, foldr2 / 6, map_foldl / 5, map_corresponding_foldl / 6, и член / 2.
  • Мы добавили предикаты version_array.foldl2 / 6, version_array.foldr / 4, и version_array.foldr2 / 6 в стандартной библиотеке.
  • Мы добавили semidet режимов с уникальными и в основном-уникальных аккумуляторов для следующих предикатов:
  • 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
  • Мы добавили предикат unsorted_aggregate2 / 6 с модулем решений стандартной библиотеки.
  • Мы добавили несколько предикатов и функций в модуле требуют стандартной библиотеки. Предикаты извините / 2 и извините / 3 Отчет отсутствие признака, в то время как предикаты неожиданные / 2 и неожиданные / 3 Доклад о внутренней ошибке в программе; у всех есть функция версии тоже. Предикат ожидать / 3 звонки неожиданным, если условие не выполнено. Теперь у нас есть ожидание / 4, а также рассчитывать / 3. Для ожидание / 4, а также рассчитывать / 3, первые и последние аргументы ожидаемый состояние и сообщение об ошибке, соответственно, но с ожидать / 4, есть два аргумента в середине, чтобы указать местоположение ошибки (обычно название модуля и предиката, соответственно). Мы также добавили expect_not / 3 и expect_not / 4, которые, как ожидают, / 3 и ожидать / 4 соответственно, за исключением того, что они ожидают, условие было ложным * * не верно.

Что нового в версии 10.04.2:

  • Этот релиз релиз ошибка-фикс. Ряд проблем, которые привели к компилятору прервать были зафиксированы некоторые сломанные операции RTTI в Java классе были зафиксированы, и мы добавили способ обхода проблемы с GCC версии 4.4.

Ограничения

  • Текущая реализация еще не полностью реализовать язык Mercury. Основные ограничения текущей реализации являются следующие:
  • Мы не позволяем определенные совмещения имен в системе режима. Без этого, частично экземпляры режимы непригодными, и так вложены уникальных режимов.
  • компилятор еще не использовать структуры повторного использования или во время компиляции мусора использовать уникальные режимы.
  • Тип и режим вывода немного несовершенна.

  • <класс Li = ""> bbli Кроме того, проектные решения в этой реализации внешних наложили следующие ограничения:
  • Предикаты и функции могут иметь самое о 1000 аргументов.

  • Условия
  • высшего порядка может иметь не более 500 аргументов о.

Похожие программы

Chapel
Chapel

11 May 15

FFC
FFC

17 Feb 15

DOS33
DOS33

3 Jun 15

Комментарии к Mercury

Комментарии не найдены
добавить комментарий
Включите картинки!