High-Level Languages (HLL) 

HLLs are programming languages that look like natural language text. Their advantages are:

They make programming easier and more abstract, i.e. the programmer does not need to come up with the detailed machine instructions

HLL programs are machine independent. They can be run on different hardware platforms (i.e. different computers with different instruction sets):
To run a HLL program on a specific machine, it has to be translated to its machine language

This is done through the use of a compiler . A Compiler is a program that translates a HLL program to a machine language program of a specific platform

The Machine language program produced by the compiler is usually referred to as the executable program

Hence by using the appropriate compiler we can execute our HLL programs on any platform.

Mapping Between HLL and Machine Language

Translating HLL programs to machine language programs is not a one-to-one mapping
A HLL instruction (usually called a statement) will be translated to one or more machine language instructions
The number of mapped machine instructions depends on the efficiency of the compiler in producing optimized machine language programs from the HLL programs
Usually, machine language programs produced by compilers are not efficient (i.e. they contain many unnecessary instructions that increase processing and slow down execution).

Data Typing in HLL and Machine Language

High-Level LanguageMachine Language
  1. Supports many primitive data types such as integers, real, strings, characters and Boolean

  2. Allows the programmer to define new and complex data types using the primitive data types

  3. HLL compilers strictly enforce data typing, preventing the programmer from making mistakes.
  1. No enforcement of any data typing, instructions just operate on binary numbers.