Advanced Search

Browse by Discipline

Scientific Societies

E-print Alerts

Add E-prints

E-print Network

  Advanced Search  

Extracting Dataflow Communication from Object-Oriented Code

Summary: Extracting Dataflow Communication from
Object-Oriented Code
Radu Vanciu Marwan Abi-Antoun
October 15, 2011
Department of Computer Science
Wayne State University
Detroit, MI 48202
Object graphs help developers understand the runtime structure of an object-oriented system, in
terms of objects and their runtime relations (points-to, call, or dataflow, depending on the intent
of the diagram). Ideally, an object graph is sound and shows all possible objects and the relations
between them. The object graph should also be hierarchical to scale and convey architectural
abstraction. Achieving soundness requires a static analysis, but architectural hierarchy is not
available in code written in general-purpose programming languages. To achieve hierarchy in a
statically extracted object graph, we leverage ownership types in the code. We then abstractly
interpret the annotated program and extract a global, hierarchical object graph with dataflow
communication edges that show the flow of objects due to field reads, field writes, and method
invocations. We formalize the static analysis using a constraint-based specification and prove that
the object graph is sound. Our dataflow communication edges expose transient relations between
objects and differ from the persistent points-to relations extracted by previous work.


Source: Abi-Antoun, Marwan - Department of Computer Science, Wayne State University


Collections: Computer Technologies and Information Sciences