In the most basic terms, a “programming language” is a means of communication between a human being (programmer) and a computer. A programmer uses this means of communication in order to give the computer instructions. These instructions are called “programs”.
Like the many languages we use to communicate with each other, there are many languages that a programmer can use to communicate with a computer.
Each language has its own set of words and rules, called semantics. If you’re going to write a program, you have to follow the semantics of the language
you’re writing in, or you won’t be understood.
Programming languages can basically be divided in to two categories: Low-Level and High-level.
There are two general types of low level languages.
Machine level Language :
Machine code or machine language is a set of instructions executed directly by a computer’s central processing unit (CPU). Each instruction performs a very specific task, such as a load, a jump, or an ALU operation on a unit of data in a CPU register or memory. Every program directly executed by a CPU is made up of a series of such instructions.
Assembly level Language :
An assembly language (or assembler language) is a low-level programming language for a computer, or other programmable device, in which there is a very strong (generally one-to-one) correspondence between the language and the architecture’s machine code instructions. Assembly language is converted into executable machine code by a utility program referred to as an assembler; the conversion process is referred to as assembly, or assembling the code.