The CPU understands machine language. The machine language
instructions are encoded as strings of bits. The instruction set
is dependent on the type of CPU. The instructions are primitive
like load, add, store, jump. The machine instruction that adds 3
to register D1 might be encoded as the bit string: 0101 011
000000 001 Writing and understanding machine language code is
error prone. The first step was to have short mnemonics for the
primitive operations instead of binary strings. The above
instruction could be written as: ADD 3, D1 This is assembly
language programming. An assembler translates the mnemonics to
machine code. But even the assembly language code is unwieldy.
The time to write, debug, understand, and maintain a piece of
code is proportional to the number of lines of instruction. A
high level language allows common operations such as expression
evaluation, repetition, assignment, and conditional action to be
invoked in a single high-level statement. Examples of high level
languages - Fortran, Pa