Work

Objects in concurrent logic programming languages

Year: 1986
Type: conference-paper
Abstract: Concurrent Prolog supports object-oriented programming with a clean semantics and additional programming constructs such as incomplete messages, unification, direct broadcasting, and concurrency synchronization [Shapiro 1983al.While it provides excellent computational support, we claim it does not provide good notation for expressing the abstractions of object-oriented programming.We describe a preprocessor that remedies this problem.The resulting language, Vulcan, is then used as a vehicle for exploring new variants of object-oriented programming which become possible in this framework.The resulting system has all the fine-grained concurrency, synchronization, encapsulation, and open-systems abilities of actors.In addition, it provides unification, logic variables, partially instantiated messages and data, and the declarative semantics of first-order logic.Abstract machines and corresponding concrete implementations support the computational model of these languages, providing cheap, light-weight processes, fast unification, and parallel architectures.The implementations provide the equivalent of "tail recursion optimization", so objects built on these foundations have the same complexity measure as objects implemented directly.Since objects with state are not taken as a base concept, but are built out of finer-grained material, many variations on traditional notions of object-oriented programming are possible.These include object forking and merging, direct broadcasting, message stream peeking, prioritized message sending, and multiple message streams per object.
Language: English
Subfield: Software
Open Access status: bronze
OpenAlex ID: W4252586098
FWCI:
Cites: 5
Cited by:
Related to: 10