"Numerical Recipes in C" is nonport

mcdonald at uxe.cso.uiuc.edu mcdonald at uxe.cso.uiuc.edu
Fri Sep 9 23:39:00 AEST 1988



>What's to stop you from doing the following:

>	Generate code in an array.
>	Jump to the beginning of the array. *

>Now you've blown the protection. You can do anything. I hope this isn't a
>multiuser machine...
It is certainly possible to design machine\compiler combinations that
prevent this. I call them "totalitarian " or "Stalin" operating systems.
Apparently ANSI C does not prohibit this behaviour: a fatal flaw
in the ANSI standard. IF you can't do this, an entire class of programs
becomes absolutely impossible: incremental compilers. It would prohibit
a Turbo C or Quick C clone, for example. All of my programs I have designed
for teaching chemistry and physics wouldn't work.  It is even possible
to design an operating system so that is is impossible (inside it of course)
to write compilers: there is some magic cookie necessary to make
an executable file, and no compiler or assembler allows setting such 
cookie *. VMS makes it rather difficult to set such a thing (but 
possible). Does the Unisys A series REALLY make it all that impossible?
If so, maybe that is why no one has ever heard of them!

Doug McDonald

* I mean that the compiler can make an executable, but that you can't
write a program that will make an executable.



More information about the Comp.lang.c mailing list