• The main types of programming languages. List of programming languages. Low and high level programming languages

    When you're trying to figure out which programming language to start learning, you're likely to come across the terms "high level" and "low level". People talk about high and low programming languages ​​all the time. low level. But what exactly does this mean? And what does it mean to learn to code? Let's start with the definitions of each.


    High and Low Level Programming Languages

    In this article I will talk about "high" and "low level" languages. But there are no special criteria for determining this. Just keep in mind that this depends a lot on your perspective. If you are a C programmer, Java might seem pretty high level. If you're used to Ruby, Java may seem like a low level language.

    Machine code and low-level languages

    Whether a language is considered high-level or low-level (or somewhere in between), it's about abstraction. Machine code does not have an abstraction - it contains individual instructions that are passed to the computer. And since machines only deal with numbers, they are represented in binary (although they are sometimes written in decimal or hexadecimal notation).

    Here is an example of native code:

    In machine code, operations must be specified exactly. For example, if a piece of information needs to be retrieved from memory, the machine code will have to tell the computer where to find it in memory.

    Writing directly to machine code is possible, but very difficult.

    Low-level programming languages ​​add a bit of abstraction to machine codes. This abstraction hides specific machine code instructions behind declarations that are more human readable. Assembly languages ​​are the lowest level languages ​​next to machine code.

    In machine code, you can write something like "10110000 01100001", but assembly language can simplify this as "MOV AL, 61h". There is still an almost one-to-one correspondence between what is written in assembly language and the instructions given to the machine.

    By moving to more popular programming languages, you end up with something like C. Although this language is not as low-level as assembly language, there is still a strong correspondence between what is written in C and machine code. Most operations written in C can be filled with a small number of machine code instructions.

    High level programming languages

    Like lower level languages, higher levels cover a wide range of abstractions. Some languages, such as Java (which many consider to be middle-level programming languages), still give you a lot of control over how the computer manages memory and data.

    Others, like Ruby and Python, are very abstract. They give you less access to lower level functions, but the syntax is much easier to read and write. You can group things in classes that inherit characteristics, so you only need to declare them once.

    Variables, objects, subroutines, and loops are important parts of high-level languages. These concepts and more will help you tell the machine a lot of things with short, concise statements.

    If an assembly language has a nearly uniform correspondence between its instructions and machine code instructions, a higher-level language can send dozens of instructions with a single line of code.

    It's important to note that "high-level programming languages" can include anything more abstract than assembly language.

    What language to study: low or high level?

    This is definitely general question among new and novice programmers. Which programming languages ​​are better to learn: high or low level? As is the case with many programming questions, the question of high-level and low-level programming languages ​​is not so simple.

    Both types of languages ​​have important advantages. Low-level languages, because they require little interpretation by the computer, are usually very fast. And they give programmers a lot of control over data storage, memory, and retrieval.

    However, high-level languages ​​are intuitive and allow programmers to write code much more efficiently. These languages ​​are also considered "safer" as there are more safeguards that prevent a coder from issuing badly written commands that can cause damage. But they don't give programmers the same control over low-level processes.

    With that in mind, here is a list of popular languages ​​on a scale from low to high:

    • JavaScript
    • Python

    Of course, this is somewhat subjective. And it only includes a tiny fraction of the available languages.

    But this should give you some idea of ​​what level the languages ​​you are interested in are at.

    What do you want to do?

    When deciding which language you will learn, your first question should be: what do you want to program?

    If you want to program OS, kernel or whatever is needed to run on top speed, a lower level language might be a good choice. Much of Windows, OS X, and Linux is written in C and C-derived languages ​​such as C++ and Objective-C.

    Many modern applications are written in higher-level languages ​​or even domain-specific languages. Python and Ruby are especially popular for web applications, although HTML5 is getting more and more powerful. Languages ​​like Swift, C#, JavaScript and SQL have their own strengths and weaknesses.

    I recently read a topic on a programming forum and came across an interesting suggestion: study both levels at once. You will gain a deeper understanding of the types of abstractions that make a higher level language more efficient.

    Of course, learning two languages ​​at the same time isn't easy, so you might want to stretch them out a bit. And choosing the two languages ​​that are most similar can be helpful.

    Again, we're back to what I was talking about earlier: choose a language based on what you want to do. Do some research to find out what languages ​​people use in their field. Then use this information to choose a high and low level language and start learning them.

    You will soon see the parallels and you will gain a much deeper understanding of how programming works.

    Focus on the end, not the means

    There are many criteria that you can use to select a programming language. One of the criteria is high and low level. But in almost every case, the criteria you should use is what you want to program.

    Your project might benefit from a low-level language. Or it could be much more efficient at a high level. You must choose right tool for work. Focus on your goal, and choose the right language every time.

    Do you have experience with high and low level languages? Do you prefer one over the other? Share your thoughts in the comments below!

    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 in compiling a computer program. It allows the programmer to determine exactly what events the computer will respond to, how data will be stored and transmitted, and exactly what actions should be performed on these under various circumstances.

    Since the creation of the first programmable machines, mankind has 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, others become known to millions of people. Professional programmers sometimes use more than a dozen different programming languages ​​in their work.

    The creators of languages ​​interpret the concept differently. programming language. Among the common places recognized by most developers are the following:

    · Function: a programming language is designed to write computer programs that are used to transmit instructions to a computer for the execution of a particular computing process and the organization of control of individual devices.

    · Task: A programming language differs from natural languages ​​in that it is designed to transfer commands and data from a person to a computer, while natural languages ​​are used only for communication between people. In principle, one can generalize the definition of "programming languages" - this is a way of transmitting commands, orders, a clear guide to action; while human languages ​​also serve to exchange information.

    · Execution: A programming language may use special constructs to define and manipulate data structures and control the process of computation.

    3. Stages of solving the problem on a computer.

    The most effective application of VT was found in carrying out labor-intensive calculations in scientific research and engineering calculations. When solving a problem on a computer, the main role still belongs to a person. The machine only performs its tasks according to the developed program. the role of man and machine is easy to understand if the problem solving process is broken down into the steps listed below.

    Formulation of the problem. This stage consists in a meaningful (physical) formulation of the problem and the determination of final solutions.

    Construction of a mathematical model. The model must correctly (adequately) describe the basic laws physical process. Building or choosing a mathematical model from existing ones requires a deep understanding of the problem and knowledge of the relevant sections of mathematics.

    World Cup development. Since the computer can perform only the simplest operations, it "does not understand" the problem statement, even in a mathematical formulation. To solve it, a numerical method must be found that makes it possible to reduce the problem to some computational algorithm. In every specific case it is necessary to choose the appropriate solution from the already developed standard ones.

    Algorithm development. The process of solving the problem (computing process) is written as a sequence of elementary arithmetic and logical operations, leading to the final result and called the algorithm for solving the problem.

    Programming. The algorithm for solving the problem is written in a machine-understandable language in the form of a precisely defined sequence of operations - a program. The process is usually done with the help of some intermediate language, and its translation is carried out by the machine itself and its system.

    Program debugging. The compiled program contains various kinds of errors, inaccuracies, and omissions. Debugging includes program control, diagnostics (search and determination of the content) of errors, and their elimination. The program is tested on solving control (test) tasks to obtain confidence in the reliability of the results.

    Carrying out calculations. At this stage, the initial data for the calculations are prepared and the calculation is carried out according to the debugged program. at the same time, to reduce manual labor in processing the results, convenient forms of issuing results in the form of text and graphic information, in a human-readable form.

    Analysis of results. The calculation results are carefully analyzed, and scientific and technical documentation is drawn up.

    4. What are programming languages ​​for?

    The process of computer operation consists in executing a program, that is, a set of well-defined instructions in a well-defined order. The machine form of the command, consisting of zeros and ones, indicates what kind of action the central processor should perform. This means that in order to tell the computer the sequence of actions that it must perform, you need to set the 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 in its execution. It is much easier to write a program in some language closer to natural human language, and entrust the computer with the task of translating this program into machine codes. Thus, languages ​​​​designed specifically for writing programs arose - programming languages.

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

    The whole set of programming languages ​​can be divided into two groups: low level languages And high level languages.

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

    Most programmers use high-level languages ​​to write programs. Like an ordinary human language, such a language has its own alphabet - a set of symbols used in the language. These symbols form the so-called key words of the language. Each of the keywords performs its function, just as in the language we are used to, words made up of the letters of the alphabet of this language can perform the functions different parts speech. Keywords are connected to each other into sentences according to certain syntactic rules of the language. Each sentence defines some 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 more familiar way for a person. Often this language helps to choose correct method problem solving.

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

    5. What are the programming languages

    1.1 Fortran

    Programming languages ​​have been appearing since the mid-1950s. 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 the 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 our time. Among modern languages high level, it is one of the most used in scientific research. The most common variants are Fortran-II, Fortran-IV, EASICFortran and their generalizations.

    1.2 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 that included European and American scientists. It belongs to high-level languages ​​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 noticeable 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 programming.

    Usually, the term Algol refers to 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.

    1.3 Cobol

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

    Cobol is commonly criticized for being verbose and unwieldy, as one of the goals of the language's creators was to make the constructs as close to English as possible. (To this day, Cobol is considered the programming language with the most lines of code written in it.) At the same time, Cobol had excellent facilities for working with data structures and files for its time, which gave it a long life in business applications, at least in the US.

    1.4 Lisp

    Almost simultaneously with Cobol (1959 - 1960), the Massachusetts Institute of Technology created the Lisp language (eng. LISP from LIStProcessing - list processing). Lisp is based on the representation of a program by a system of linear lists of symbols, which, moreover, are the main data structure of the language. Lisp is considered the second oldest high-level programming language after Fortran. This language is widely used to process symbolic information and is used to create software that mimics the activities of the human brain.

    Any Lisp program consists of the sequence expressions(forms). The result of the program is to evaluate these expressions. All expressions are written as lists- one of the main structures of Lisp, so they can easily be created through the language itself. This allows you to create programs that modify other programs or macros, allowing you to significantly expand the capabilities of the language.

    The main meaning of the Lisp program is "life" in character space: movement, creativity, memorization, creation of new worlds, etc. Lisp as a metaphor for the brain, a symbol, a metaphor for a signal: "How the biological analysis of signals by the brain external factor- physical and chemical impact, which is an irritant for the body, turns into a biologically significant signal, often vital, which determines all the behavior of a person or animal; and how different signals are divided into positive, negative and indifferent, indifferent. The signal is already an integrative concept. It is an identification mark of a group, complex stimuli, interconnected by a common history and cause-and-effect relationships. In this complex, a system of stimuli, the signal stimulus itself is also a constituent element, and under other circumstances its role may belong to another stimulus from the complex. All the past experience of an animal or a person is concentrated in the signal.

    1.5 BASIC

    In the mid-60s (1963), Dartmouth College (USA) created the BASIC language (eng. BASIC from Beginner's Allpurpose Instruction Code - an all-purpose symbolic instruction code for beginners). Over time, as other dialects began to appear, this "original" dialect became known as Dartmouth BASIC. The language was based partly on Fortran II and partly on Algol-60, with additions to make it suitable for time-sharing and, later, text processing and matrix arithmetic. BASIC was originally implemented on the GE-265 mainframe with support for multiple terminals. Contrary to popular belief, at the time of its inception it was a compiled language.

    BASIC was designed so that students could write programs using time-sharing terminals. It was created as a solution to problems related to the complexity of older languages. It was intended for more "simple" users, not so much interested in the speed of programs, but simply in the ability to use a computer to solve their problems. Due to the simplicity of the BASIC language, many novice programmers start their programming journey with it.

    1.6 Fort

    In the late 60s - early 70s, the Forth language appeared (English FOURTH - fourth). This language began to be used in control problems various systems after its author Charles Moore wrote on it a program designed to control the radio telescope of the Arizona Observatory.

    A number of properties, namely interactivity, flexibility and ease of development, make Fort very attractive and effective language in applied research and in the creation of tools. Embedded control systems are obvious areas of application for this language. It also finds application in programming computers running various operating systems.

    1.7 Pascal

    The Pascal language, which appeared in 1972, was named after the great French mathematician of the 17th century, the inventor of the world's first arithmetic machine, Blaise Pascal. This language was created by the Swiss computer scientist Niklaus Wirth as a language for teaching programming methods. Pascal is a general purpose programming language.

    The features of the language are strict typing and the availability of structural (procedural) programming tools. Pascal was one of the first such languages. According to N. Wirth, the language should contribute to the discipline of programming, therefore, along with strong typing, possible syntactic ambiguities are minimized in Pascal, and the syntax itself is intuitive even at the first acquaintance with the language.

    The Pascal language teaches not only how to write a program correctly, but also how to correctly develop a method for solving a problem, choose ways to represent and organize the data used in the problem. Since 1983, the Pascal language has been introduced into training courses US high school computer science.

    1.8 Ada

    In 1983, the Ada language was created under the auspices of the US Department of Defense. The language is remarkable in that a lot of errors can be detected at the compilation stage. In addition, many aspects of programming that are often left to the operating system (parallelism, exception handling) are supported. In 1995, the Ada 95 language standard was adopted, which develops previous version, adding object orientation to it and correcting some inaccuracies. Both of these languages ​​are not widely used outside of the military and other large-scale projects (aviation, rail transport). The main reason is the difficulty of mastering the language and rather cumbersome syntax.

    Ada's immediate predecessors are Pascal and its derivatives, including Euclid, Lis, Mesa, Modula, and Sue. Some concepts from ALGOL-68, Simula, CLU and Alphard have been used.

    The developers of Ada were primarily concerned with:

    Reliability and operational qualities of programs;

    Programming as a kind of human activity;

    efficiency.

    In table. 1 shows the main characteristics of the Ada language from the point of view of the object approach.

    Table 1

    1.9 Xi

    Currently, the C language (C is the letter of the English alphabet) is popular among programmers. The C language originates from two languages, BCPL and B. In 1967, Martin Richards developed BCPL as a language for writing system software and compilers. In 1970, Ken Thompson used B to build early versions of the UNIX operating system on a DEC PDP-7 computer. In both BCPL and B, variables were not divided into types - each data value occupied one word in memory and the responsibility for distinguishing between integers and real numbers, for example, fell entirely on the programmer's shoulders. The C language was developed (based on B) by Dennis Ritchie from Bell Laboratories and was first implemented in 1972 on a DEC PDP-11 computer. C became famous as the language of the UNIX operating system. Today, almost all major operating systems have been written in C or C++. After two decades, C is available on most computers. It is independent of the hardware. In the late 70s, C evolved into what we call "traditional C". In 1983, the American National Computer and Information Processing Standards Committee established a single standard for this language. This language has rich facilities, allows you to write flexible programs that use all the capabilities of modern personal computers.

    1.10 Prologue

    Another language, which is considered the language of the future, was created in the early 70s by a group of specialists from the University of Marseille. This is Prolog language. It got its name from the words "Programming in the language of LOGIC". This language is based on the laws of mathematical logic. Like the Lisp language, Prolog is used mainly in research in the field of software simulation of the human brain. Unlike the languages ​​described above, this language is not algorithmic. It belongs to the so-called descriptive(from English descriptive - descriptive) - descriptive languages. A descriptive language does not require the programmer to develop all the stages of a task. Instead, in accordance with the rules of such a language, the programmer must describe the database corresponding to the problem being solved, and the set of questions that need to be answered using the data from this database.

    In recent decades, programming has emerged and received significant development object-oriented an approach. This is a programming method that imitates the real picture of the world: the information used to solve a problem is represented as a set of interacting objects. Each object has its own properties and behaviors. The interaction of objects is carried out using message passing: each object can receive messages from other objects, store information and process it in a certain way, and, in turn, send messages. Just like in the real world, objects keep their properties and behavior together, inheriting some of them from parent objects.

    The object-oriented ideology is used in all modern software products, including operating systems.

    First object-oriented language Simula -67 was created as a means of simulating the operation of various devices and mechanisms. Most modern programming languages ​​are object-oriented. Among them are the latest versions of the language Turbo - Pascal , C ++, Ada and others.

    Currently widely used systems visual programming Visual Basic , Visual C ++, Delphi and others. They allow you to create complex application packages with a simple and convenient user interface.

    1.11 Java

    Since 1995, a new object-oriented language has become widespread Java programming, focused on computer networks and, above all, on the Internet. The syntax of this language resembles that of C++, but the two languages ​​have little in common. Java is an interpreted language: it has an internal representation (bytecode) and an interpreter for this representation, which are already implemented on most platforms. The interpreter simplifies the debugging of programs written in the Java language, ensures their portability to new platforms and adaptability to new environments. It allows you to exclude the impact of programs written in the Java language on other programs and files available on the new platform, and thereby ensure the safety of the execution of these programs. These properties of the Java language make it possible to use it as the main programming language for programs distributed over networks (in particular, over the Internet).

    1.12 Object Pascal

    Object Pascal was created by people at Apple Computer (some of whom were members of the Smalltalk project) in collaboration with Niklaus Wirth, creator of the Pascal language. Object Pascal has been known since 1986 and is the first object-oriented programming language to be included in the Macintosh Programmer's Workshop (MPW), the development environment for Apple's Macintosh computers.

    There are no class methods, class variables, multiple inheritance, and metaclasses in this language. These mechanisms are excluded on purpose to make the language easy to learn for beginning "object" programmers.

    In table. 2 are given General characteristics Object Pascal.

    Table 2. Object Pascal.

    In recent years, this language has become very popular thanks to Borland's Delphi system.

    1.13 Visual object-oriented design system Delphi.

    The appearance of Delphi could not go unnoticed among the many computer users. The assessments of experts studying the possibilities of this new Borland product are usually painted in enthusiastic tones. The main advantage of Delphi is that visual programming ideas are implemented here. The visual programming environment turns the process of creating a program into a pleasant and easy to understand application construction from a large set of graphical and structural primitives.

    The Delphi system allows you to solve many problems, in particular:

    · Create complete Windows applications of various kinds: from purely computational and logical to graphic and multimedia.

    · Quickly create (even for novice programmers) a professional-looking window interface for any application.

    Create powerful systems for working with local and remote databases

    · Create help systems(.hlp files) for your applications and more. others

    Delphi is an extremely fast growing system. The first version - Delphi 1.0 was released in February 1995. And then new versions were released annually.

    Each subsequent version of Delphi supplemented the previous one. Most versions of Delphi are available in several versions: Standard - standard, Professional - professional, Client / Server - client / server, Enterprise - database development subject areas. The options differ mainly in different levels of access to database management systems. The last options, Client/Server and Enterprise, are the most powerful in this regard.

    Delphi is a combination of several critical technologies:

    High-performance compiler to machine code

    Object-oriented component model

    Visual (and, therefore, high-speed) building applications from software prototypes

    · Scalable tools for building databases

    Screen structure in Delphi environment.

    After calling Delphi in Windows, several windows appear (Fig. 1.):

    main window,

    form window,

    Object Inspector window,

    Object tree window,

    Program code window.


    Fig1. Screen structure in Delphi environment.

    Consider the graphical menu of the Delphi system, located at the top of the screen, made up of icons. On the left side graphic menu is the toolbar. Tools execute some commands of the main menu - such duplication is often practiced in tool environments. This panel contains, in particular, a button to save a project to disk, a button to open a project, a button to launch a program for execution.

    The next part of the graphical menu is the palette of components arranged as sets of icons. The collection of sets constitutes a visual component library (VCL). There are several categories of components, each of which is associated with its own tab. With the help of the component palette, we will instantiate the components (or objects) on the form.

    In order to place an object in the form, you need to "click" on the corresponding palette button and then click inside the form window: an object will be inserted in the specified place on the form - an instance of the component of the selected type.

    The Object Inspector window is a window that displays the properties of either a form or an object placed on the form. In our case, the current component is the form, so in the figure, the properties window shows the properties of the form.

    The properties window has two tabs - Properties and Events, with which you can get rows (fields) in the window to set, respectively, the properties of the component (i.e., object or form) and its reaction to various events. The property defines an attribute of the component, such as the size of a button or the font of a label. An event means, for example, actions such as clicking a button or closing a window.

    The object tree window appeared in version 6 and is designed to visually display the relationships between individual objects placed on the active form or in the active data module.

    The program code window is intended for creating and editing program text. It initially contains minimal source text.

    Delphi projects. A Delphi project consists of forms, modules, project settings, resources, and so on. All of this information is stored in files. Many of these files are automatically generated by Delphi when you build your application. Resources such as bitmaps, icons, and so on are found in files that you obtain from other sources or that you create with the many tools and resource editors at your disposal. In addition, the compiler also creates files.

    The files created during the design process are shown in Table. 3.

    The main part of the application is the project file (.dpr) containing the Object Pascal code that starts the program execution and provides initialization of other modules. It is created and modified by Delphi automatically during application development. The name given to the project file during the saving process becomes the name of the executable file.

    Project file (.dpr) This text file used to store information about forms and modules. It contains statements for initializing and launching programs for execution.
    Module file (.pas) Each form you create has a module text file that is used to store the code. You can create modules that are not related to forms. Many of Delphi's functions and procedures are stored in modules.
    Shape file (.dfm) This is a binary or text file that is created by Delphi to store form information. Each form file has a corresponding module file (.pas)
    Project settings file (.dfo) This file stores project settings.
    Resource file(.res) This binary contains the icon used by the project and other resources
    Backup files (.~dpr, .~dfm, .~pas) These are the backup files for the project, form, and module files, respectively. If something is hopelessly corrupted in the project, you can change the extensions of these files accordingly and thus return to the previous uncorrupted version.
    Windows configuration file (.dsk) The file stores the configuration of all windows of the development environment.
    Executable file (.exe) This is the application's executable file. He is autonomous executable, which doesn't require anything else, unless you use libraries contained in DLLs, OCX, etc.
    Module object file (.dcu) This is the compiled module file (.pas) that is linked into the final executable.

    Table 3. Files created during the design process.


    Currently, the 7th version of the Delphi system has already been released. In record time, she has become one of the most popular systems programming in the world. Many developers around the world are firmly committed to using Delphi as a tool to create highly efficient client-server applications.

    Programming evolution tree

    Figure 1Programming evolution tree

    6. Bibliography:

    1. I.T. Zaretskaya, B.G. Kolodyazhny, A.N. Gurzhiy, A.Yu. Sokolov. Informatics 10-11 class. - K .: "Forum", 2001

    1. Screen structure in Delphi environment (http://textbook.keldysh.ru/distant/delphi/del_2.htm)

    2. Patrikeev Yu. N. "Object-oriented design" (http://www.object.newmail.ru/oop1.html)

    3. S. Nemnyugin, L. Percolab "Learning TurboPascal" - St. Petersburg: Peter, 2002.

    2. Kh.M. Deitel. How to program in S. - M .: "Binom", 2000

    3. Internet page: http://ru.wikipedia.org/wiki/LISP

    Programming for beginners

    To begin with, I would like to say that anyone can manage a computer and create programs. You don't need to have incredible intelligence or a degree in mathematics to create computer programs. All you need is a desire to understand something and patience so as not to quit classes.

    The ability to write programs is the same skill as the ability to swim, dance or juggle. Some people do do this much better than others, but anyone can achieve certain results with proper practice. It is for this reason that children become programming aces at an early age. Children are not necessarily brilliant; they just tend to learn new things and are not afraid to make mistakes.

    Despite the fact that computers seem like very complex electronic monsters, relax. Very few people know exactly how search engines work, which allow you to quickly find the information you need on the Internet, and some people have not figured out how to drive a car. In the same way, almost anyone can learn how to write programs without going into details about exactly how a computer works.

    Generally speaking, a program tells the computer how to solve a particular problem. Since the world is full of problems, the number of programs that people can write is endless.

    However, in order to tell a computer how to solve one huge problem, you usually have to tell the computer how to solve a whole series of small problems that make up the big problem.
    In fact, programming is not difficult at all and is not something mysterious and supernatural. If you are able to write step by step instructions, which will allow a person to find your house, you can write a computer program.

    The hardest part of programming is identifying the little problems that make up the problem you need to solve. Since computers are absolutely stupid, you will have to tell them how to perform any action.

    If you think that creating a program is more interesting than using it, you have everything you need to create computer programs. If you want to learn how to write computer programs, you need the following three qualities.

    Pursuit. If you really want something, you will definitely get it (but if you do something illegal, you risk spending a lot of time in prison). If you want to learn how to program, your desire will definitely help you, no matter how many obstacles will be in your way.

    Curiosity. A healthy dose of curiosity can fuel your desire to experiment and improve your programming skills even after reading this book. Curiosity will make learning programming less boring and more interesting for you. And if you are interested, you will definitely learn and remember more information than any person who is completely uninterested in this (for example, your boss).
    Imagination. Creating computer programs is a skill, but imagination will help make this skill more perfect and directed. A novice programmer with a fair amount of imagination will always create much more interesting and useful programs than a wonderful programmer without imagination. If you don't know what to do with your programming skills, your talent will simply die without imagination.

    Passion, curiosity and imagination are the three most important qualities that every programmer should possess. If you have them, you should only worry about the little things: what programming language to learn (for example, C ++), what is there with mathematics, etc.

    Among many programming languages, you can always find exactly the language that is suitable for solving a given task. When a new type of problem appears, people create new languages.

    Of course, in reality, the computer understands only one language, consisting of zeros and ones, which is called machine language. A typical machine language program looks something like this:

    0010 1010 0001 1101

    UN 1100 1010 1111

    0101 IT 1101 0101

    1101 1111 0010 1001

    Further, it is very important for what purpose the language is chosen - for teaching programming or for solving a specific problem. applied task. In the first case, the language should be easy to understand, strict and, if possible, devoid of " pitfalls". In the second - albeit a complex, but effective and expressive tool for a professional who knows what he wants.

    Now I would like to explain to you that you should distinguish a programming language (Basic, Pascal) from its implementation, which is usually presented as part of a programming environment (Quick Basic, Virtual Pascal) - a set of tools for editing source codes, generating executable code, debugging, managing projects, etc. The syntax and semantics of a programming language is fixed in the language standard. Each programming environment provides its own interpreter or compiler from this language, which often allows the use of constructs that are not fixed in the standard.

    Consider the main and popular programming languages

    assembler This brightest representative low-level languages ​​whose set of concepts is based on hardware implementation. It is an automation tool for programming directly in processor codes. Machine commands are described in the form of mnemonic operations, which makes it possible to achieve a sufficiently high code modifiability. Since the set of instructions on different processors is different, there is no need to talk about compatibility. Using an assembler is useful in cases where you need to interact directly with the hardware, or get more efficiency for some part of the program due to greater control over code generation.

    cobol- A high-level programming language developed in the late 1950s. association CADASIL to solve commercial and economic problems. Differs in advanced means of working with files. Since the commands of programs written in this language make heavy use of ordinary English vocabulary and syntax, Cobol is regarded as one of the simplest programming languages. Currently used to solve economic, informational and other problems.

    Fortran- A high-level programming language developed by IBM in 1956 to describe algorithms for solving computational problems. Belongs to the category of procedurally oriented languages. The most common versions of this language are Fortran IV, Fortran 77 and Fortran 90. It is used on all classes of computers. Its latest version is also used on computers with a parallel architecture.

    Ada- A high-level programming language, oriented to use in real-time systems and designed to automate the tasks of managing processes and / or devices, for example, in on-board (ship, aviation, etc.) computers. Developed at the initiative of the US Department of Defense in the 1980s. Named after the English mathematician Ada Augusta Byron (Lovelace), who lived from 1815-1851.

    BASIC(Beginner's All-purpose Symbolic Instruction Code) Born in the 60s in America. BASIC was conceived as a simple language for quick learning. BASIC became the de facto standard for Microcomputers precisely because of its simplicity both in learning and in implementation. However, for To achieve this quality, a number of decisions have been made (lack of typing, line numbering and non-structural GOTO, etc.), which negatively affect the style of students of programming. means of expression led to the emergence of a huge number of dialects of the language that are not compatible with each other. Modern, specialized versions of BASIC (such as Visual Basic) despite the acquired "structurality" have all the same shortcomings, first of all - negligence in relation to types and descriptions. Suitable for use on initial stage training, as a means of automation (in cases when it is built into the corresponding systems) or as a means for quickly creating applications.

    Pascal Developed by the famous theorist N. Wirth based on the ideas of Algol-68, Pascal was intended primarily for teaching programming. Built on the principle of "necessary and sufficient", it has strong type control, constructs for describing arbitrary data structures, a small but sufficient set of structured programming operators. Unfortunately, reverse side Simplicity and rigor is the cumbersomeness of descriptions of language constructs. The most famous implementation - Turbo / Borland Pascal - despite the differences from the Pascal standard, is an environment and a set of libraries that have made an industrial system for developing programs in the MS-DOS environment from an educational language.

    C and C++ At the heart of the C language are requirements system programmer: full and efficient access to all computer resources, high-level programming tools, portability of programs between different platforms and operating systems. C++, while maintaining compatibility with C, introduces the possibilities of object-oriented programming, expressing the idea of ​​a class (object) as a user-defined type. Thanks to these qualities, C / C ++ has taken the position universal language for any task. But its use can become inefficient where it is required to get a ready-to-use result in the shortest possible time, or where the procedural approach itself becomes unprofitable.

    Delphi- this is not the successor of Borland Pascal / Borland C, its niche - i.e. rapid application development (Rapid Application Developing, RAD). Such tools allow in the shortest possible time to create work program from ready-made components, without wasting a lot of effort on trifles. A special place in such systems is occupied by the possibility of working with databases.

    Lisp- An algorithmic language developed in 1960 by J. McCarthy and intended for manipulating lists of data elements. Used primarily in US university laboratories to solve problems related to artificial intelligence. In Europe, for work on artificial intelligence, they prefer to use Prolog.

    Prologue- A high-level declarative programming language designed for the development of artificial intelligence systems and programs. It belongs to the category of fifth generation languages. It was developed in 1971 at the University of Marseille (France) and is one of the widely used and constantly developed languages. Its latest version is Prolog 6.0

    LOGO- A high-level programming language developed at the Massachusetts Institute of Technology around 1970 for the purpose of teaching mathematical concepts. It is also used in schools and by PC users when writing programs for creating drawings on a monitor screen and controlling a pen plotter.

    Java As a prime example of specialization, the Java language was born in response to the need for an ideally portable language that could run programs efficiently on the WWW client side. Due to the nature of the environment, Java can be a good choice for a system built on Internet/Intranet technology.

    ALGOL- A high-level programming language focused on the description of algorithms for solving computational problems. It was created in 1958 by specialists from Western European countries for scientific research. The Algol-60 version of this language was adopted by the International Conference in Paris (1960) and was widely used on computers of the 2nd generation. The Algol-68 version, developed by a group of specialists from the International Federation for Information Processing (IFIP) in 1968, received the status of an international universal programming language focused on solving not only computational, but also information tasks. Although Algol is hardly used today, it has served as the basis or had a significant impact on the development of more modern languages, for example, Ada, Pascal, etc.

    There is no best language. If you're going to become a pro at writing programs, you'll need to learn one of the high-level programming languages ​​(C++ is the most popular programming language) as well as one of the database programming languages ​​(such as SQL). Once you learn the C++ programming language, you can't go wrong. Knowing this language, you can always find a job in any programming company.
    Despite the great popularity of the C++ programming language, other languages ​​are often used. Many older computers still run programs written in COBOL programming. Therefore, we need programmers who can improve these programs, as well as write new ones. Very often, large companies pay high salaries to such programmers.
    If you're going to work on your own, it's best to learn how to write your own database programs. To do this, you will need to learn programming languages ​​such as SQL or VBA, which are used in the program. Microsoft Access. In order to create Web pages, you need to know HTML, as well as a little knowledge of Java, JavaScript, VBScript, and other programming languages ​​for the Internet. The most necessary will be the programming language that will allow you to solve the tasks assigned to you easily and quickly. It can be C++, BASIC, Java, SQL or assembly language.

    In conclusion, we note that from a professional point of view, it is not so important in what language and in what environment the programmer works, but how he does his job. Hardware and operating systems are changing. New problems arise from a variety of subject areas. The past is gone and new languages ​​are emerging. But people remain - those who write and those for whom they write new programs and whose quality requirements remain the same regardless of these changes.
    Here we are with you and examined the basics of programming and the main programming languages.

    I wish you good luck with your programming!

    Recoursia users often wonder what programming language is worth learning. We have prepared short guide for those who are determined with the first programming language. We would like to note that it does not pretend to be exhaustive - it is only a very cursory look at what developers are doing today, and which programming language can be the first and which is not.

    One of the fairly popular Web programming languages, which, by the way, is not always able to provide its carrier with a top-earning job in terms of wages in the Belarusian labor market. Ruby courses are hardly worth studying for mastering the first programming language, because with a high degree of probability the search for an employer will be delayed, because vacancies for Ruby junoirs appear quite rarely.

    Five or seven years ago, it was Delphi that was the standard first programming language - of course, because the Pascal language, which is the predecessor of Delphi, was invented to teach programming to schoolchildren and students. But for real life Delphi is already a bad fit, as it pays well below average for programming, and new major projects you will not find in this language. Therefore recommend

    Programming is a whole science that allows you to create computer programs. It includes a huge number of different operations and algorithms that form a single programming language. So, what is it and what are the programming languages? The article provides answers, as well as an overview list of programming languages.

    The history of the emergence and change of programming languages ​​should be studied along with the history of development computer technology because these concepts are directly related. Without programming languages, it would be impossible to create any program for the operation of a computer, which means that the creation computers would be a pointless exercise.

    The first machine language was invented in 1941 by Konrad Zuse, who is the inventor of the Analytical Engine. A little later, in 1943, Howard Aiken created the Mark-1 machine, capable of reading instructions at the level of machine code.

    In the 1950s, there was an active demand for software development, and machine language could not withstand large amounts of code, so a new way of communicating with computers was created. "Assembler" is the first mnemonic language to replace machine instructions. Over the years, the list of programming languages ​​is only increasing, because the scope of computer technology is becoming more extensive.

    Classification of programming languages

    At the moment there are more than 300 programming languages. Each of them has its own characteristics and is suitable for one specific task. All programming languages ​​can be divided into several groups:

    • Aspect-oriented (the main idea is the separation of functionality to increase the efficiency of program modules).
    • Structural (based on the idea of ​​creating a hierarchical structure of individual blocks of the program).
    • Logical (based on the theory of the apparatus of mathematical logic and resolution rules).
    • Object-oriented (in such programming, algorithms are no longer used, but objects that belong to a certain class).
    • Multi-paradigm (combine several paradigms, and the programmer himself decides which language to use in this or that case).
    • Functional (the main elements are functions that change value depending on the results of the calculations of the initial data).

    Programming for beginners

    Many people ask what is programming? Basically, it is a way to communicate with a computer. Thanks to programming languages, we can set certain tasks for various devices, creating special applications or programs. When studying this science at the initial stage, the most important thing is to choose suitable (interesting for you) programming languages. The list for beginners is below:

    • Basic was invented in 1964, belongs to the family high-level languages and is used to write application programs.
    • Python ("Python") is quite easy to learn due to its simple, readable syntax, but the advantage is that it can be used to create both ordinary desktop programs and web applications.
    • Pascal ("Pascal") - one of the oldest languages ​​(1969) created for teaching students. Its modern modification has strict typing and structure, but "Pascal" is a completely logical language that is understandable on an intuitive level.

    This is not a complete list of programming languages ​​for beginners. There are a huge number of syntaxes that are easy to understand and will definitely be in demand in the coming years. Everyone has the right to independently choose the direction that will be interesting for him.

    Beginners have the opportunity to accelerate the learning of programming and its basics thanks to special tools. The main assistant is the Visual Basic integrated development environment for programs and applications ("Visual Basic" is also a programming language that inherited the style of the Basic language of the 1970s).

    Programming language levels

    All formalized languages ​​designed to create, describe programs and algorithms for solving problems on computers are divided into two main categories: low-level programming languages ​​(the list is given below) and high-level ones. Let's talk about each of them separately.

    Low-level languages ​​are designed to create machine instructions for processors. Their main advantage is that they use mnemonic notation, that is, instead of a sequence of zeros and ones (from binary system calculus) the computer remembers a meaningful abbreviated word from the English language. The most famous low-level languages ​​are "Assembler" (there are several subspecies of this language, each of which has much in common, but differs only in a set of additional directives and macros), CIL (available in the .Net platform) and JAVA Bytecode.

    High-level programming languages: list

    High-level languages ​​are designed for the convenience and efficiency of applications, they are the complete opposite. low-level languages. Their distinguishing feature is the presence of semantic constructions that concisely and briefly describe the structures and algorithms of the programs. In low-level languages, their description in machine code would be too long and incomprehensible. High-level languages, on the other hand, are platform independent. Instead, compilers perform the translator function: they translate the program text into elementary machine instructions.

    The following list of programming languages: C ("C"), C # ("C-sharp"), "Fortran", "Pascal", Java ("Java") - is among the most used high-level syntaxes. It has the following properties: these languages ​​work with complex structures, support string data types and file I/O operations, and also have the advantage of being much easier to work with due to readability and understandable syntax.

    Most used programming languages

    In principle, you can write a program in any language. The question is, will it work efficiently and without fail? That is why the most suitable programming languages ​​should be chosen for solving various problems. The popularity list can be summarized as follows:

    • OOP languages: Java, C++, Python, PHP, VisualBasic and JavaScript;
    • group of structural languages: Basic, Fortran and Pascal;
    • multi-paradigm: C#, Delphi, Curry and Scala.

    Scope of programs and applications

    The choice of the language in which this or that program is written depends largely on the area of ​​its application. So, for example, to work with the computer hardware itself (writing drivers and supporting programs) the best option will become C ("C") or C ++, which are included in the main programming languages ​​​​(see the list above). And for development mobile applications, including games, Java or C# ("C-sharp") should be selected.

    If you have not yet decided which direction to work in, we recommend that you start learning with C or C ++. They have a very clear syntax, a clear structural division into classes and functions. In addition, knowing C or C ++, you can easily learn any other programming language.