Recognizing a program's design: a graph-parsing approach | Synapse