Procedural programming languages are programming languages whose code can be divided into procedures.

Programming is a very voluminous field of knowledge, which no person in the world can study in its entirety. There are now more than 120 different programming languages, each of which is used to some extent to solve their specific problems. All languages are divided into different types. A very prominent place was once occupied by the so-called procedural programming languages. Some of them are actively used even now.

Procedural programming languages

The main feature of procedural programming languages is their imperative, which means creating a clear set of consecutive instructions which must be executed by computer in turn. The paradigm of imperative corresponds to the following main characteristics:

The entire program code consists of a set of commands or instructions that are executed by the computer sequentially in a given order;
The data from the first counts can be stored and retrieved from memory at any time and be used.
Even the syntax used in such languages is somewhat imperative – the commands to execute are like orders in ordinary human speech. Other important procedural programming features are the use of subroutines, the active use of the assignment operator, and the presence of compound expressions.

Some procedural languages
Historically, procedurally-oriented programming languages were the first to appear and all further development of computing technology was largely based on them. That’s why we can say that all the first programming languages were procedural. Let’s consider some of them in detail.

Machine codes and assembler
Traditionally procedural programming languages include machine instructions, as well as assembly languages, which appeared later. Machine code was a system of consecutive commands written for a particular computer which are executed by the device processor or its firmware – already written sequences of processor’s actions. Such instructions are based on the operation of a binary code, which is expressed as a sequence of zeros and ones. To the computer, zero means no electrical signal, and one means that the unit pulse is emitted. Procedural programming is strictly enforced here – each subsequent instruction in a program can be executed only by implementing the previous one. If an error occurred in one of the commands, the program would simply stop and the engineer would have to look for the error in the code.

Assembler languages function in a similar way. The complexity of the commands had been greatly expanded, macros are used, and it’s possible to create convenient addressing.

Fortran
First introduced in the 1950s, Fortran is also a procedural programming language. Of course, its capabilities were incomparably greater than those of the first machine codes and assemblers. This language belongs to high-level programming languages, it has its own translator, and allows to solve serious mathematical and logical problems. Fortran was used to automate calculations of linear, differential and integral equations, approximate functions, and Fourier transforms. A great many libraries of Fortran packages are available and actively used even today.

С
The C language, which has its origins in the distant ’70s, is also a procedural language. Its procedures and functions are very similar to classical assembler, allowing this language to easily handle hardware directly. In this language are written operating systems, drivers, a wide variety of application software. At the same time C has almost the full functionality of what non-procedural programming languages offer.

Pascal
Known to almost every student Pascal also belongs to procedural languages. If there is an error in the program code here, it will not start. Subroutines, independent data structures can be used here. The problem to be solved with Pascal is sort of divided into simpler tasks (which is typical of procedural languages).

Some features of procedural programming
The basic notions from PP can be called the following:

Module. A part of a program which can be stored in a separate file. It performs part of the functions associated with some specific variables, objects or constants;

Data type. As in other types of languages, this concept denotes some array of data, which are defined to the same type;

Function. A completely independent and complete piece of software that solves the task assigned to it. Procedural languages often have many built-in functions, but you can write new ones for your tasks.