I can see a few cases where it would not be desirable to run multiple
invocations of some program, but it just seems inefficient to have to load
the same code twice. But if all data is accessed by reference, with few
"automatic" variables, it should be pretty straigtforward.
–Karl
It isn't automatic variables that cause problems with reentrant code.
They are allocated on the stack, so you have a different copy each time you
run the function. It's the static variables that cause the problems.
These are the variables that end up in the data segments. It isn't too
difficult to write reentrant code on the Amy. With Lattice C it's a
compiler switch.