• What are the differences between programming languages? Modern programming languages ​​and their use

    It's no secret that programmers are among the highest paid specialists around the world. Russia is no exception. Good programmers are also appreciated here. And if you're interested in a fast-growing and lucrative career, you might want to learn and become a programmer.

    To help you with this choice, I have collected data from various job search sites. Although it's not full list, but it provides insight into the most in-demand programming languages ​​(demanded by employers).

    9 most popular programming languages ​​of 2016

    It is not surprising that SQL tops the list, since it is used almost everywhere and in a wide range. Database technologies such as MySQL, PostgreSQL and Microsoft SQL are used on servers of large and small businesses, hospitals, banks, universities, etc. Indeed, almost every computer and person with access to a database eventually touches SQL. For example, everyone Android phones and iPhones have access to the database SQL data called SQLite and many mobile applications Developed by Google, Skype and Dropbox use it directly.

    1. Java

    The tech community recently celebrated Java's 20th anniversary. It is one of the most widely adopted programming languages, used by nearly 9 million developers, and runs on 7 billion devices worldwide. It is a programming language used to develop all native Android applications. The popularity of Java developers comes from the fact that the language has long-term compatibility, which ensures that older applications will continue to work now and in the future. The only difficulty is that this language is quite difficult to master, especially for beginners.

    JavaScript is another one of the most popular and powerful languages programming, and is used to bring web pages to life by making them interactive. For example, JavaScript can be used to add effects to web pages, display pop-up messages, or create games with basic functionality. It's also worth noting that JavaScript is scripting language World Wide Web, which is built into all major web browsers by default, including Internet Explorer, FireFox and Safari. Almost every site includes some JavaScript elements, which adds to the demand for JavaScript developers. In recent years, JavaScript has also started to be used as the basis of Node.js. server technology, which, among other things, allows for real-time communication.

    C# (pronounced C-Sharp) is relative new language programming developed by Microsoft for a wide range of enterprise applications, which run on the .NET Framework. An evolution of C and C++, the C# language is simple, modern, secure, and object-oriented.

    C++ (pronounced C-plus-plus) is an object-oriented programming language general purpose, based on the C language. Developed by Bjarne Stroustrup at Bell Labs, C++ was first released in 1983. Stroustrup maintains an extensive list of applications written in C++. The list includes Adobe and Microsoft applications, MongoDB databases, most of Mac OS/X and is the best language for studying the performance of mission-critical applications such as "twitch" game development or audio/video processing.

    Python is a general-purpose programming language that was named after Monty Python. Python is simple and easy to read (for those who know English). This excellent language for beginners and experienced professionals. There are many programming courses available for Python, 8 out of 10 computer science departments teach coding with using Python. Due to use Python language In the field of education, there are many libraries created for Python related to mathematics, physics, science processing, etc.

    Created by Danish-Canadian programmer Rasmus Lerdorf in 1994, PHP was not intended to be a new programming language. Instead, it was created to serve as a set of tools to help its creator maintain it personal page on the Internet (in PHP). Today, PHP is a server-side scripting language that can be used to create web pages written in HTML format. PHP is a very popular language because it is easy to use for new programmers, but it also offers many advanced features for more experienced programmers.

    Like Java or the C language, Ruby is a general-purpose programming language. Ruby on Rails is used to write web applications and also provides integration with the web server and database. Ruby on Rails has a lot positive qualities, including rapid development and a wide selection of libraries. It is used by many companies ranging from small startups to large enterprises. Hulu, Twitter, Github, and Living Social use Ruby on Rails for at least one of their web applications.

    In 2014 Apple year decided to invent their own programming language. The result is Swift, a new programming language for iOS and OS X developers. The developers claim that many parts of Swift are familiar to them from their experience working in C++ and Objective-C. Many companies in the West, including American Airlines, LinkedIn and Duolingo, have switched to Swift, and the language will become increasingly popular in the coming years.

    Any master has a full set of tools, each of which is suitable for a specific task. Likewise with programming, there will never be just one language, and each language will evolve and improve over time to keep up with innovation.

    That's why if you're interested in becoming a developer, it's important to become proficient in multiple programming languages ​​so you can be versatile and adaptable, and continue to learn languages ​​throughout your career.

    2) What is a programming language page 2

    3) What are programming languages ​​for? page 3

    4) What programming languages ​​exist pp. 4 – 7

    5) What is a compiler and interpreter page 8

    6) References page 9

    Introduction

    Until the mid-60s, computers were overly expensive machines that were used only for special tasks, and performed only one task at a time (the so-called. batch processing).

    The programming languages ​​of this era, like the computers they were used on, were designed for specific tasks, such as scientific computing. Since machines were expensive and only one task was performed at a time, machine time was also expensive - so speed of program execution came first.

    However, during the 60s, the price of computers began to fall so that even small companies could afford them; The speed of computers kept increasing and the time came when they often began to stand idle without tasks. To prevent this from happening, they began to introduce systems with time sharing(time-sharing).

    In such systems, processor time was “sliced”, and all users in turn received short sections of this time. The machines were fast enough to make each user at the terminal feel as if they were operating the system alone. The machine, in turn, was idle less, since it performed not one, but many tasks at once. Time sharing radically reduced the cost of machine time because one machine could be shared by hundreds of users.

    Under these conditions - when power became cheap and available - the creators of programming languages ​​increasingly began to think about ease of writing programs, and not just the speed of their execution. “Small” (atomic) operations performed directly by machine devices have been combined into “larger”, high-level operations and entire structures that are much easier and more convenient for humans to work with.

    What is a programming language

    Programming language- a formal sign system designed to describe algorithms in a form that is convenient for the performer (for example, a computer). A programming language defines a set of lexical, syntactic, and semantic rules used to compose a computer program. It allows the programmer to determine exactly what events the computer will react to, how data will be stored and transmitted, and what actions should be performed on it under various circumstances.

    Since the creation of the first programmable machines, humanity has already come up with more than two and a half thousand programming languages. Every year their number is replenished with new ones. Some languages ​​are used only by a small number of their own developers, while others become known to millions of people. Professional programmers sometimes use more than a dozen different programming languages ​​in their work.

    Language creators interpret the concept differently programming language. Among the communities of places recognized by most developers are the following:

    • Function: A programming language is intended for writing computer programs that are used to transmit instructions to a computer to perform a particular computing process and organize the control of individual devices.
    • Task: A programming language differs from natural languages ​​in that it is designed to transmit commands and data from a person to a computer, while natural languages ​​are used only for people to communicate with each other. In principle, we can generalize the definition of “programming languages” - this is a way of transmitting commands, orders, clear guidance for action; whereas human languages ​​also serve to exchange information.
    • Execution: A programming language can use special constructs to define and manipulate data structures and control the computation process.

    What are programming languages ​​for?

    The process of computer operation consists of executing a program, that is, a set of very specific commands in a very specific order. The machine form of the command, consisting of zeros and ones, indicates exactly what action should be performed. CPU. This means that in order to give the computer a sequence of actions that it must perform, you need to specify a sequence of binary codes for the corresponding commands. Machine code programs consist of thousands of instructions. Writing such programs is a difficult and tedious task. The programmer must remember the combination of zeros and ones of the binary code of each program, as well as binary codes data addresses used during its execution. It is much easier to write a program in some language that is closer to natural human language, and entrust the work of translating this program into machine codes to a computer. This is how languages ​​designed specifically for writing programs arose - programming languages.

    There are many different programming languages ​​available. In fact, you can use any of them to solve most problems. Experienced programmers know which language is best to use to solve each specific problem, since each language has its own capabilities, orientation towards certain types of problems, and its own way of describing concepts and objects used in solving problems.

    All the many programming languages ​​can be divided into two groups: languages low level And high level languages.

    Low-level languages ​​include assembly languages ​​(from the English toassemble - assemble, assemble). Assembly language uses symbolic commands that are easy to understand and quick to remember. Instead of a sequence of binary codes of commands, their symbolic designations are written, and instead of binary addresses of data used when executing a command, symbolic names of this data chosen by the programmer are written. Assembly language is sometimes called mnemonic code or autocode.

    Most programmers use high-level languages ​​to write programs. Like ordinary human language, such a language has its own alphabet - a set of symbols used in the language. These symbols are used to make up the so-called keywords of the language. Each of the keywords performs its own function, just as in our familiar language, words made up of letters of the alphabet of a given language can perform functions different parts speech. Keywords are linked together into sentences according to certain syntactic rules of the language. Each sentence defines a certain sequence of actions that the computer must perform.

    A high-level language acts as an intermediary between a person and a computer, allowing a person to communicate with a computer in a way more familiar to humans. Often such language helps to choose the right method for solving a problem.

    Before writing a program in a high-level language, the programmer must write algorithm solving a problem, that is, a step-by-step plan of action that needs to be completed to solve this problem. Therefore, languages ​​that require a preliminary compilation of an algorithm are often called algorithmic languages.

    What programming languages ​​are there?

    Fortran

    Programming languages ​​began to appear in the mid-50s. One of the first languages ​​of this type was the Fortran language (English FORTRAN from FORmulaTRANslator - formula translator), developed in 1957. Fortran is used to describe an algorithm for solving scientific and technical problems using a digital computer. Just like the first computers, this language was intended mainly for carrying out natural science and mathematical calculations. In an improved form, this language has survived to this day. Among modern high-level languages, it is one of the most used in conducting scientific research. The most common variants are Fortran-II, Fortran-IV, EASICFortran and their generalizations.

    ALGOL

    After Fortran in 1958-1960, the Algol language (Algol-58, Algol-60) appeared (English ALGOL from ALGOrithmicLanguage - algorithmic language). Algol was improved in 1964-1968 - ALGOL-68. ALGOL was developed by a committee in which included European and American scientists. It is a high-level language and allows you to easily translate algebraic formulas into program commands. Algol was popular in Europe, including the USSR, while the comparable Fortran was common in the USA and Canada. Algol had a significant influence on all later developed programming languages, and, in particular, on the Pascal language. This language, like Fortran, was intended for solving scientific and technical problems. In addition, this language was used as a means of teaching the basics of programming - the art of writing programs.

    Usually the term ALGOL means the language ALGOL-60, while ALGOL-68 considered as an independent language. Even when the Algol language almost ceased to be used for programming, it still remained official language for publishing algorithms.

    COBOL

    In 1959 - 1960, the COBOL language was developed (English COBOL from COmmom Business Oriented Language - a common business-oriented language). This is a third generation programming language, intended primarily for the development of business applications. Cobol was also intended for solving economic problems, processing data for banks, insurance companies and other institutions of this kind. The developer of the first unified Cobol standard was Grace Hopper ( grandmother Cobola).

    COBOL is usually criticized for being verbose and cumbersome, since one of the goals of the language's creators was to make the structures as close as possible to the English language. (Cobol is still considered the programming language in which the most lines of code have been written). At the same time, COBOL had excellent facilities for working with data structures and files for its time, which ensured its long life in business applications, at least in the United States.

    How to develop computer technology does not stand still, methods and programming languages ​​are constantly being improved. Let's consider what languages ​​exist in the modern computer field and their classification.

    General information

    The list of programming languages ​​is so wide and diverse that laying it out completely is an almost impossible task. Among all languages, three main subgroups can be distinguished:

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

    Among the developers of modern software The most popular are the following major programming languages. The list is given in descending order of popularity:

    1. Java.
    2. HTML.
    3. Visual Basic.
    4. Delphi.

    This list of programming languages ​​is far from complete, but these are the most popular languages, the knowledge of which may be required of a programmer when applying for a job. All of them are high level programming languages.

    Programming Basics

    Low-level programming languages ​​are those languages ​​that require consideration of the type and capabilities of the processor. The operators and methods of operation of such programming languages ​​are quite close to machine code; they require knowledge of the memory device personal computer and how the processor accesses it.

    It is difficult to name the different low-level programming languages. The list will still be reduced to one dominant language - assembly language. Since it allows you to compose program codes in notations close to machine code, assembler is used exclusively when writing system software, such as operating systems, device drivers and when programming control codes of microcircuits.

    The disadvantage of such programming languages ​​is that programs in them are written to perform specific tasks, specific device and their execution is impossible if transferred to another processor.

    Application development

    List of programming languages ​​to create custom applications, as well as for the development and implementation of custom software, has thousands of positions. As you understand, such diversity is due to the fact that a specific language is suitable for solving certain problems.

    Although these programming languages ​​are classified as a separate group, they are executed in machine code. To execute a finished program line by line and translate it into, use special programs- interpreters. If the translation program code When transferring from one language to another without executing commands, compiler programs do this. In general, programs designed to translate written programs from one formal programming language to another are called translators.

    Let's take a closer look at high-level programming languages. We won’t make a list, we’ll just write in a little more detail about each of the most popular ones.

    SQL

    A specialized programming language is intended primarily for working with database management systems and their programming. SQL translates to "specialized" Since the DBMS market has grown exponentially in recent decades, the popularity of this language does not come as a surprise.

    There are different opinions regarding the future of this language. It is definitely believed that the technology for creating relational databases was at its best, but its time is running out. The need for development in connection with the increasing volumes of processed data leads experts to the idea that in the future humanity simply needs a transition from relational to post-relational technologies, but taking into account maintaining compatibility with existing data banks.

    Javascript

    It rightfully ranks second among high-level programming languages. Easy to learn, convenient to use. Increased adaptability to programming compared to its progenitor leads to the fact that millions of people around the world work with this language. An object-oriented language based on C++, adapted to create programs and applications capable of processing huge flows of information in specialized environments and taking into account the specifics of the implementation environment of the finished product.

    Java technology is the basis that allows unlimited expansion of the infrastructure of enterprises and companies, capable of linking together systems of various calibers, from connecting to a telephone network via Wi-Fi to supercomputers.

    XML

    A descendant of HTML, this technology is an extensible markup language. It is adapted for interpreting documents. It carries out complex transformations and changes to documents. XML language used for transferring and temporarily storing data when working with various relational databases via the Internet.

    XML has already reached the point where it can claim to be the foundational technology for building corporate networks.

    Programming in Russian

    Most popular programming languages ​​use vocabulary English language. However, besides them, there are also Russian programming languages. The list in Russian is small, but subject area The industry in which they are used is very specialized. Let's give some examples.

    • 1C:Enterprise. A whole system designed to manage an organization in all areas of activity. You can often find “1C Programmer” in job advertisements.
    • Verb. An analogue of English-language Pascal.
    • Robik. A specialized programming language designed to teach children the basics of programming.
    • Rapier. A procedure-based language.

    As you can see, the list of programming languages ​​is so wide and diverse that it cannot be covered by any classifications or lists. If you decide to take up programming at an amateur or professional level, then remember that a programmer is a creative profession that requires not only knowledge, but also fantasy, imagination, intuition and even a little luck.

    The basis for working with the Internet is the markup language - html. It allows you to present information by assigning text, pictures, audio and video files with special properties, controlling their structure. To work with full-fledged web programming languages, you need to understand the structure of html documents and html commands - the so-called tags.

    PHP is a programming language for creating interactive websites. Php programs (scripts) are hosted on remote computers(servers). Internet user when accessing domain name requests files from the server. Php script generates html code depending on the user's request, the site works dynamically, like a full-fledged computer program responsive to actions.

    Typically, PHP interacts with a database that has its own query language. The most popular database query language is MySQL. It allows you to create relational databases data, working on the basis of relationships between table structures.

    C language group

    The C language, which later became the progenitor of dozens of languages, was created at the beginning of the second half of the 20th century to work directly with processor memory. Computers at that time they were huge and were used for military and scientific purposes.

    The C language has a simple structure, its commands can be reproduced even by children. "C" can be extended by the programming community using special function files - libraries.

    Based on the C language, a whole group of development tools (CLR) and full-fledged languages ​​has grown. C# (ASP platform) is the software basis for Microsoft products. C++ has become the favorite tool of developers around the world.

    Simple Pascal

    The Pascal language was created for educational purposes by the Scandinavian programmer Northus Wirth. This language for a long time It was taught in Soviet schools and universities, and was also used locally by scientific institutes in Europe. Due to difficulties with extensibility (Pascal lacks prototype library files that are widely used in C languages), the language is not widely used in software writing.

    Delphi is the successor of the Pascal language. Since many programmers received the basics of their specialty in the algorithmically simple Pascal language, the development team decided to create a tool for working in the successor to the Pascal language: after all basic commands familiar, there are many developed mathematical functions.

    Latest programming languages

    Usually new languages ​​appear to solve specific problems. IFrame is used to create VKontakte applications, Erlang is used to work with server load, NOSQL is used to create databases with an untyped architecture. At the very beginning, working with new tools can be difficult due to the lack of accompanying documentation, but there are also additional advantages hidden in this: you can communicate with “followers” ​​of the language, earn a name in the developer community, receive background information from the original source.

    The textbook consists of two sections: theoretical and practical. The theoretical part of the textbook outlines the foundations of modern computer science as a complex scientific and technical discipline, including the study of the structure and general properties information and information processes, general principles construction of computing devices, issues of organization and functioning of information and computer networks are considered, computer security, the key concepts of algorithmization and programming, databases and DBMS are presented. To control the acquired theoretical knowledge, self-testing questions and tests are offered. The practical part covers algorithms for basic actions when working with word processor Microsoft Word, tabular Microsoft editor Excel, a program for creating Microsoft Power Point presentations, archiving programs and antivirus programs. To consolidate the completed practical course, at the end of each section it is proposed to complete independent work.

    Book:

    Sections on this page:

    8.2. Programming languages

    Types of programming

    The progress of computer technology has determined the process of the emergence of new and diverse sign systems for recording algorithms - programming languages. The meaning of the appearance of such a language is an equipped set of computational formulas additional information what turns this set into the algorithm.

    Programming languages ​​are artificially created languages. They differ from natural ones in the limited number of “words” and very strict rules for writing commands (operators). The totality of such requirements forms the syntax of a programming language, and the meaning of each command and other language constructs forms its semantics.

    Programming languages ​​are formal languages ​​for human communication with a computer, designed to describe a set of instructions, the execution of which ensures the correct solution of the required task. Their main role is to plan information processing activities. Any programming language is based on a system of concepts, and with its help a person can express his thoughts.

    The connection between the language we think/program in and the problems and solutions we can imagine in our minds is very close. For this reason, limiting the properties of a language solely to the purpose of eliminating programmer errors is dangerous at best. As with natural languages, there are huge benefits to being at least bilingual. The language provides the programmer with a set of conceptual tools; if they do not meet the task, then they are simply ignored. For example, severe limitations of the pointer concept force the programmer to use vectors and whole arithmetic to implement structures, pointers, etc. Good design and freedom from errors cannot be guaranteed purely by language means.

    It may seem surprising, but a given computer is capable of running programs written in its native machine language. There are almost as many different machine languages ​​as there are computers, but they are all variations of the same idea—simple operations performed at lightning speed on binary numbers.

    Machine dependent programming languages

    Machine-dependent languages ​​are languages ​​whose sets of operators and visual means significantly depend on the characteristics of the computer (internal language, memory structure, etc.). These languages ​​are called low-level programming languages. They are focused on a specific type of processor and take into account its features. The operators of such a language are close to machine code and are focused on specific processor commands, that is given language is machine dependent. The low level language is Assembly language. With its help, very efficient and compact programs are created, since the developer gets access to all the capabilities of the processor. Similar languages ​​are used to write small system applications, device drivers, libraries. In cases where the amount of RAM and ROM is small (in the region of several kilobytes), there is no alternative to assembler. It is these programming languages ​​that allow you to obtain the shortest and fastest program code.

    Machine independent programming languages

    Machine-independent languages ​​are a means of describing algorithms for solving problems and information to be processed. They are easy to use for a wide range of users and do not require them to know the specifics of organizing the functioning of a computer and computing system.

    Such languages ​​are called high-level programming languages. Programs compiled in such languages ​​are sequences of statements structured according to the rules of viewing the language (tasks, segments, blocks, etc.). Language statements describe the actions that the system must perform after translating a program into machine language.

    Command sequences (procedures, subroutines) often used in machine programs are presented in high-level languages by individual operators. The programmer was able not to describe in detail the computational process at the level of machine instructions, but to focus on the main features of the algorithm.

    High-level programming languages ​​are much closer and more understandable to humans. They do not take into account the characteristics of specific computer architectures, that is, these languages ​​are machine independent. This allows a program once written in such a language to be used on various computers.

    It is possible to write programs directly in machine language, although this is difficult. At the dawn of computerization (in the early 1950s), machine language was the only language; man had not invented anything else by that time. To save programmers from the rigors of machine programming language, high-level languages ​​(i.e., non-machine languages) were created, which became a kind of connecting bridge between humans and the machine language of the computer. High-level languages ​​work through translation programs that input “source code” (a hybrid of English words and mathematical expressions that is read by a machine) and ultimately cause the computer to execute the corresponding commands that are given in machine language.

    High-level programming languages ​​include the following: Fortran, Cobol, Algol, Pascal, Basic, C, C++, Java, HTML, Perl and others.

    Using a programming language, it is not a finished program that is created, but only its text, which describes a previously developed algorithm. To get a working program, you must either automatically translate this text into machine code and then use it separately from the source text, or immediately execute the language commands specified in the program text. Translator programs are used for this.

    There are two main types of translators (Figure 8.4): interpreters, which scan and check source code in a single step, and compilers, which scan source code to produce machine language program text that is then executed separately.


    Figure 8.4. Types of translators

    When using compilers, the entire source text of the program is converted into machine codes, and it is these codes that are written into the memory of the microprocessor. When using an interpreter, the source text of the program is written into the microprocessor's memory, and translation is performed when the next statement is read. Naturally, the performance of interpreters is much lower compared to compilers, since when using an operator in a loop, it is translated many times. However, when programming in a high-level language, the amount of code that needs to be stored in internal memory, can be significantly less compared to the executable code. Another advantage of using interpreters is the easy portability of programs from one processor to another.

    One often-cited advantage of the interpretive implementation is that it allows for an "immediate mode." Direct mode allows you to ask the computer a task and returns the answer to you as soon as you press ENTER. In addition, interpreters have special attributes that make debugging easier. You can, for example, interrupt processing of an interpreter program, display the contents of certain variables, skim the program, and then continue execution. However, interpreter languages ​​have disadvantages. It is necessary, for example, to have a copy of the interpreter in memory at all times, whereas many of the interpreter's capabilities, and therefore its capabilities, may not be necessary for execution specific program. When executing program statements, the interpreter must first scan each statement to read its contents (what is this person asking me to do?) and then perform the requested operation. Operators in loops are scanned excessively.

    A compiler is a translator of text into machine language that reads the source text. It evaluates it according to the syntactic structure of the language and translates it into machine language. In other words, the compiler does not execute programs, it builds them. Interpreters cannot be separated from the programs they run; compilers do their job and leave the scene. When working with a compiled language such as Turbo BASIC, you will find it necessary to think of your programs in terms of two main phases of their life: the compiling period and the running period. Most programs will run four to ten times faster than their interpreter equivalents. If you work on improving it, you can achieve a 100x improvement in performance. The flip side of the coin is that programs that spend most of their time fiddling with files on disk or waiting for input won't be able to show any impressive speed increases.

    The process of creating a program is called programming.

    There are several types of programming.

    Algorithmic or modular

    The basic idea of ​​algorithmic programming is to split a program into a sequence of modules, each of which performs one or more actions. The only requirement for a module is that its execution always begins with the first command and always ends with the very last one (that is, so that it is impossible to access module commands from the outside and transfer control from the module to other commands, bypassing the final one).

    The algorithm in the selected programming language is written using commands for describing data, calculating values, and controlling the sequence of program execution.

    The program text is a linear sequence of assignment, loop, and conditional statements. In this way, you can solve not very complex problems and create programs containing several hundred lines of code. After this, the understandability of the source text drops sharply due to the fact that general structure The algorithm is lost behind specific language operators that perform too detailed, elementary actions. Numerous nested conditional statements and loop operators arise, the logic becomes completely confusing, and when trying to correct one erroneous statement, several new errors are introduced related to the peculiarities of the operation of this operator, the results of which are often taken into account in the most different places programs.

    Structured programming

    When creating medium-sized applications (several thousand lines source code) structured programming is used, the idea of ​​which is that the structure of the program should reflect the structure of the problem being solved so that the solution algorithm is clearly visible from the source text. To do this, you need to have the means to create a program not only using three simple operators, but also using means that more accurately reflect the specific structure of the algorithm. For this purpose, the concept of a subroutine was introduced into programming - a set of operators that perform required action and independent of other parts of the source code. The program is divided into many small subroutines (taking up to 50 statements - a critical threshold for quickly understanding the purpose of the subroutine), each of which performs one of the actions specified in the original task. By combining these subroutines, it is possible to form the final algorithm not from simple operators, but from complete blocks of code that have a certain semantic meaning, and such blocks can be referred to by name. It turns out that subroutines are new operators or language operations defined by the programmer.

    The ability to use subroutines classifies a programming language as a procedural language.

    The presence of routines allows you to design and develop an application from the top down - this approach is called top-down design. First, several subroutines are identified that solve the most global tasks (for example, data initialization, the main part and completion), then each of these modules is detailed at a lower level, breaking down, in turn, into a small number of other subroutines, and so on until until the entire task is completed.

    This approach is convenient because it allows a person to constantly think at the subject level, without descending to specific operators and variables. In addition, it becomes possible for some not to implement subroutines immediately, but to temporarily postpone them until other parts are completed. For example, if there is a need to calculate complex mathematical function, then a separate subroutine for such a calculation is allocated, but it is implemented temporarily by one operator, which simply assigns a pre-selected value. Once the entire application is written and debugged, then you can begin to implement this function.

    It is also important that small subroutines are much easier to debug, which significantly increases the overall reliability of the entire program.

    A very important characteristic of subroutines is their reusability. Integrated programming systems come with large libraries of standard routines that can significantly increase productivity by leveraging someone else's work to create commonly used routines.

    There are two types of subroutines - procedures and functions. They differ in that the procedure simply executes a group of operators, and the function in addition calculates a certain value and passes it back to main program(returns value). This value has a certain type (the function is said to have such and such a type).

    Subroutines perform three important tasks:

    Eliminates the need to repeatedly repeat similar fragments in the program text;

    Improve the structure of the program, making it easier to understand;

    Increases resistance to programming errors and unforeseen consequences during program modifications.

    Object-oriented programming

    In the mid-80s, a new direction in programming emerged based on the concept of an object. Until that time, the main limitations on the ability to create large systems were imposed by the disunity in the program of data and methods for processing it.

    Real objects in the surrounding world have three basic characteristics: they have a set of properties capable of different methods change these properties and respond to events that arise both in the surrounding world and within the object itself. It is in this form that the concept of an object is implemented in programming languages ​​as a set of properties (data structures characteristic of this object), methods for processing them (routines for changing properties) and events to which this object can react and which lead, as a rule, to a change in the properties of the object.

    The emergence of the ability to create objects in programs has had a qualitative impact on the productivity of programmers. The maximum volume of applications that became available for creation by a group of 10 people programmers increased to millions of lines of code over several years, while at the same time it was possible to achieve high program reliability and, importantly, reuse previously created objects in other tasks.

    Objects can have identical structure and differ only in property values. In such cases, the program creates new type, based on a single object structure. It is called a class, and each concrete object that has the structure of this class is called an instance of the class.

    An object-oriented programming language is characterized by three main properties.