into other languages. (3) Not true. A compiler will
beat a poor
assembly programmer all the time, and an average one much of the
time. But a programmer can know more about the problem than the
compiler can ever know (because the higher level language can't
express everything there is to say about the problem) so an excellent
programmer can always tie the compiler, and in selected spots can beat
the compiler by a very large margin. It's important to know when to
spend the effort, and that is also part of what marks an excellent
programmer.
When programming microcontrollers (and even more when writing microcode
for special-purpose hardware), there have been times when, say, I've had
to ensure that 2 routines take exactly the same number of machine cycles
to execute (maybe I have to insert some NOPs in the shorter one or
something). This is something that most compliers can't seem to handle.
This is true of electronic CAD tools too. I've had to fiddle with the
output of FPGA compliers to get signals routed through the same number of
routing switches in the FPGA (OK, we were really pushing those chips...).
Humans can often understnad (and remember) things that compilers can't!
-tony