Levels of programming languages ​​and the evolution of languages

Lecture



Programming languages ​​are often classified by level . The language level indicates how close the language is to a person’s natural record. Procedural languages ​​are the lowest level. Functional - much higher. Logical languages ​​can in principle be of the highest level, but because of the high complexity of the theory underlying them, they are developed rather slowly. The widespread in the world of languages ​​logical group is quite small.

The groups of languages ​​considered by us are not something absolute. Over time, there may be new approaches to programming, which will be divided into separate groups. Therefore, the question arises: what is common between different languages, what is their essence.

In principle, all programming languages ​​are designed to solve problems using mathematics (almost all of its sections). The closest to the person is the language of the mathematical record of the condition of the problem and its solution. This refers not only to strictly formalized rules of mathematical notation, but to present it using natural design techniques and commenting that are natural to people. It is possible even with the use of phrases in ordinary communication languages, just as schoolchildren or students write down tasks.

Currently in the world there are several hundreds of actually used programming languages. For each has its own scope.

Any algorithm, as we know, is a sequence of prescriptions, which can be accomplished in a finite number of steps from the initial data to the result. Depending on the granularity of the prescriptions, the level of the programming language is usually determined — the less detail, the higher the language level.

According to this criterion, the following levels of programming languages ​​can be distinguished:

  • machine;
  • machine-oriented (assemblers);
  • machine independent (high level languages).

Machine languages ​​and machine-oriented languages are low-level or first-generation languages ​​- 1GL , requiring the specification of fine details of the data processing process.

With the advent of the 2nd generation computer (transistor), second-generation languages ​​(2GL) appeared , in which the degree of integration of actions was much higher. These are languages ​​such as macro assembler and auto code.

High-level or third-generation languages ​​- 3GL mimic natural languages ​​using some words of the spoken language and common mathematical symbols. These languages ​​are more convenient for humans.

High Level Languages ​​(3GL) are divided into:

  • procedural (algorithmic) (Basic, Pascal, C, etc.), which are designed to uniquely describe the algorithms; To solve a problem, procedural languages ​​require in one form or another to explicitly record the procedure for solving it;
  • logical (Prolog, Lisp, etc.), which are focused not on the development of an algorithm for solving the problem, but on a systematic and formalized description of the problem so that the solution follows from the compiled description;
  • object-oriented (Object Pascal, C ++, Java, etc.), which are based on the concept of an object that combines data and actions on us. A program in an object-oriented language, solving a certain task, in essence describes a part of the world related to this task. The description of reality in the form of a system of interacting objects is more natural than in the form of interacting procedures.

Evolution of programming languages

The programming history shows the desire, on the one hand, to approach this ideal, and, on the other hand, to automate the task-solving process as much as possible so that the programmer does not describe the algorithms and actions in all details. The ideal case of such automation will be the complete absence of any sequences of actions - the operator will enter only the conditions of the problem - everything else, including the choice of solution method, the construction of data structures, the creation of algorithms will be performed by the programming system itself. Let's try to present our reasoning in the form of a diagram.

Levels of programming languages ​​and the evolution of languages

Figure 1 - Diagram of the level of languages ​​of mathematical writing.

As can be seen from the diagram, programming languages ​​are subject to some general pattern. Their level and degree of declarativeness is growing smoothly and interconnectedly. The most progressive for applied high-level programming are, apparently, languages ​​based on functional and logical approaches. (It should not be forgotten that many so-called artificial intelligence systems have been developed in the world - AI, which are not part of a specific group, but also have an undoubted influence on the evolution of languages.)


Comments


To leave a comment
If you have any suggestion, idea, thanks or comment, feel free to write. We really value feedback and are glad to hear your opinion.
To reply

Programming Languages and Methods / Translation Theory

Terms: Programming Languages and Methods / Translation Theory