I am facing the issue regarding ALGOL program

179 views Asked by At
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 its 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.
3

There are 3 answers

2
Brian Tompsett - 汤莱恩 On

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.

0
NevilleDNZ On

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. "

0
Marcel van der Veer On

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