Publications » Moving Prolog Toward Objects

Moving Prolog Toward Objects

Enrico Denti, Antonio Natali, Andrea Omicini
This work presents the main features of CSM, a contextual logic programming system (fully compatible with the SICStus Prolog programming environment) which aims at supporting evolutive software development methodologies in logic programming. Rather than fixing a set of policies, CSM provides mechanisms for the (dynamic) configuration of structured theories, handled as first class objects. CSM mechanisms allow code reusability and sharing, and provide binding rules fully supporting object-oriented programming techniques, without undermining logic programming declarativeness. The implementation is a peculiar CSM aspect, since contexts are represented by descriptors (similar to SICStus module descriptors), configured at context creation time, with no modification at abstract machine level. While this choice implies relatively high costs for context creation, it prevents any semantics distortion or computational overhead with respect to standard (SICStus) Prolog programs, and allows users to exploit open, evolving software components at a cost comparable with that of more static approaches to program composition.
Keywords: contextual logic programming; modules; structured theories
Implementations of Logic Programming Systems, pages 89-101, 1994.
Evan Tick, Giancarlo Succi (eds.), Kluwer Academic Publishers
@incollection{oolp-ilps94,
	Author = {Denti, Enrico and Natali, Antonio and Omicini, Andrea},
	Booktitle = {Implementations of Logic Programming Systems},
	Doi = {10.1007/978-1-4615-2690-2_7},
	Editor = {Tick, Evan and Succi, Giancarlo},
	Isbn = {978-1-4613-6157-2},
	Isbn-10 = {0-7923-9457-7},
	Isbn-Online = {978-1-4615-2690-2},
	Keywords = {contextual logic programming; modules; structured theories},
	Pages = {89--101},
	Publisher = {Kluwer Academic Publishers},
	Title = {Moving {P}rolog Toward Objects},
	Url = {http://link.springer.com/chapter/10.1007/978-1-4615-2690-2_7},
	WosId = {A1994BB31B00007},
	Year = 1994}