Program transformation: theoretical foundations and basic techniques. Part 2