ECLiPSe – шектеулі логикалық бағдарламалау жүйесі. Оптимизация, жоспарлау, кестелеу, ресурстарды бөлу сияқты мәселелерді шешуге арналған, Prolog тіліне негізделген құрал.
Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Мазмұны
Кіріспе
Шектеу логикасы бағдарламалау жүйесі
Constraint logic programming system
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) үшін үйлесімділік кітапханалары осы диалектілерде жазылған кітапханаларды қайта қолдануға мүмкіндік береді. Тарату жиынтығына басқа да қосымша кітапханалар, соның ішінде көптеген танымал ашық кітапханалар да кіреді.
The ECLiPSe language is largely backward compatible with Prolog and supports different dialects, including ISO Prolog. Due to being declarative, it can be used both as a modelling language to describe problems, and as a general purpose programming language. Beyond the basic Prolog data types, the following are available: strings, unlimited precision integer and rational numbers, and floating point intervals. Array syntax and structures with field names are also supported and especially useful in constraint modelling. A logical iteration construct eliminates the need for most simple recursion patterns. ECLiPSe provides comprehensive facilities and the Gecode solver library. Compatibility libraries for ISO Prolog and other Prolog dialects (C Prolog, Quintus, SICStus, SWI Prolog) enable the reuse of libraries written in those dialects. Other utility libraries, including a number of popular public domain ones, are included in the distribution.
Жүйелік архитектура
Жүйеге бастапқы кодты виртуалды машина кодына аударатын инкременттік компилятор кіреді. Компилятор индекс таңдауын, біріктіру ретін, басқару құрылымдарын ендіруді оңтайландырады және режим туралы ақпаратты ескере алады. Орындалу уақыты жүйесі виртуалды машинаны, стектер мен сөздіктердің қоқыс жинау арқылы автоматты жад басқаруды, оқиғаларды өңдеуді және деректерге бағытталған орындалуды жүзеге асырады. ECLiPSe нұсқалары OR параллелизмін жүзеге асырады. ECLiPSe компоненттерін бағдарламалық қамтамасызда C немесе C++ тілдеріндегі төменгі деңгейдегі интерфейс арқылы, немесе Java және Tcl тілдеріндегі жоғары деңгейдегі интерфейстер арқылы интеграциялауға болады.
The system includes an incremental compiler which translates source code into virtual machine code. The compiler optimizes index selection, unification order, inlining of control constructs and can take mode information into account. The runtime system implements the virtual machine, automatic memory management with garbage collection of stacks and dictionary, event handling and data driven execution. Versions of ECLiPSe implement OR parallelism. ECLiPSe components can be integrated into software via a low level C or C++ interface, or via high level interfaces to Java and Tcl.