ACM Home Page
Please provide us with feedback. Feedback
Static extraction of sound hierarchical runtime object graphs
Full text PdfPdf (666 KB)
Source
Types In Languages Design And Implementation archive
Proceedings of the 4th international workshop on Types in language design and implementation table of contents
Savannah, GA, USA
SESSION: Session 2 table of contents
Pages 51-64  
Year of Publication: 2009
ISBN:978-1-60558-420-1
Authors
Marwan Abi-Antoun  Carnegie Mellon University, Pittsburgh, PA, USA
Jonathan Aldrich  Carnegie Mellon University, Pittsburgh, PA, USA
Sponsors
SIGPLAN: ACM Special Interest Group on Programming Languages
ACM: Association for Computing Machinery
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 9,   Downloads (12 Months): 53,   Citation Count: 0
Additional Information:

abstract   references   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1481861.1481869
What is a DOI?

ABSTRACT

For many object-oriented systems, it is often useful to have a runtime architecture that shows networks of communicating objects. But it is hard to statically extract runtime object graphs that provide architectural abstraction from existing programs written in general purpose languages, and that follow common design idioms.

Previous approaches extract low-level non-hierarchical object graphs that do not provide architectural abstraction, change the language too radically for many existing implementations, or use a dynamic analysis. Static analysis, which takes all possible executions into account, is essential to extract a sound architecture, one that reveals all objects and relations that could possibly exist at runtime.

Ownership domain type annotations specify in code architectural intent related to object encapsulation and communication. We propose a static analysis that leverages such types and extracts a hierarchical approximation of all possible runtime object graphs. The representation provides architectural abstraction, first by ownership hierarchy, and then by types. We proved core soundness results for the technique and evaluated it on 68 KLOC of real code.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
M. Abi-Antoun and J. Aldrich. Compile-Time Views of Execution Structure Based on Ownership. In IWACO, 2007. Informal workshop.
 
2
M. Abi-Antoun and J. Aldrich. A Field Study in Static Extraction of Runtime Architectures. In PASTE, 2008.
 
3
M. Abi-Antoun and J. Aldrich. Static Extraction of Sound Hierarchical Runtime Object Graphs. Technical Report CMU-ISR-08-127, Carnegie Mellon University, 2008.
 
4
J. Aldrich and C. Chambers. Ownership Domains: Separating Aliasing Policy from Mechanism. In ECOOP, 2004.
5
 
6
D. F. Bacon and P. F. Sweeney. Fast Static Analysis of C Virtual Function Calls. In OOPSLA, 1996.
7
8
 
9
P. Clements et al. Documenting Software Architecture. Addison-Wesley, 2003.
 
10
C. Flanagan and S. N. Freund. Dynamic Architecture Extraction. In FLoC FATES-RV, 2006.
 
11
T. Hill, J. Noble, and J. Potter. Scalable Visualizations of Object-Oriented Systems with Ownership Trees. J. Visual Languages and Computing, 13(3), 2002.
 
12
 
13
 
14
P. Lam and M. Rinard. A Type System and Analysis for the Automatic Extraction and Enforcement of Design Information. In ECOOP, 2003.
 
15
16
 
17
N. Mitchell. The Runtime Structure of Object Ownership. In ECOOP, 2006.
 
18
 
19
 
20
 
21
D. Rayside, L. Mendel, and D. Jackson. A Dynamic Analysis for Revealing Object Ownership and Sharing. In WODA, 2006.
22
23
 
24
 
25
 
26
A. Spiegel. Automatic Distribution of Object-Oriented Programs. PhD thesis, FU Berlin, 2002.

Collaborative Colleagues:
Marwan Abi-Antoun: colleagues
Jonathan Aldrich: colleagues