A program integration algorithm that accommodates semantics-preserving transformations | Synapse