Optimizing compilers sometimes examine the source code and rewrite it into something more efficient, such as:
main() { print( mysub( 6 ) ); }
The next example program prompts the user for an integer, reads in the integer, and prints the factorial. The SPIM console window shows the output of several runs of the program. The pseudo-code for the program is:
# main() # { # int a, b; // a: 0($fp), b: 4($fp) # write("enter an int:") # read( a ); # b = fact( a ); # write("factorial is:") # print( b ); # } # int fact( int n ) # { # if ( n <= 1 ) # return 1; # else # return n*fact(n-1); # }