The compilation of a program from an object/source language to linkable or executable target code is generally accompanied by transformation processes. The generic tools or components of environments which accomplish this phased restructuring as a semantic aspect of program generation or for the sake of program optimization, are included in this subcategory.