{ De procedure foo is een leaf-functie, alle lokale parameters kunnen daarom in registers worden gestopt. Vanwege de vrij korte levensduur van de meeste hoeven dit niet eens veel registers te zijn. Dit is echter een pittige optimalisatie, verspil dus niet te veel tijd hierop } program register; function sum(a,b : integer) : integer; begin sum := a + b end; procedure foo; var totaal,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z : integer; begin totaal := sum(0,0); a := 1; totaal := sum(totaal,a); b := 2; totaal := sum(totaal,b); c := 3; totaal := sum(totaal,c); d := 4; totaal := sum(totaal,d); e := 5; totaal := sum(totaal,e); f := 6; totaal := sum(totaal,f); g := 7; totaal := sum(totaal,g); h := 8; totaal := sum(totaal,h); i := 9; totaal := sum(totaal,i); j := 10; totaal := sum(totaal,j); k := 12; totaal := sum(totaal,k); l := 14; totaal := sum(totaal,l); m := 16; totaal := sum(totaal,m); n := 18; totaal := sum(totaal,n); o := 22; totaal := sum(totaal,o); p := 23; totaal := sum(totaal,p); q := 24; totaal := sum(totaal,q); r := 25; totaal := sum(totaal,r); s := 26; totaal := sum(totaal,s); t := 27; totaal := sum(totaal,t); u := 28; totaal := sum(totaal,u); v := 29; totaal := sum(totaal,v); w := 30; totaal := sum(totaal,w); x := 40; totaal := sum(totaal,x); y := 42; totaal := sum(totaal,y); z := 44; totaal := sum(totaal,z); totaal := sum(totaal,a); totaal := sum(totaal,k); writeinteger(totaal) end; begin foo end.