{[ promptMessage ]}

Bookmark it

{[ promptMessage ]}

Lecture 6 Notes - A Simple Semantics for Traversals in...

Info icon This preview shows pages 1–3. Sign up to view the full content.

View Full Document Right Arrow Icon
A Simple Semantics for Traversals in Object Graphs Karl Lieberherr and Mitchell Wand College of Computer Science Northeastern University 360 Huntington Avenue, 161CN Boston, MA 02115, USA [email protected], [email protected] http://www.ccs.neu.edu/home/ lieber, wand December 28, 2001 Abstract Traversal through object graphs is needed for many programming tasks. We show how this task may be specified declaratively at a high level of abstraction, and we give a simple and intuitive semantics for such specifications. The algorithm is implemented in a Java library called DJ. 1 Introduction A common task in object-oriented programming is to take an object o in an object graph and find all the objects o that are reachable from o according to some search criterion. For example, given an object o of class , find all the objects of class that are reachable from o along a path that goes through some object of class . In order to make the search tractable, we typically search based on local meta- information . In such a search, we search only those edges from o that might lead to an object that satisfies the search criterion, based on the class structure of the object graph. We may explore objects that are not on the path to a desired target object, but that is an unavoidable consequence of searching based only on meta-information. Work supported by the National Science Foundation under grants CCR-9804115 and CCR- 0097740 and by ARPA and BBN under agreement F33615-00-C-1694. 1
Image of page 1

Info icon This preview has intentionally blurred sections. Sign up to view the full version.

View Full Document Right Arrow Icon
In this paper we present a simple semantics for such a search, and introduce an algorithm for performing the search, given a search criterion like the one above. The semantics and algorithm address two technical problems: the meaning of the modal operator “might”, and the treatment of inheritance. We give an example of this algorithm as embodied in the DJ library for Java [3]. Section 2 presents our notation, and section 3 presents our model of classes and objects. In section 4, we formulate the basic traversal problem in the terms of our model. The key to the problem is to find a set FIRST c c such that e FIRST c c iff it is possible for an object of class c to reach an object of type c by a path beginning with an edge e . Section 5 gives semantics to the core traversal specifications of DJ and shows how to interpret them as search algorithms. Sec- tion 6 completes the story by showing how to compute the FIRST sets statically. Section 7 presents an example showing how these concepts are employed in the DJ library. Section 8 discusses related work. Finally, section 9 presents some conclusions and ideas for further development. 2 Notation We will be using relations as our fundamental tool, so we will need some notation for dealing with relations. If A and B are sets, a relation from A to B is a subset R of A B . If a b R , we will write R a b , a R b , and a b R interchangebly. A relation from A to A is often called a relation on A .
Image of page 2
Image of page 3
This is the end of the preview. Sign up to access the rest of the document.

{[ snackBarMessage ]}