History of programming languages

One of the most revolutionary ideas that led to the creation of automatic digital computing machines, was expressed in the twenties of the 19th century by C. Babbage, the idea of pre-recording the order of the machine's actions - program. From this moment, the history of programming languages begins.

Babbage, the idea of pre-recording the order of the machine's actions - program. From this moment, the history of programming languages begins

The revolutionary moment in the history of programming languages was the emergence of a system for encoding machine instructions with the help of special characters, proposed by John Mouchley, an employee of the University of Pennsylvania. The coding system proposed by Mouchley, carried away one of the employees of his company - Grace Murray Hopper, who devoted her entire life to computers and programming.

When working on the computer "Mark-1" G. Hopper and her group had to face many problems. In particular, they came up with subroutines.

At the dawn of the history of programming languages, machine code was the only means of communication between a person and a computer. The great achievement of the creators of programming languages was that they managed to make the computer itself work as an interpreter from these languages to machine code.

In the late 40's, before the arrival of G. Hopper in John Mouchley's firm, the latter created a system called "Short Code", which was a primitive high-level programming language. In it, the programmer wrote down the solved problem in the form of mathematical formulas, and then, using a special table, translated the symbol after the symbol, converted these formulas into two-liter codes. In the future, a special computer program turned these codes into binary machine code. The system developed by J. Mouchley was essentially one of the first primitive interpreters.

Already in 1951, Hopper created the world's first compiler and it also introduced the term itself. The Hopper compiler performed the function of combining commands and during the translation it organized subroutines, allocating computer memory, the conversion of high-level commands (at that time pseudocodes) into machine instructions.

The middle of the 50s is characterized by rapid progress in the history of programming languages. The role of programming in machine commands began to decrease. Programming languages of a new type began appearing, acting as mediators between machines and programmers. The first and one of the most common was Fortran, developed by a group of IBM programmers in 1954 (the first version).

In the mid-1960s, the staff of the Dartmouth College Mathematical Department Thomas Kurtz and John Kemeni created a specialized programming language that consisted of simple English words. The new language was called BASIC.

In the early 60's, all the existing high-level programming languages could be counted on the fingers, but later their number reached three thousand. Of course, the vast majority of languages have not received any widespread use in the history of programming languages; in the practical activity is used no more than two dozen. Developers oriented programming languages to different classes of tasks, to some extent tying them to specific computer architectures, realizing personal tastes and ideas. In the 1960s, attempts were made in the history of programming languages to overcome this "discord" by creating a universal programming language. The first child of this direction was PL/I (Programm Language One), 1967. Then ALGOL-68 (1968) claimed this role. It was assumed that such languages would develop and improve and supplant all others. However, none of these attempts to date has been unsuccessful. The all-encompassing language led to an unjustified, from the programmer's point of view, complexity of constructions, inefficiency of compilers.

In the late 50-ies in the history of programming languages appeared Algol (ALGOL, from ALGOrithmic Language - algorithmic language). Algol is designed to record algorithms, which are constructed as a sequence procedures used to solve the tasks.

The development of Algol's idea of structuring the development of algorithms found the highest reflection in the history of programming languages when the Swiss scientist Niklaus Wirth was created in the early 1970s by the Pascal language. The Pascal language was originally developed as an educational one, and, indeed, now it is one of the main programming languages in schools and universities.

The period from the late 60's to the early 80's is characterized in the history of programming languages by the rapid growth of the number of different languages, accompanied, paradoxically, by the software crisis. This crisis was particularly acute in the US military department. In January 1975, the Pentagon decided to put things in order in the chaos of translators and establish a committee, which was ordered to develop one universal language. The winner of the language was ADA.

A big imprint in the history of programming languages is the C language (the first version is 1972), which is very popular among software system developers (including operating systems). Si combines the features of both high-level language and machine-oriented language, allowing the programmer to all machine resources, which is not provided by languages such as BASIC and Pascal.

For many years, the software has been built on the basis of operational and procedural languages, such as Fortran, BASIC, Pascal, Ada, C. Classical operational and/or procedural programming requires from the programmer a detailed description of how to solve the problem, i.e. formulation of the algorithm and its special record. However, the expected properties of the result are not usually indicated. The basic concepts of the languages of these groups are the operator and the data. In the procedural approach, operators are combined into groups - procedures. Structured programming in general does not go beyond this direction, it only additionally fixes some useful techniques of programming technology.

A fundamentally different trend in the history of programming languages is associated with methodologies (sometimes called "paradigms") of nonprocedural programming. These include object-oriented and declarative programming. Object-oriented language creates an environment in the form of a set of independent objects. Each object behaves like an individual computer, they can be used to solve problems as "black boxes" without going into the internal mechanisms of their functioning. From object programming languages popular among professionals, one should first of all mention C++, for a wider range of programmers, environments like Delphi and Visual Basic are preferred.

Tools