Octopus: A Reflective Language Mechanism for Object Manipulation

A Farkas, Alan Dearle

Research output: Chapter in Book/Report/Conference proceedingConference contribution


A class of database programs exist which are required to operate over an infinite number of types; included in this class are object browsers and query tools. The types over which these programs operate cannot be enumerated statically. One solution to this problem is to provide a reflective language mechanism that permits the types of values to be abstracted over and the values manipulated in a type independent manner; this paper describes such a mechanism. The mechanism is called Octopus which is an acronym for Object Closure Transplantable to Other Persistent User Spaces. The essence of the technique is to allow values from the programming language value space to be hoisted up to a meta level and manipulated in ways which the programming language would not otherwise permit. When manipulation is complete they may be dropped back into the value space, provided that they still conform to the language’s type system. An additional feature of this technique, as the name suggests, is the ability to isolate portions of closures, and copy them to other locations. Partial closures may be rewired, possibly in a different context, using the meta level interface supplied by Octopus.
Original languageEnglish
Title of host publicationDatabase Programming Languages; Proc 4th International Conference on Database Programming Languages (DBPL4)
Place of PublicationNew York City
ISBN (Print)3-540-19853-9
Publication statusPublished - 1993


Dive into the research topics of 'Octopus: A Reflective Language Mechanism for Object Manipulation'. Together they form a unique fingerprint.

Cite this