Lambda the Ultimate

inactiveTopic The O'Ciao Approach to OO Logic Programming
started 2/26/2003; 4:41:50 PM - last post 2/28/2003; 4:12:36 AM
Brent Fulgham - The O'Ciao Approach to OO Logic Programming  blueArrow
2/26/2003; 4:41:50 PM (reads: 1231, responses: 1)
The O'Ciao Approach to OO Logic Programming
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:goal0.0939000 ms
mod:goal0.0003627 ms

Calling methods using OO method dispatch:
X:goal0.0120500 ms
obj:goal0.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

Ehud Lamm - Re: The O'Ciao Approach to OO Logic Programming  blueArrow
2/28/2003; 4:12:36 AM (reads: 440, responses: 0)
It would be interesting to see examples showing why OO+LP is useful. I am not sure of the added value of the approach, compare to, say, Prolog+a module system.