Today, assembly languages are considered very low level-that is, they are not as convenient for people to use as more recent languages.
At the time they were developed, however, they were considered a great leap forward.
To replace the Is and Os used in machine language, assembly languages use mnemonic codes, abbreviations that are easy to remember:
A for Add, C for Compare, MP for Multiply, STO for storing information in memory, and so on.
Although these codes are not English words, they are still- from the standpoint of human convenience-preferable to numbers (Os and 1s) alone.
Furthermore, assembly languages permit the use of names- perhaps RATE or TOTAL-for memory locations instead of actual address numbers.
just like machine language, each type of computer has its own assembly language.
The programmer who uses an assembly language requires a translator to convert the assembly language program into machine language.
A translator is needed because machine language is the only language the computer can actually execute.
The translator is an assembler program, also referred to as an assembler. It takes the programs written in assembly language and turns them into machine language.
Programmers need not worry about the translating aspect; they need only write programs in assembly language. The translation is taken care of by the assembler.
Although assembly languages represent a step forward, they still have many disadvantages.
A key disadvantage is that assembly language is detailed in the extreme, making assembly programming repetitive, tedious, and error prone.
This drawback is apparent in the program in Figure 2. Assembly language may be easier to read than machine language, but it is still tedious.
The first widespread use of high-level languages in the early 1960s transformed programming into something quite different from what it had been.
Programs were written in an English-like manner, thus making them more convenient to use. As a result, a programmer could accomplish more with less effort,
and programs could now direct much more complex tasks.
These so-called third-generation languages spurred the great increase in data processing that characterized the 1960s and 1970s.
During that time the number of mainframes in use increased from hundreds to tens of thousands. The impact of third-generation languages on our society has been enormous.
Of course, a translator is needed to translate the symbolic statements of a high-level language into computer-executable machine language; this translator is usually a compiler.
There are many compilers for each language and one for each type of computer.
Since the machine language generated by one computer's COBOL compiler, for instance, is not the machine language of some other computer,
it is necessary to have a COBOL compiler for each type of computer on which COBOL programs are to be run. Keep in mind, however,
that even though a given program would be compiled to different machine language versions on different machines,
the source program itself-the COBOL version-can be essentially identical on each machine.