·
A general trend in computing over
the past 4 decades is to elevate programming from low level to higher level
languages
·
I.e., high level languages are
geared more toward people writing the programs rather than the computer
·
Assembly language instructions
map directly to machine instructions
·
High level language instructions
must be translated/compiled into
machine instructions
·
High level languages are more
“problem-oriented” than assembly/machine languages
·
E.g, they require little or no
knowledge of the underlying computer architecture
·
Learning how to write/debug
programs in high level languages is much easier and less error-prone than
learning how to write/debug equivalent programs in assembler
·
E.g., high level languages
required fewer statements to do the same thing as assembler
·
Programs written in high level
languages can be ported much more easily to different computer architectures
·
E.g., the compiler encapsulates
the machine-dependent details of the target assembly language
·
A special program called a compiler is needed to translate a
program written in a high level language into assembly code (which is then
transformed into native machine code by an assembler)
·
The statement written in the high
level language are called source code
·
The compiler/assembler's output
is called object code