Supporting program comprehension using semantic and structural information | Synapse