BeBOP(ID:1856/beb001)

Object-oriented parallel logic programming language 


Object-oriented parallel logic programming language

Combines sequential and parallel logic programming, OO, and meta-levels. Both "don't know" non-determinism and stream parallelism. PROLOG theories are first-order entities and may be updated or passed as messages. Implemented by translation to NU-PROLOG and PNU-PROLOG.

from CMU AI page:
"The BeBOP language combines the features of sequential and parallel Logic Programming (LP), object oriented programming and meta-level programming. The goal of the system is to support the construction of multi-agent systems.

The LP component offers both don't know non-determinism and stream AND-parallelism, a combination not possible with concurrent LP languages. BeBOP's object oriented features include object IDs,
encapsulation, message passing, state updating, and object behavior modification. The meta-level capabilities are based on the treatment of Prolog theories as first order entities, which enables them to be updated easily, and for fragments to be passed between objects in
messages."


Structures:
Related languages
NU-Prolog => BeBOP   Target language for
PNU-Prolog => BeBOP   Target language for
Prolog => BeBOP   Extension of

References:
  • David: Readme for BeBop view details Abstract: The BeBOP language combines the features of sequential and parallel
    Logic Programming (LP), object oriented programming and meta-level
    programming. The goal of the system is to support the construction of
    multi-agent systems.

    The LP component offers both don't know non-determinism and stream
    AND-parallelism, a combination not possible with concurrent LP
    languages. BeBOP's object oriented features include object IDs,
    encapsulation, message passing, state updating, and object behavior
    modification. The meta-level capabilities are based on the treatment
    of Prolog theories as first order entities, which enables them to be
    updated easily, and for fragments to be passed between objects in
    messages.

    An interactive interpreter named BP is included in the distribution.
    It supports incremental compilation and execution, and allows the
    communication links within an object network to be specified
    dynamically. BP also includes a history mechanism, allowing
    syntactically correct goals to be repeated, listed, and modified.
    Variables from previous queries can also be reused in later queries.
    BP is a superset of NU-Prolog's interpreter NP and so can seamlessly
    combine objects and prolog goals.

    BeBOP programs are compiled into NU-Prolog, and its parallel
    extension, PNU-Prolog (PNP). An unusual aspect of this is the way in
    which object IDs are utilized as a communication mechanism between
    objects. Code for the PNP preprocessor is included in the distribution.
    Resources