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
Department of Computer Science, Wayne State University
Abstract. Object graphs help developers understand the runtime struc-
ture of an object-oriented system, in terms of objects and their runtime
relations (points-to, call, or dataflow, depending on the intent of the di-
agram). Ideally, an object graph is sound and shows all possible objects
and the relations between them. The object graph should also be hierar-
chical 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 hi-
erarchy 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 commu-
nication 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


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


Collections: Computer Technologies and Information Sciences