Self-modifying code

Robert Colwell colwell at mfci.UUCP
Thu Jul 21 03:08:49 AEST 1988


In article <759 at cernvax.UUCP> hjm at cernvax.UUCP () writes:
>
>Programmers have become quite accustomed to the destructive assignment of
>data ( x := y + 2 ), so why should the destructive changing of code be any
>different?  If the practice were more common, then it wouldn't seem quite so
>bad, surely.  After all, a Turing machine with a finite length tape is not
>*that* difficult ...

Hubert, I was going to let this whole SMC discussion slide on by, but
your post finally convinced me otherwise.

First, you meant "y" := y + 2, not "x", right?

Second, it seems like only yesterday when we (the royal we) CPU
architects were so concerned with trying to narrow the semantic gap
between what a programmer was trying to express and what the
machine/language was coercing her into.  Languages like Ada and
machine architectures like capability machines were intended to
address this perceived need.  The basic idea is that (oversimplifying
drastically) in a small programming environment (you at your
standalone workstation) anything goes in terms of protection and
language type checking, etc.  

The interesting domain is that of programming-in-the-large, with
large teams of programmers producing hundreds of thousands of lines
of code (SDI/Shuttle).  There, extracting the last nano-mip of
performance is of far less interest than in avoiding bugs and
producing maintainable code, and I still believe that supporting that
environment is a far more important challenge to architects than
worrying about SMC could ever be.  And I don't think (heavy sarcasm
here) that UNIX/C is the ultimate answer to that environment.




Bob Colwell            mfci!colwell at uunet.uucp
Multiflow Computer
175 N. Main St.
Branford, CT 06405     203-488-6090



More information about the Comp.lang.c mailing list