Object-oriented logic programming (OOLP) is a hybrid of object-orientation and logic programming paradigms. In this paper, we present a new object-oriented logic programming language P&P. P&P supports programming with communicating nondeterministic objects and stream parallelism for communication among objects. Intuitively, each object has a Parlog 'shell' with Prolog 'contents'. One concern in our design is to integrate Prolog's backtracking, sequential search with Parlog's concurrent execution. Hence P&P supports committed inter-object message passing via the Parlog 'shell' of the objects. Also, object-oriented features are added to provide encapsulation and code reuse.
['Man-lai Tse', 'Wing-hang Wong', 'Ho-fung Leung']
Programming with communicating nondeterministic logic objects