Symbiotic Reflection between an Object-Oriented and a Logic Programming Language

Wuyts, Roel; Ducasse, Stéphane (2001). Symbiotic Reflection between an Object-Oriented and a Logic Programming Language. In: ECOOP 2001: International Workshop on Multi-Paradigm Programming with Object-Oriented Languages. Budapest, Ungarn. 18.-22. Juni 2001.

[img] Text
Wuyt01a.pdf - Published Version
Restricted to registered users only
Available under License Publisher holds Copyright.

Download (168kB) | Request a copy

Meta-programming is the act of using one system or language to reason about another one. Reflection describes systems that have access to and change a causally connected representation of themselves, hence leading to self-extensible systems . Up to now, most of the reflective languages have been implemented in the same paradigm. In this paper, we propose \emphsymbiotic reflection as a way to integrate a meta programming language with the object-oriented language it reasons about and is implemented in. New to this approach is that any element of the implementation language can be reasoned about and acted upon (not only the self representation), and that both languages are of different paradigms. Moreover, every language implementer that is faced with the problem of allowing the base language to access the underlying meta-language has to solve the problem of enabling entity transfer between both worlds. We propose a uniform schema, called upping/downing, to this problem that avoid explicit wrapping or typechecking. We illustrate this with SOUL (the Smalltalk Open Unification Language), a logic programming language in symbiotic reflection with the object-oriented language Smalltalk. We show how SOUL does logic reasoning directly on Smalltalk objects, and how to use this to implement type snooping

Item Type:

Conference or Workshop Item (Paper)


08 Faculty of Science > Institute of Computer Science (INF)
08 Faculty of Science > Institute of Computer Science (INF) > Software Composition Group (SCG)

UniBE Contributor:

Ducasse, Stephane


000 Computer science, knowledge & systems
500 Science > 510 Mathematics




Manuela Bamert

Date Deposited:

06 Dec 2017 11:16

Last Modified:

30 Oct 2019 20:06




Actions (login required)

Edit item Edit item
Provide Feedback