Затмение
Разработчики) | Европейский исследовательский центр компьютерной индустрии (ECRC), Мюнхен Центр планирования и контроля ресурсов, Имперский колледж Лондона (IC-Parc) Сиско Системы |
---|---|
Начальная версия | 1992 год |
Стабильная версия | 7.0
/ 22 января 2018 г |
Написано в | С , Пролог |
Операционная система | Кросс-платформенный |
Доступно в | Английский |
Тип | Программирование логики ограничений |
Лицензия | Публичная версия Mozilla (MPL) |
Веб-сайт | затмение |
ECLiPSe — это программная система для разработки и внедрения приложений программирования логики ограничений , например, в областях оптимизации , планирования , составления графиков , распределения ресурсов , составления расписаний, транспорта и т. д. Она также подходит для обучения большинству аспектов комбинаторного решения задач. например, моделирование проблем , программирование в ограничениях , математическое программирование и методы поиска . [1] Он содержит решателей библиотеки ограничений , высокоуровневый язык моделирования и управления (расширение Пролога ), интерфейсы к сторонним решателям, интегрированную среду разработки и интерфейсы для встраивания в хост-среды.
ECLiPSe разрабатывался до 1995 года в Европейском исследовательском центре компьютерной индустрии (ECRC) в Мюнхене , а затем до 2005 года в Центре планирования и управления ресурсами Имперского колледжа Лондона (IC-Parc). Его приобрела компания Cisco Systems . В сентябре 2006 года оно было выпущено как программное обеспечение с открытым исходным кодом под эквивалентом общественной лицензии Mozilla и теперь размещено на SourceForge .
Язык [ править ]
Язык ECLiPSe [2] в значительной степени обратно совместим с Прологом и поддерживает различные диалекты, включая ISO Prolog . Благодаря своей декларативности его можно использовать как в качестве языка моделирования для описания проблем, так и в качестве языка программирования общего назначения .
Помимо основных типов данных Пролога, доступны следующие: строки , целые и рациональные числа неограниченной точности, а также интервалы с плавающей запятой . Синтаксис массивов и структуры с именами полей также поддерживаются и особенно полезны при моделировании ограничений.
Логическая итерационная конструкция [3] устраняет необходимость в большинстве простых шаблонов рекурсии .
ECLiPSe предоставляет комплексные возможности [2] для реализации , управляемого данными поведения управления . К ним относятся декларативные условия задержки, а также примитивы метапрограммного управления, такие как явная приостановка цели, гибкие средства запуска и приоритеты выполнения. Вместе с типом данных атрибутированной переменной это ключ ко многим расширениям базового языка логического программирования , включая все функциональные возможности, основанные на ограничениях. Система вызывает определяемые пользователем обработчики событий, когда она встречает атрибутированные переменные в определенных контекстах, например при унификации.
Система модулей контролирует видимость предикатов, нелогических хранилищ, преобразований источника и настроек синтаксиса. Интерфейсы модулей можно расширять и ограничивать, а модули, написанные на разных диалектах языков, можно смешивать в одном приложении.
Программы могут содержать структурированные комментарии, на основе которых можно создавать справочную документацию.
Библиотеки [ править ]
ECLiPSe предоставляет несколько библиотек решателей ограничений , которые можно использовать в прикладных программах:
Арифметические ограничения для конечных областей, ограничения конечного множества, обобщенное распространение, интервальные рассуждения над нелинейными ограничениями, интерфейсы для внешних симплексных решателей, правила обработки ограничений (CHR) и многое другое.
Другие библиотеки реализуют такие методы поиска, как поиск по ветвям и границам , поиск на основе восстановления, поиск с ограниченным несоответствием.
ECLiPSe взаимодействует с внешними решателями, в частности COIN-OR , CPLEX , Gurobi и Xpress-MP . с решателями линейного и смешанно-целочисленного программирования [4] и библиотека решателей Gecode .
Библиотеки совместимости для ISO Prolog [5] и другие диалекты Пролога (C-Prolog, Quintus , SICStus , SWI-Prolog ) позволяют повторно использовать библиотеки, написанные на этих диалектах.
другие служебные библиотеки, в том числе ряд популярных общедоступных В дистрибутив включены и .
Архитектура системы [ править ]
Система включает в себя инкрементальный компилятор, который преобразует исходный код в код виртуальной машины . Компилятор оптимизирует выбор индекса, порядок унификации, встраивание управляющих конструкций и может учитывать информацию о режиме.
Система времени выполнения реализует виртуальную машину , автоматическое управление памятью со сборкой мусора стеков и словаря, обработку событий и выполнение, управляемое данными. Версии ECLiPSe реализуют ИЛИ- параллелизм .
Компоненты ECLiPSe можно интегрировать в программное обеспечение через низкоуровневый интерфейс C или C++ или через высокоуровневые интерфейсы для Java и Tcl .
См. также [ править ]
Ссылки [ править ]
- ^ «Веб-сайт ECLiPSe» . eclipseclp.org .
- ^ Перейти обратно: а б Шимпф, Иоахим; Шен, Киш (2012). «ECLiPSe - от LP к CLP». Теория и практика логического программирования . 12 (1–2): 127–156. arXiv : 1012.4240 . дои : 10.1017/S1471068411000469 . S2CID 11827081 .
- ^ Шимпф, Иоахим (1 августа 2002 г.). Логические циклы (PDF) . Логическое программирование, 18-я Международная конференция, ICLP 2002, Копенгаген, Дания, 29 июля - 1 августа 2002 г. Труды: Springer-Verlag. стр. 224–238. ISBN 978-3-540-45619-3 .
{{cite book}}
: CS1 maint: местоположение ( ссылка ) - ^ Шен, К.; Шимпф, Дж. (2005). «Eplex: использование решателей математического программирования для программирования логики с ограничениями». Принципы и практика программирования с ограничениями - CP 2005 . Конспекты лекций по информатике. Том. 3709. Принципы и практика программирования с ограничениями - CP 2005: 11-я Международная конференция, CP 2005, Ситжес: Springer. стр. 622–636. дои : 10.1007/11564751_46 . ISBN 978-3-540-32050-0 .
{{cite book}}
: CS1 maint: местоположение ( ссылка ) - ^ «Декларация соответствия ECLiPSe ISO» . eclipseclp.org .
Внешние ссылки [ править ]
- Официальный веб-сайт
- ECLiPSe на SourceForge
- «Программирование логики с ограничениями с использованием ECLiPSe» , учебник Кшиштофа Апта и Марка Уоллеса
- Краткое и понятное руководство по программированию логики с ограничениями с помощью ECLiPSe , учебник Антони Нидерлинского
- Веб-сайт электронного обучения ECLiPSE (с видеоуроками)
- Программирование логики ограничений
- Бесплатные компиляторы и интерпретаторы
- Логические языки программирования
- Семейство языков программирования Пролог
- Динамически типизированные языки программирования
- Языки программирования высокого уровня
- Бесплатное программное обеспечение, написанное на C.
- Бесплатное программное обеспечение, написанное на Прологе.
- Программное обеспечение, использующее лицензию Mozilla.
- Кроссплатформенное бесплатное программное обеспечение