OL(P): Object Layer for Prolog This is to announce OL(P), an object-oriented extension to Prolog. Version 1.1 can be installed for SICStus Prolog 2.1, SICStus Prolog 0.6, and QUINTUS Prolog. Object Layer for Prolog, OL(P), provides an object-oriented structuring and reuse mechanism for Prolog. The primary goal of OL(P) is to provide this mechanism in a way that is performance and semantics preserving. This is achieved by compiling the object- oriented layer to Prolog without introducing any side-effects. Thus, Prolog's computational model is retained, and meta-programs can easily be adapted from Prolog. Full Prolog can be used in OL(P), and different Prolog variants are allowed as base languages. OL(P) takes the view of objects as collections of predicates (called methods). To Prolog, OL(P) 1.1 adds objects with methods, data encapsulation, instances, and multiple inheritance. Object methods can access Prolog predicates and vice versa. The OL(P) incremental compiler translates OL(P) programs to Prolog programs that don't need runtime interpretation (e.g., no search is needed for inheritance). OL(P) 1.1 comes with prepared installation for SICStus Prolog and QUINTUS Prolog (on UNIX), documentation, simple built-in project management, some libraries, and example programs. The source is included, so you can port OL(.) to different platforms, different Prolog systems, and different logic programming languages. Markus P.J. Fromherz You can get the OL(P) software by anonymous FTP from (or <13.1.64.94>), directory /pub/ol. For example, type in a shell after the prompts: % ftp parcftp@parc.xerox.com ftp> cd /pub/ol ftp> mget * Then follow the instructions in the file `README'. 6/23/93 Changes 1.0 -> 1.1: - Provide settings for SICStus Prolog 0.6 and QUINTUS Prolog users. (Thanks to Jose Alberto, Univ. of Maryland, for helping me out there.) - Put some operators in parentheses so the Quintus Prolog parser won't complain. - Added a check to the portray/1 clause for method goals `O(M,S,I)', which are now display as `in O: S(I)::M' only if M is a method of O.