Кіріспе

Шектеу логикасы бағдарламалау жүйесі

ECLiPSe – оңтайландыру, жоспарлау, кестелеу, ресурстарды бөлу, уақыт кестесін жасау, көлік және т.б. салаларында шектеу логикасы бағдарламалау қолданбаларын әзірлеу және іске қосуға арналған бағдарламалық жүйе. Сонымен қатар, ол комбинаторлық проблемаларды шешудің көптеген аспектілерін оқытуға да ыңғайлы, мысалы, проблеманы модельдеу, шектеу бағдарламалау, математикалық бағдарламалау және іздеу техникалары. Ол шектеулерді шешуге арналған кітапханаларды, жоғары деңгейдегі модельдеу және басқару тілін (Prolog-тың кеңейтілген түрі), үшінші тарап шешушілерімен байланыс интерфейстерін, интеграцияланған даму ортасын және басқа бағдарламаларға ендіруге арналған интерфейстерді қамтиды. ECLiPSe 1995 жылға дейін Мюнхендегі Еуропалық компьютер индустриясын зерттеу орталығында (ECRC), ал кейін 2005 жылға дейін Лондондағы Империал колледжінің жоспарлау және ресурстарды басқару орталығында (IC Parc) әзірленді. Оны Cisco Systems сатып алды. 2006 жылдың қыркүйегінде ол Mozilla Public License-қа ұқсас лицензия бойынша ашық кодты бағдарламалық жасақтама ретінде жарияланды және қазір SourceForge платформасында орналасқан.

Тіл

ECLiPSe тілі Prolog-пен толық үйлесімді және ISO Prolog-ты қоса алғанда, әртүрлі диалекттерді қолдайды. Декларативті тіл болғандықтан, ол мәселелерді сипаттау үшін модельдеу тілі ретінде де, жалпы мақсаттағы бағдарламалау тілі ретінде де қолданылуы мүмкін. Негізгі Prolog дерек типтерінен өзге, келесілер де қолбар: жолдар, шексіз дәлдіктегі бүтін сандар мен бөлшек сандар, сондай-ақ қозғалмалы нүктелік интервалдар. Массив синтаксисі және аттары бар құрылымдар да қолдалады және шектеулерді модельдеуде ерекше пайдалы. Логикалық итерация операторы көптеген қарапайым рекурсиялық схемалардың қажеттілігін жояды. ECLiPSe кең мүмкіндіктермен және Gecode шешуші кітапханасымен жабдықталған. ISO Prolog және басқа Prolog диалектілері (C Prolog, Quintus, SICStus, SWI Prolog) үшін үйлесімділік кітапханалары осы диалектілерде жазылған кітапханаларды қайта қолдануға мүмкіндік береді. Тарату жиынтығына басқа да қосымша кітапханалар, соның ішінде көптеген танымал ашық кітапханалар да кіреді.

Жүйелік архитектура

Жүйеге бастапқы кодты виртуалды машина кодына аударатын инкременттік компилятор кіреді. Компилятор индекс таңдауын, біріктіру ретін, басқару құрылымдарын ендіруді оңтайландырады және режим туралы ақпаратты ескере алады. Орындалу уақыты жүйесі виртуалды машинаны, стектер мен сөздіктердің қоқыс жинау арқылы автоматты жад басқаруды, оқиғаларды өңдеуді және деректерге бағытталған орындалуды жүзеге асырады. ECLiPSe нұсқалары OR параллелизмін жүзеге асырады. ECLiPSe компоненттерін бағдарламалық қамтамасызда C немесе C++ тілдеріндегі төменгі деңгейдегі интерфейс арқылы, немесе Java және Tcl тілдеріндегі жоғары деңгейдегі интерфейстер арқылы интеграциялауға болады.