Functional programming languages Part V: functional intermediate representations

Xavier Leroy · 2007

Between high-level languages and machine code, compilers generally go through one or several intermediate representations where, in particular: Expressions are decomposed in a sequence of processor-level instructions. x = (y + z) * (a b) --> t1 = y + z; t2 = a b; x = t1 * t2; Temporary variables (t1, t2) are introduced to hold intermediate results. These temporaries, along with program variables, can later be placed in concrete locations: processor registers or stack slots.

Read the paper · More papers on PaperTik