'

Pluto: an object-oriented logic programming language

Mengchi Liu University of Regina, Saskatchewan, Canada

The object-oriented philosophy creates a powerful synergy throughout the development lifecycle by combining abstraction, encapsulation, and modularity. However, existing object-oriented programming languages are low-level procedural ones that are hard to program and debug. Logic programming allows computing problems to be expressed in a high-level declarative way, without giving instructions for how the problem is to be solved. However, logic programming lacks powerful methods to model applications. In the past decades, the integration of object-oriented programming and logic programming has attracted a lot of interest with a number of languages proposed. But these languages fail to address some key object-oriented features properly.

In this paper, we introduce a novel object-oriented logic programming language that supports nearly all object-oriented features in a logic programming framework, such as object identity, complex objects, class definitions, typing, clause-based methods, encapsulation of data and methods, information hiding, overloading, late binding, polymorphism, class hierarchy, and non-monotonic multiple structural and behavioral inheritance with overriding, blocking and conflict handling. We also describe its operational semantics.'