Symbolic Analysis as a Basis for Program Comprehension

Erkki Laitila, Jyväskylä Universit, Finland

Research on program comprehension is important, because the amount of source code in mission-critical applications is increasing world-wide.
As a solution for that challenge, a methodology with four stages is introduced. The first stage, GrammarWare, transforms the program into a symbolic form to funtion as a construction for the model, as the second stage, ModelWare. For the model the idea of an “atom” is presented to combine the benefits of objects for abstracting, and expressiveness of Prolog for tailoring and formalizing the model.
The third stage, SimulationWare, implements a symbolic abstract machine, comparable with traditional Turing machine. With its computation model it enables symbolic analysis, which is comparable with dynamic analysis, but has a rather flexible pragmatics. The last stage, KnowledgeWare, is aimed for collecting knowledge for code inspection, error detection and verification of current operations.
The methodology is programmed with Visual Prolog and implemented in a tool, which enables the handling of Java code. The pratical goal of the methodology is intelligent support for maintenance tasks.