Abubakr Ch
Abubakr Ch

Reputation: 3

ALGOL missing or erroneous separator syntax error

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

Answers (4)

k314159
k314159

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

Marcel van der Veer
Marcel van der Veer

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

NevilleDNZ
NevilleDNZ

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

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

Related Questions