Angel Pineda and Francisco Bueno. The O'Ciao Approach to Object Oriented Logic Programming
One thing you see periodically among the various logic languages (and specifically Prolog) is the implementation of an Object Oriented layer. The success of these efforts seem largely unused by most Prolog developers. LogTalk is perhaps the best-known and highest quality implementation of an "after market" OO system for Prolog.
One thing most of these efforts share (in my biased opinion) is a somewhat unnatural feeling syntax, and a sort of ad-hoc approach to the language extension (much like Perl's OO notation). Another glum reality is that these extensions often add much overhead, harming performance and executable size.
In contrast, this paper outlines modifications made to the Ciao Prolog system that seems to provide a better syntax while achieving good performance.
Examples:
Calling methods through the regular module system:
X:goal | 0.0939000 ms |
mod:goal | 0.0003627 ms |
Calling methods using OO method dispatch:
X:goal | 0.0120500 ms |
obj:goal | 0.0004570 ms |
The OO overhead is fairly insignificant.
In general, the CLIPS group at the Technical University of Madrid (UPM) has quite a lot of interesting Logic/CLP related resources and is well worth a visit.
Posted to Logic/Declerative by Brent Fulgham on 2/26/03; 4:48:55 PM
|