Hpc Announcements

Tiger in Stratego -- Compilation by Program Transformation

Tiger-0.9 is available. You can find it at WebHome.

New in this version:

  • asm/Allocate-Registers is a complete implementation of register allocation with coalescing, provided the liveness analysis in asm/Liveness.r is implemented correctly.

  • The file asm/runtime.s is Appel's port of the Tiger runtime system to the MIPS.

  • The file asm/runtime-debug.s is my edition of the file in which I have commented out some initialization code that doesn't (seem to) work. Appel mentions that not all the code has been tested!

  • In xmpl/makerules a new target has been added: make file.s to create the MIPS code for file.tig. It includes the code from file.ra and the code for the runtime system.

The code in file.s can be run using SPIM. See the SPIM manual for instructions. (Basically: xspim -file file.s)


  • The runtime system provides allocRecord instead of malloc. I suppose that is a change since my edition of the book.

  • Functions in the runtime system don't take a static link as first parameter.

  • Note that .text and .data sections need to bee aligned on (double?) word boundaries. It is a good idea to emit align(2) directives before the code of each STRING and PROC fragment.


  • WebHome version 0.7 is available. New in this version are control-flow graph computation and liveness analysis for ASM programs. The implementation of the data flow equations is left out as an exercise.