Pascal

Mighty Erick

program sadstory;

using erick, novelas, imagination, doom, shortstory, pascallib, codetemplates;

{$ Bring data.connect=10}

compile with data.

var programmer: new (_programmer);

buggyprogram:new (_programdef);

teston:new(_blackbox);

i:integer;

label TRY_AGAIN;

begin

writeln ('It is a sad story about someone who was programming, found a horrible bug... and died');

with programmer do

begin

programming.create_new_code(buggyprogram, new instance);

TRYAGAIN:

if not programming.started then programming.start else programming.debug;

i:=0;

while not ((programming.compilable and program.value(test_on)) do

begin

programming.write(CODE_TEMPLATE_CONST[i]);

i:=i+1;

end;

{IT IS TERRIBLE: A minimal error in CODE_TEMPLATE_CONST can transform this loop into a Hopeless Endless Radical Do-Nothing Loop. This story would never get an end}

programming.save;

No Error

begin

programming.run;

writeln("It is OK. The program is running");

end

else

writeln("There is a bug. Please try again");

if random(6)=1 then kill(this);

{A self-reference. Each time the programmer fails, there is a likelihood of killing himself due to mental pressure}

if programming.limit_date=TRUE then kill(this);

{If the program remains buggy until the limit date, the programmer kills himself}

goto TRYAGAIN;

end;

truck.smash (programmer);

{Even if the programmer finds the bug, a truck smashes him shortly after, killing him immediatly. Note truck was never initialized, there is a likelihood of getting a Null-Pointer-Operation, destroying the program}

truck.smash (programmer);

{Just to be sure. Indeed, referencing an already destroyed object will crash the program}

end.

{Anyway, there is a very low likelihood of this porgram getting the last end. It could crash at any moment before due to the void references}

{As you see, it is a really sad story. There is not "halt(1)" reference, so if the programmer dies and the program still references him, it will get a null-pointer operation error. May be the program just hangs, may be it is closed by the operating system, may be the system itself fails (It was very usual using Windows 98), may be the program just begins to perform random harmful things onto disk (I got that when using a program I downloaded from the net. Beat me, it was horrible), or may be it just freezes and/or begins to show random output (the most probable way)}