One who takes seperate
components and
combines them into a whole. This could be a
human, as in an
assembly line
worker, or
robot, or
program.
An example of this is in
programming.
Processors follow
directions contained in a
stream (or streams) of numbers. Any particular
particle in this stream is a
machine instruction, and the number representing that instruction is a
machine code. It used to be that in order to get a processor to process something you had to look at a large table of possible instructions, determine the matching machine code, and insert that into the stream. By building up a series of instructions in this way you were essentially assembling a program.
In time people determined it was easier for a human to understand even
cryptic 3 and four letter
mnemonics than it was to remember and understand machine code numbers, and that one could use the machine itself to
translate between the mnemonic and the machine code. The assembler (program) was created to do this. It translates the assembly code listing into machine code.
This is usually the lowest level you would see anyone attempting to program at. While students and researchers still hand assemble some things, it is not efficient to do so in the long run, especially since new processor
architechtures, and therefore new machine codes, come out
frequently, and many popular processors have hundreds of instructions, which each have several parameters.
The first assembler was written in machine code.
The next assembler, and those following it, was written in assembler.
The first compiler was written in assembler
The next compiler, and all following it, was written in a compiled language.
At this point it is a useful learning experience to study machine code (especially if you plan on designing your own processor), but it is nearly useless as a
practical function in society today.