The hardware has historically grown exponentially in computing power, also the software, although moderately, in their communication power. The hardware of computing has increased over the time, to being more unknown. Regardless this scenario it makes necessary to understand it throughout, but day by day it is increasingly have necessary to communicate with it.
In order to facilitate this relation is necessary to create an interface area that should be easy, understandable and open the comunication between the machine and humman being.
The programming languages are the intermediary between man and machine, it creates a simple illusion through what is known as a virtual machine.
The virtual machine created by the programming languages is a general mental model which moves the program designer to build specific models as formal representations of reality. These specific models are called programs. At the same time, a program already built and running, creates another mental model for the one who uses. These codes of man and machine, can overlap on each other, using a level structure.
Through special programs can be translated programs written in one program language to another. If the translation programs are read a block, are compilers or translators, and it is termed interpreter if are statements.
Hw : Hardware
LM : Machine Language
LE : Assembly Language
SO : Operating System
LP : Program Language
Currently, there are a bunch of programming languages available. In order to study them, they have been grouped in paradigms enabling to establishing a taxonomy.
A paradigm is a conceptual framework that allows to design programs. The most popular paradigms used are imperative, declarative and object paradigm. In the imperative paradigm, the most important element is the order, instruction or sentence. The programs are like prescriptions that explain in detail what to do to accomplish a task.
In the object paradigm, the important thing is the data: the programs are objects that interact by sending messages. In the declarative paradigm, which envolved functional and logic languages, programs are facts that provide the necessary information to come-across with the right conclusion.
Taxonomy of programming languages
Factorial of a number in different programing languages
The study of programming languages is an open issue and great interest for research in computer science. It has driven to the language science for a study of the languages in general, this study is a key to understand the thinking of our time.