Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Мазмұны
Кіріспе
Prolog бағдарламалау тілінің іске асырылуы
Implementation of the programming language Prolog
SWI Prolog – Prolog бағдарламалау тілінің тегін іске асырылуы, көбінесе оқыту және семантикалық веб-қосымшалары үшін қолданылады. Ол кең мүмкіндіктер жиынтығына, шектеулі логикалық бағдарламалау, көп жіптілік, бірліктерді тестілеу, графикалық интерфейс (GUI), Java, ODBC және басқаларымен байланыс, әдеби бағдарламалау, веб-сервер, SGML, RDF, RDFS, әзірлеушілерге арналған құралдар (графикалық интерфейсі бар IDE, соның ішінде дебьюгер және профильдеуші) және толыққанды құжаттаманы қамтиды. SWI Prolog Unix, Windows, Macintosh және Linux платформаларында жұмыс істейді. SWI Prolog 1987 жылдан бері үздіксіз дамып келеді. Оның негізгі авторы – Ян Вилемейкер. SWI атауы Sociaal Wetenschappelijke Informatica ("Әлеуметтік ғылымдар информатикасы") деген сөзден шыққан, бұл Вилемейкер SWI Prolog-ты әзірлеуді бастаған кезде Амстердам университетіндегі топтың бұрынғы атауы. Аталған топтың атауы қазір HCS (Адам-компьютер зерттеулері) деп өзгертілген.
SWI Prolog is a free implementation of the programming language Prolog, commonly used for teaching and semantic web applications. It has a rich set of features, libraries for constraint logic programming, multithreading, unit testing, GUI, interfacing to Java, ODBC and others, literate programming, a web server, SGML, RDF, RDFS, developer tools (including an IDE with a GUI debugger and GUI profiler), and extensive documentation. SWI Prolog runs on Unix, Windows, Macintosh and Linux platforms. SWI Prolog has been under continuous development since 1987. Its main author is Jan Wielemaker. The name SWI is derived from Sociaal Wetenschappelijke Informatica ("Social Science Informatics"), the former name of the group at the University of Amsterdam, where Wielemaker was employed when he initiated the development of SWI Prolog. The name of this group has changed to HCS (Human Computer Studies).
Орындау үлгісі
SWI Prolog Prolog-тың Уоррен абстракті машинасының орындалу моделіне негізделмеген. Оның орнына, ол ZIP виртуалды машинасының кеңейтілген нұсқасына негізделген, бұл Prolog үшін тек жеті командадан тұратын қарапайым тілді іске асыратын минималды виртуалды машина. SWI Prolog-қа тән кеңейтулер бірнеше жолмен өнімділікті арттыруға бағытталған: біріктіруді қолдау үшін қосымша командалар енгізілген, предикаттарды шақыру, жиі қолданылатын кейбір кіріктірілген предикаттар, арифметика, бақылау ағыны және сәтсіздік ретінде жоққа шығару үшін қолданылады. Prolog осы тілге оңай компиляцияланады, ал абстракті машинаның коды Prolog-қа оңай декомпиляцияланады. Бұл мүмкіндік компиляцияланған және интерпретацияланған кодты араластырып орындау үшін жиі пайдаланылады.
SWI Prolog is not based on the Warren Abstract Machine execution model of Prolog. Instead, it is based on an extended version of the ZIP virtual machine, a minimal virtual machine for Prolog implementing a simple language consisting of only seven instructions. SWI Prolog specific extensions aim at improving performance in several ways: ad hoc instructions are introduced to support unification, predicate invocation, some frequently used built in predicates, arithmetic, control flow, and negation as failure. Prolog can easily be compiled into this language, and the abstract machine code is easily decompiled back into Prolog. This feature is often exploited to interleave compiled and interpreted code execution.
Шектеу логикасын бағдарламалау
Шектеулі логикалық бағдарламалау мүмкіндігі SWI Prolog өмірінде біраз кеш пайда болды, себебі негізгі қолдау болмады. Бұл 2004 жылдың басында тілге атрибутталған айнымалылар қосылғанда өзгерді. Leuven CHR кітапханасы SWI Prolog-қа көшірілген алғашқы CLP кітапханасы болды. SWI Prolog-тың INCLP(R) кітапханасын (De Koninck et al. 2006) атап өтейік, ол нақты сандар бойынша сызықтық емес шектеулерді қамтамасыз етеді және CHR негізінде жүзеге асырылды. Кейін Кристиан Холцбаурдың CLP(QR) кітапханасы және шекті доменді CLP(FD) шешушісі көшірілді. Соңында, бульдік CLP(B) шешушісі қосылды.
Constraint logic programming functionality came rather late in the lifetime of SWI Prolog, because it lacked the basic support. This changed early in 2004, when attributed variables were added to the language. The Leuven CHR library was then the first CLP library to be ported to SWI Prolog. We mention SWI Prolog's INCLP(R) library (De Koninck et al. 2006), which provides non linear constraints over the reals and was implemented on top of CHR. Later came a port of Christian Holzbaur's CLP(QR) library and a finite domain CLP(FD) solver. Finally, a boolean CLP(B) solver was added.
SWI-Prolog үшін кеңейтулер
SWI Prolog анықталған ереже грамматикасына негізделген веб-фреймворкпен бірге орнатылады. SWI Prolog сұранымдарын Pengines жүйесі арқылы бірнеше серверге және веб-беттерге таратуға болады.
SWI Prolog installs with a web framework based on definite clause grammars. SWI Prolog queries may be distributed over several servers and web pages through the Pengines system.
XPCE
XPCE – SWI Prolog, Lisp және басқа да интерактивті және динамикалық типтегі тілдер үшін платформадан тәуелсіз, объектіге бағытталған GUI құралдар жиынтығы. XPCE тілден тәуелсіз болу үшін жасалғанмен, ол көбінесе Prolog-пен танымал болды. XPCE графикалық құралдар жиынтығының әзірленуі 1987 жылы SWI Prolog-пен бірге басталды. Ол түймелерді, мәзірлерді, жылғыштарды, қойындыларды және басқа да негізгі GUI элементтерін қолдайды. XPCE SWI Prolog қолдайтын барлық платформалар үшін қолжетімді. PceEmacs – SWI Prolog құрамына кіретін редактор. PceEmacs – Prolog (және XPCE) тілінде іске асырылған Emacs клоны. Ол дұрыс түсініктемелерді, синтаксистің ерекшеленуін, SWI Prolog талдағышын шақыру арқылы толық синтаксистік тексеруді, жалғыздық айнымалылар туралы ескертулерді және Prolog дерекқорынан алынған ақпарат негізінде предикаттарды анықтауды қолдайды.
XPCE is a platform independent object oriented GUI toolkit for SWI Prolog, Lisp and other interactive and dynamically typed languages. Although XPCE was designed to be language independent, it has gained popularity mostly with Prolog. The development XPCE graphic toolkit started in 1987, together with SWI Prolog. It supports buttons, menus, sliders, tabs and other basic GUI widgets. XPCE is available for all platforms supported by SWI Prolog. PceEmacs is a SWI Prolog builtin editor. PceEmacs is an Emacs clone implemented in Prolog (and XPCE). It supports proper indentation, syntax highlighting, full syntax checking by calling the SWI Prolog parser, warning for singleton variables and finding predicate definitions based on the source information from the Prolog database.
Интерфейстер
JPL — Java мен Prolog арасындағы екі жақты интерфейс. Ол SWI Prolog және Java SDK талап етеді. Ол SWI Prolog-тың бір бөлігі ретінде орнатылады.
JPL is a bidirectional interface between Java and Prolog. It requires both SWI Prolog and Java SDK. It is installed as a part of SWI Prolog.