Targeting a practical analyzer
I have spent some hours to reflect the reachability algorithm. My goal is to make it run faster and more memory efficiency. (It seems that the space efficiency is important to make a practical piece of software.)
I realized that I have do many things to possibly achieve this: 1. The algorithm itself. 2. The data structure I used.
For the first point, I explored some dyck-reachability algorithm. Their motivation is all about pointer-to analysis. and their strategy is usually to merge nodes. It is undesirable to merge all those nodes in my scenario, at least as I see it for now.
For the second point, I think about using Godel hashing, or check out the WALA framework, how they manage the pointer-to information compactly represented.
This is important since I realized that no matter what is in your dyck-state-graph, you need to represent those states (can be huge amount) compactly. I believe exploring WALA again, is the first right direction.
The other thing I am trying to do this week is profiling the application.
At least for now, I am still learning to use JProfiler or Yourkit, finding the best profiler I can use.













