Hierarchical Abstraction of Execution Traces for Program Comprehension