Date : Tue, 19 Nov 1985 18:59:59 GMT
From : Stanley Dunn <smd%umcp-cs.uucp@BRL.ARPA>
Subject: 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