<< Previous Message Main Index Next Message >>
<< Previous Message in Thread This Month Next Message in Thread >>
Date   : Wed, 20 Nov 1985 08:39:40 EST
From   : SMERESKI.WBST@XEROX.ARPA
Subject: Re: Turbo Pascal Version 3.00

You have written a program with recursive calls.  Turbo Pascal for CP/M does
not generate recursive code in its default mode.  You will get the expected
result by including the compiler directive {$A-}.  This information is in the
manual.

/Dave

I sat down to write the program for the next project I am going
to give to my Computer Science I class at home on my CPM system
with Turbo Pascal Version 3.00.  The following program illustrates
the problem with the program I wrote:

program junk(input,output);
procedure proca(chita:char); forward;
procedure procb(chitb:char);
begin
     writeln('Entering procb with a ',chitb);
     proca('A');
     writeln('Leaving procb with a ',chitb);
end;
procedure proca;
begin
     writeln('Entering proca with a ',chita);
     if chita = 'I' then procb('I');
     writeln('Leaving proca with a ',chita);
end;
begin
     proca('I');
end.

The output using Turbo Pascal was:

     Entering proca with a I
     Entering procb with a I
     Entering proca with a A
     Leaving proca with a A

     Leaving procb with a I
     Leaving proca with a A

While the output for the same program on a VAX with BSD UNIX,
IBM VM/SP CMS, or a Macintosh with MacPascal was:

     Entering proca with a I
     Entering procb with a I
     Entering proca with a A
     Leaving proca with a A
     Leaving procb with a I
     Leaving proca with a I

as I expected.  Calling Borland Technical Support was no help,
as they wanted a copy of the program on an IBM format disk.
The technical support specialist asked me to send a copy of the
program on a disk.  When I asked "in what format?" she replied
"IBM, of course."  I guess CPM does not exist anymore.

Obviously, I was quite surprised at the output, and now I
wonder how they tested the compiler.  It seems that a program
as simple as the one above should have been tested.

-- Stanley Dunn
   University of Maryland Department of Computer Science

<< Previous Message Main Index Next Message >>
<< Previous Message in Thread This Month Next Message in Thread >>