The GNU compiler kit uses a machine-independent register transfer language, RTL, as an intermediate language. The kit includes translators from several high-level languages (such as C, C++, Pascal) into RTL, and translators from RTL into several machine codes (such as Alpha, PPC, and SPARC). It also includes an RTL 'optimiser', i.e., a program that translates RTL into more efficient RTL. All of these translators are expressed in C. a) Show how you would install these translators on a SPARC machine, given a C compiler for the SPARC. [5] Now show how you would use these translators to: b) Compile a program P, expressed in Pascal, into SPARC machine code; [5] c) Compile the same program, but using the RTL optimiser to generate more efficient object code; [5] d) Cross-compile a program Q, expressed in C++, into PP machine code. [5].