Text this: Semantic foundations of intermediate program representations