Oznog said:
I don't believe in assembly being a prerequisite either.
I can't say it is a prerequisite, but it is extremely helpful.
Nigel Goodwin said:
My reason is VERY simple, assembler forces you to understand the hardware, and how the software interacts with it, a high level language effectively tries to completely ignore the hardware.
In other words, a high-level language does not allow the user to understand the electrical characteristics (registers, stack, etc) of a computer when creating a program. In fact, all a high-level language can do for you is allow you to whip up a fast piece of software specifically intended for the operating system the programming language runs on.
Low level languages (like assembler) allows you to even make your own OS and even boot disks too.
This leads to very poor programming, with long C routines sometimes being written where you could do the same thing in one or two lines of assembler, and MUCH shorter in C if you understood what you were doing (and what the compiler was doing!).
Yes. With assembler, you have alot more control on how each and every instruction is executed. If you went with straight opcode programming (feeding opcode after opcode), then you won't need a compiler, but it can be tedious.
With PC programming it's not a problem (particularly under Windows) as you are effectively one step (or more) removed from the hardware, so don't need to understand it. However, this technique applied to PIC's would be difficult, hard to squeeze a few hundred Mb's in a PIC and reduce it to a crawl!.
Please understand that CPU's and microcontrollers require opcodes to function. They cannot take words, because words are greek to them, and would require the manufacturer to add circuitry and therefore make the chip expensive. I doubt a single MB of data would fit in a PIC.
In the distant past, university students weren't allowed to use high level languages until they were fluent in assembler, it was a good policy then, and would probably be a good policy now?.
why didn't they keep that policy?
I see now that teachers are now steering software developers away from the hardware and leaving that up to M$. It seems that teachers and "big shots" now use Windows XP. Could you imagine programming now?
The only pieces of hardware that programmers have control over are the disk drives, and CD-ROM drives. Other than that, hardware can't be accessed directly without special API's.