[PRL] Precision of Reachability analysis

Johan johan at ccs.neu.edu
Tue Jan 13 17:56:10 EST 2004


Does anyone have any intuition about reachability for "typical" java 
programs?  To keep on track, I'd like to avoid a discussion of what a 
constitutes a "typical" program.  I believe that javac is typically 
cited as a convenient example. Feel free to insert your own.

Because of dynamic dispatch and interfaces, I'd suspect that the 
analysis will quickly become very coarsegrained. In other words, I would 
expect that typical java programs have control-flow graphs with a high 
degree of both interconnection and thus strong-connection.

Unfortunately, I've failed to dig up any anecdotal evidence to support 
this. Any thoughts? For extra credit, speculate how much of this effect 
  is due to conservative analysis, and how much is true dynamic nature 
of the program.  If this draws blanks, feel free to answer for some 
other (hopefully similar) language.

Lastly, I must apologize for a very imprecise question; I don't even 
know the units in which to measure the interconnectedness of a graph. 
Maybe something like a lorenz curve:

Low interconnectivity:

% reachable nodes
|
|	 	     |
|	 	     |
|	 	     |
|	 	    |
|	 	   |
|	      ____/
|       __----
|____---
+--------------------------
    % nodes of program

What I imagine a typical java program to look like:

% reachable nodes
|	_________--------
|      /
|     /
|    |
|   |
|   |
|  |
|  |
|_/
+--------------------------
    % nodes of program



More information about the PRL mailing list