2. Levels of Programming Languages- Low Level Languages

posted Jul 21, 2014, 8:12 PM by Maurice Nyamoti   [ updated Jul 21, 2014, 9:37 PM ]

Levels of Programming languages

Programming languages are categorized into two levels namely:

1.       Low- Level Languages

2.       High-Level Languages

Low- Level Languages

A low-level programming language is a programming language that provides little or no abstraction from a computer's instruction set architecture. Generally this refers to either machine code or assembly language. The word "low" refers to the small or nonexistent amount of abstraction between the language and machine language; because of this, low-level languages are sometimes described as being "close to the hardware".

Low-level languages can be converted to machine code without using a compiler or interpreter, and the resulting code runs directly on the processor. A program written in a low-level language can be made to run very quickly, and with a very small memory footprint; an equivalent program in a high-level language will be more heavyweight. Low-level languages are simple, but are considered difficult to use, due to the numerous technical details which must be remembered.

There are two languages used in low level languages namely:

a)      Machine language (First generation language)

b)      Assembly Language (Second generation language)

Machine language (First generation language)

Sometimes referred to as machine code or object code, machine language is a collection of binary digits or bits that the computer reads and interprets. Machine language is the only language a computer is capable of understanding.

Ø  Instructions are written using binary logic

Ø  They require many lines of logic to accomplish a task

Ø  This very code is hard for humans to understand unless he/she is equipped with special knowledge in machine level programming

Ø  Different CPUs have different machine codes this is in reference to the coding schemes we learned earlier like ASCII and EBCDIC

Ø  These programs are easy to execute by the CPU but hard to understand by humans

Advantage Machine Language:

The only advantage is that program of machine language run very fast because no translation program is required for the CPU.

Disadvantages Machine Language:

1. It is very difficult to program in machine language. The programmer has to know details of hardware to write program.
2. The programmer has to remember a lot of codes to write a program which results in program errors.
3. It is difficult to debug the program.


Machine Instruction       Machine Operation

00000000             Stop Program

00000001             Turn bulb fully on

00000010             Turn bulb fully off

00000100             Dim bulb by 10%

00001000             Brighten bulb by 10%

00010000             If bulb is fully on, skip over next instruction

00100000             If bulb is fully off, skip over next instruction

01000000             Go to start of program (address 0)

Assembly Language

Sometimes referred to as assembly or ASL, assembly language is a low-level programming language used to interface with computer hardware.

Ø  They were developed to overcome the difficulties of understanding and using machine languages

Ø  It attempted to make computer languages readable

Ø  This language allowed programmers to write programs as a set of symbolic operation codes called Mnemonics- this is a shortened two or three letter words.

Ø  Programs written in assembly language require an assembler in order convert them into machine language that the computer can understand.

Ø  Assembly language is machine dependent- this means, a program written for one computer cannot be used on another.

The following disadvantages are observed with the assembly languages.

  1.  It is time consuming for an assembler to write and then test the program.
  2.  Assembly language programs are not portable.
  3.  It is necessary to remember the registers of CPU and mnemonic instructions by the programmer.
  4.  Several mnemonic instructions are needed to write in assembly language than a single line in high-level language. Thus, assembly language programs are longer than the high language programs.



MOV r0, #0C ;load base address of string into r0
LOAD: MOV r1,(r0) ;load contents into r1
CALL PRINT ; call a print routine to print the character in r1
INC r0 ;point to next character
JMP LOAD ;load next character