an object oriented programming framework for the Prolog language.



PLO is an object oriented programming framework for Prolog, distributed under the GNU Lesser General Public License.

I started developing it because I needed a Prolog object oriented framework for other of my open source projects, pwig.

I had been playing with LogTalk, probably the most popular OO framework for Prolog, and used it on some early pwig releases, but at some point I realised that it really didn't fit the task. I search for other alternatives, but all I could find were lacking some essential feature (i.e. multiple inheritance, being actively maintained, free availability, support for SWI-Prolog), so, someday I just got hands on, and started writting PLO.

PLO borrows ideas from several other languages and OO frameworks as Python, PCE or LogTalk.

It's major features are:

PLO is a very flexible framework. A meta-object protocol (MOP) allows to redefine the mechanisms of inheritance, method dispatch, class instantiation and so on. OO extensions like "Design By Contract", prototypes, "sandwich" classes with before and after methods, automatic persistence, event generation, etc.

PLO is also an ideal option for a wrapping layer around foreign objects, i.e., CORBA, COM or SOAP, Java, C++, etc.


An early release of PLO is available from the download section of the project pages at SourceForge.


The PLO documentation is included on the source package, on the subdirectory docs.

It is also available online from here.

todo & bugs


Salvador Fandiño García
Last modified: Sat Dec 11 14:02:56 PST 2004