shape-analysis algorithm statically analyzes a program to determine information about the heap-allocated data structures that the program manipulates. The results can be used to
understand or verify programs. They also contain information valuable for debugging, compile-time garbage collection, instruction scheduling, and parallelization.
Our approach is generic, i.e. allows instantiations of many different analyses, and based on a three-valued interpretation of first order predicate logic.
Joint work with Mooly Sagiv (Tel Aviv) and Tom Reps (Madison)