| Also see Hints and feedback. NB. The production rules use '::=' in place of '->'. |
| BIL | SML, possible translation | |
|---|---|---|
| 123456789[16] | -----> | ... (fromString "123456789[16]") |
| x := e | -----> | x := ... e |
| e+e' | -----> | ... (plus (... e) (... e')) |
| e*e' | -----> | ... (times (... e) (... e')) |
| print e | -----> | ... (print(... (toString 10 (... e)))) |
begin
... set, or read, m and n ...;
nn := n;
m2n := 1;
while nn > 0 do
begin
p := 1;
m2p := m;
while 2*p <= nn do
begin
m2p := m2p * m2p;
p := 2 * p
end;
m2n := m2n * m2p;
nn := nn - p
end;
print m2n
end