Reputation: 3
begin
% computes factorial n iteratively %
integer procedure factorial( integer value n ) ;
if n < 2
then 1
else begin
integer f;
f := 2;
for i := 3 until n do f := f * i;
f
end factorial ;
for t := 0 until 10 do write( "factorial: ", t, factorial( t ) );
end.
I have compiled the code but everytime it's saying the error. See
$a68g main.alg
5 then 1
1
a68g: syntax error: 1: possibly a missing or erroneous separator nearby.
9 for i := 3 until n do f := f * i;
1
a68g: syntax error: 1: possibly a missing or erroneous separator nearby.
13 for t := 0 until 10 do write( "factorial: ", t, factorial( t ) );
1
a68g: syntax error: 1: possibly a missing or erroneous separator nearby.
Upvotes: 0
Views: 213
Reputation: 11236
This code is actually written in Algol W, not Algol 60. You need to compile it with an Algol W compiler, such as Awe.
Upvotes: 1
Reputation: 1
If you were to code this in Algol 68, a possible solution could be
BEGIN FOR t TO 10
DO OP F = (INT n) INT: (n < 1 | 1 | n * F (n - 1));
print ((F t, new line))
OD
END
Upvotes: 0
Reputation: 1279
Try marst... " MARST is an Algol-to-C translator. It automatically translates programs written on the algorithmic language Algol 60 to the C programming language. "
Upvotes: 1
Reputation: 5893
You are using an Algol 68 compiler, but the code is not written in Algol 68.
Algol 60 and Algol 68 are different languages with different syntax.
You would need to translate your code to algol 68 to use a68g or find an algol 6o compiler.
Upvotes: 1