![]() |
|
your code can be fairly difficult to understand and modify, i.e. to maintain
the result is non-portable to other architectures, existing or upcoming
And in any case, as says moderator John Levine on comp.compilers,
"compilers make it a lot easier to use complex data structures,
and compilers don't get bored halfway through
and generate reliably pretty good code."
They will also correctly propagate code transformations throughout the whole (huge) program when optimizing code between procedures and module boundaries.
have automatic tools translate these programs into assembly code
All of the above, i.e. write (an extension to) an optimizing compiler back-end.
Even when assembly is needed (e.g. OS development), you'll find that not so much of it is required, and that the above principles retain.
See the Linux kernel sources concerning this: as little assembly as needed, resulting in a fast, reliable, portable, maintainable OS. Even a successful game like DOOM was almost massively written in C, with a tiny part only being written in assembly for speed up.
Hosting by: Hurra Communications Ltd.
Generated: 2007-01-26 17:57:44