Programming languages and their differences: a brief overview
Programs written using programming languages are usually contained inside a source file which is automatically translated in order to transform information into operations or elements which can be processed by the computer. Such languages generate operating systems, drivers, operational tasks, apps and also graphics, which, as in the case of TeX or postscript, enable, among other things, automation control.
Generally speaking, programming can be sub-divided into languages:
- Imperative (providing commands for the processing of memory content and functions to be carried out arbitrarily. Each element present leaves a trace in the central memory);
- Functional (giving commands which calculate results starting from input data and do not allow the functions to modify the computer’s memory);
- Declarative (describing IT objects such as the structure of a database and the sequence of their declarations is not related to time);
- Procedural (allowing the generation of high level operations which can be divided into procedures and functions);
- Logical (enabling the development of systems based on mathematical logic);
- and those oriented towards objects (simplifying the creation of predefined models through which standard programming problems may find standardised solutions).
A further subdivision should be made between language which is interpreted, compiled or JIT. In the first type, the source is directly interpreted by a software. In the second kind a compiling software reads the source and converts it into an object which can be processed. In the third case however, the language is compiled so as to be processed by a virtual machine. Of course this subdivision may change according to the paradigm supported.
Programming languages also differ according to the criteria analysed. General purpose for example, is designed to create software in multiple application contexts, while special purpose is designed for the creation of software in specific contexts. In contrasts to applicative language, system languages serve to develop system software. Imperative languages give themselves instructions to follow, while the declarative ones provide objectives for the system to reach.
While in languages based on text the program is expressed in text alone, in visual ones it is expressed in graphics. In strongly-typed languages every value corresponds to a specific type, while in loosely-typed ones this does not happen. Another example of a difference is that of languages with automatic organisation of resources and those with manual organisation: in that case the difference lies in the presence or lack of a garbage collector for the organisation of the memory.
Another important point to note is the fact that programming languages based on text change according to the syntax used. That means that those with simil-C syntaxes use curly brackets, while those with simil-LISP use round brackets and those with simil-Pascal use keywords.
People often mention interpreted and compiled languages, referring simply to a feature of the implementation of the languages rather than the actual languages themselves. The same principle applies to languages from which operational commands for a certain architecture and languages from which commands for a virtual machine are derived:Â it is still a reference to implementation features.
As is apparent from what we have explained above, programming varies considerably according to the language chosen: a variation which affects, above all, its actual operational functionality and the objectives to be reached. The cases mentioned above are just a few of the examples which are readily available and to describe them all would be virtually impossible. However, the overview provides quite a precise picture of the differences to be found.
Translated by Joanne Beckwith
