The Rhodium language for writing program analyses and transformations