Введение
Система логического программирования с ограничениями ECLiPSe – это программная система для разработки и развертывания приложений логического программирования с ограничениями, например, в таких областях, как оптимизация, планирование, составление расписаний, распределение ресурсов, организация перевозок и т. д. Она также подходит для обучения большинству аспектов решения комбинаторных задач, например, моделированию задач, программированию с ограничениями, математическому программированию и методам поиска. Система включает в себя библиотеки решателей ограничений, язык моделирования и управления высокого уровня (являющийся расширением Prolog), интерфейсы к сторонним решателям, интегрированную среду разработки и интерфейсы для встраивания в другие среды. ECLiPSe разрабатывалась до 1995 года в Европейском исследовательском центре компьютерной индустрии (ECRC) в Мюнхене, а затем до 2005 года в Центре планирования и контроля ресурсов Имперского колледжа Лондона (IC Parc). Она была приобретена компанией Cisco Systems. В сентябре 2006 года система была выпущена как программное обеспечение с открытым исходным кодом под лицензией, эквивалентной Mozilla Public License, и в настоящее время размещается на SourceForge.
ECLiPSe is a software system for the development and deployment of constraint logic programming applications, e. g., in the areas of optimization, planning, scheduling, resource allocation, timetabling, transport, etc. It is also suited for teaching most aspects of combinatorial problem solving, e. g., problem modeling, constraint programming, mathematical programming, and search techniques. It contains constraint solver libraries, a high level modeling and control language (a superset of Prolog), interfaces to third party solvers, an integrated development environment and interfaces for embedding into host environments. ECLiPSe was developed until 1995 at the European Computer‐Industry Research Centre (ECRC) in Munich, and then until 2005 at the Centre for Planning and Resource Control at Imperial College London (IC Parc). It was purchased by Cisco Systems. In September 2006, it was released as open source software under an equivalent of the Mozilla Public License, and is now hosted on SourceForge.
Язык
Язык ECLiPSe во многом обратно совместим с Prolog и поддерживает различные диалекты, включая ISO Prolog. Благодаря своей декларативности, он может использоваться как для моделирования и описания задач, так и в качестве языка программирования общего назначения. Помимо базовых типов данных Prolog, доступны следующие: строки, целые и рациональные числа произвольной точности, а также интервалы с плавающей точкой. Поддерживаются также синтаксис массивов и структуры с именованными полями, которые особенно полезны при моделировании ограничений. Логическая конструкция итерации позволяет избежать использования большинства простых шаблонов рекурсии. ECLiPSe предоставляет широкие возможности и включает библиотеку решателя Gecode. Библиотеки совместимости для ISO Prolog и других диалектов Prolog (C Prolog, Quintus, SICStus, SWI Prolog) обеспечивают возможность повторного использования библиотек, написанных для этих диалектов. В дистрибутив также включены другие полезные библиотеки, в том числе ряд популярных библиотек с открытым исходным кодом.
Архитектура системы
Система включает инкрементальный компилятор, который преобразует исходный код в код виртуальной машины. Компилятор оптимизирует выбор индексов, порядок унификации, подстановку встроенных конструкций управления и может учитывать информацию о модах. Среда выполнения реализует виртуальную машину, автоматическое управление памятью со сборкой мусора для стеков и словарей, обработку событий и выполнение, управляемое данными. Версии ECLiPSe поддерживают OR-параллелизм. Компоненты ECLiPSe могут быть интегрированы в программное обеспечение через низкоуровневый интерфейс C или C++ либо через высокоуровневые интерфейсы к Java и Tcl.