Обектно-ориентирано програмиране на език Prolog

От многото индустриални обектно-ориентирани разширения на езици, които се разработват по все повече и повече начини, един от най-интересните е Prolog ++, обектно-ориентирана версия на Prolog, създадена от Logic Programming Associates (LPA). LPA отдавна е сред основните доставчици на Prolog и има версии на езика както за компютър, така и за Macintosh.

Тази статия разглежда MacObject, версията на Prolog ++ за Macintosh. MacObject се използва заедно с MacProlog 3.1. И така, какво предлага Prolog ++, което други обектно-ориентирани рамки не могат да предложат и как обектно-ориентираното разширение се вписва в език, базиран на правила?

Пролог и Пролог++

Prolog е език за намиране на решения. Това е декларативен език, т.е. за неговото решаване може да се използва формална дефиниция (настройка) на даден проблем. Прологът определя логическите връзки в проблема като различни от поетапното решение на този проблем.

Централната част на Prolog са инструментите за извод, които решават заявки, използвайки даден набор от факти и правила, които се наричат ​​твърдения. Prolog също няма разделение на типа и може динамично да добавя правила и факти към изводите. По този начин той е гъвкав език и е по-подходящ за обектно-ориентирано разширение, отколкото силно типизиран език като Pascal.

Prolog ++ е допълнение към стандартния Prolog. Всички езикови свойства все още са достъпни за програмистите. Следователно Prolog ++ може да бъде отнесен към групата на хибридните езици, от които Object Pascal и C се считат++.

Разширението Prolog ++ поддържа всички свойства, които обикновено се срещат в обектно-ориентираните езици: концепциите за обекти и класове, единично и множествено наследяване, подкласиране и съобщения. Поддържат се и няколко разширени функции, открити в езици като C ++ и Smalltalk, включително публични и частни методи.

Интересна характеристика е поддръжката в управляван от данни програмен език. Тази техника, която може да се нарече и „управлявано от събития“ програмиране, се използва в повечето обектно-ориентирани програмни езици, особено тези, предназначени за машини с интерфейс, управляван от мишката.

Обектно-ориентирана програма отговаря на събития, които определят потока на управление. В Prolog ++ програмирането, управлявано от данни, се постига с помощта на концепцията за демони. Демонът е обект, чиито методи се извикват при определени събития и по този начин могат да се използват за поддържане на програмиране, управлявано от данни.

Самият език се основава на концепцията за съобщения. Програма Prolog ++ е изградена около много обекти Prolog ++, които обменят съобщения. В този смисъл Prolog ++ е по-близо до чист обектно-ориентиран език като Smalltalk, отколкото C ++ или Object Pascal. Дефинициите на обекти се изграждат въз основа на повиквания

и методите се дефинират по почти същия начин, както в други обектно-ориентирани езици. За да посочите наследяване, можете изрично да посочите кой метод на кой обект трябва да се наследи, което е необходимо за множествено наследяване.

Използване на MacProlog

Инсталирането на MacObject е просто: просто трябва да пренапишете всички файлове в директория на вашия твърд диск и да стартирате MacObject или един от неговите документи. Това зарежда стартовия файл на MacObject и добавя друго меню, наречено "обекти" към списъка с менюта.

Обектното меню съдържа разширения към средата на MacProlog, включително команди за отваряне и затваряне на обектни йерархии и изпращане на съобщения между обекти. Продуктът се предлага с набор от примерни програми, включително проблем с училищното разписание, класически банков пример и програма за управление на складове.

Всички примери имат отделни обектни йерархии, които предоставят графичен начин за изследване на програми.

Една от най-добрите характеристики на MacProlog е, че той се вписва перфектно в интерфейса на Macintosh и по-специално използва чудесно графичните възможности на машината. MacObject добави естествено разширение към тази среда и направи системата много по-лесна за управление.