Recognition in a Program Understanding System

We propose a recognition model for a Program Understanding system based on a top-down control structure that begins from a given high level plan and attempts to refine and decompose the plan until it can be matched against actual code. We introduce the notion of "distinctive features" and "beacons" which help guide the recognition process and are based on a set of functional program "templates". Additional mechansims are proposed to recover from situations in which the primary top-down approach fails.