Date : Thu, 21 Nov 1985 18:43:46 GMT
From : Dave Beyerl <db21%ihuxk.uucp@BRL.ARPA>
Subject: Re: Turbo Pascal Version 3.00
> Replace this line with your compiler bug
>
> 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
Because I happened to have a copy of my Turbo Pascal
compiler handy, I tried the above program in Turbo. When I ran
the program, I received the second set of outputs given in the
above article. The version of Turbo that I have is identified
as ver. 3.01A for the IBM. Apparently, Borland either corrected
this problem in the subsequent point (.01) release or there is
a significant difference between the CP/M and IBM versions of
Turbo. Hopes this helps in tracking down the problem.
For every problem there is one Dave Beyerl
solution which is simple, neat, ihuxk!db21
and wrong!