Many software tools, including compilers, optimizers and synthesizers, have a common task at their core. They must transform long, complicated programs into simplified equivalents. These scaled-down programs run faster and on a wider range of hardware but must deliver the same results as their original versions.Many software tools, including compilers, optimizers and synthesizers, have a common task at their core. They must transform long, complicated programs into simplified equivalents. These scaled-down programs run faster and on a wider range of hardware but must deliver the same results as their original versions.[#item_full_content]