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-бітових виконуваних на вікнах тепер підтримується.
  • раз компіляція для дуже великих програм були покращені.
  • Кілька нових представництва тип оптимізації були додані.
  • відладчик тепер має кращу підтримку для обробки кліки взаємно рекурсивних викликів в стек.
  • зв'язування з бібліотекою 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.

Обмеження

  • Поточна реалізація ще не повністю реалізувати мову ртуті. Основні обмеження поточної реалізації є наступні:
  • Ми не дозволяємо певні поєднання імен в системі режиму. Без цього, частково втілені режими непридатними, і так вкладені унікальних режимів.
  • компілятор ще не використовувати структури повторного використання або під час компіляції збірки сміття, щоб використовувати унікальні режими.
  • Тип і режим виведення є трохи недосконала.

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

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

Схожі програми

Stratego/XT
Stratego/XT

3 Jun 15

ADP
ADP

17 Feb 15

R
R

17 Feb 15

ncc
ncc

3 Jun 15

Mercury

Коментар не знайдено
додати коментар
Включіть картинки!
Пошук за категоріями