Language "dragon" - study guides. Loop with arrow. Dragon language and education system

Last edited by PBworks  12 years, 3 months ago

SPACES LANGUAGE DRAGON

CRITICISTS OF BLOCK DIAGRAMS

An effective tool for improving the comprehensibility of algorithms is programming visualization, and somewhat earlier, flow charts were used for this purpose. Recently, however, flowcharts have been criticized. Opponents of flowcharts argue that they are unsuitable for structural programming, cannot be formalized, so they "can not be used as a program for direct entry into the machine." They occupy many pages, and "very limited information can be entered in the boxes of flowcharts." Flowcharts “make learning difficult and decrease productivity when understanding." In addition, they are not convenient for everyone - only “individuals with the right leading hemisphere, focused on visual information, intuitive, recognizing images” prefer working with flowcharts, but they are avoided by “individuals with the left leading hemisphere, oriented to verbal information, inclined to deductive reasoning ”, etc.

If, until 1980, flowcharts were the most widely used means, today they are "no longer considered necessary and their popularity is declining." Although there are some attempts to adapt the flowcharts to modern needs (SDL, etc.), however, in general, the flowcharts are clearly on the sidelines of the rapidly developing programming visualization process, and their enormous potential opportunities are not actually used. The DRAGON language allows you to eliminate or significantly weaken the noted drawbacks of flowcharts.

To refer to flowcharts constructed according to the rules of the DRAGON language, the term “dragon patterns” is used.

ADVANTAGES OF DRAGON SCHEMES

What is the difference between dragon diagrams and block diagrams? Flowcharts do not automatically convert an algorithm to machine code. Dragon schemes, by contrast, are suitable for formalized recording, automatic receipt of code, and execution on a computer. However, the second (cognitive) difference is more important. Although flowcharts do indeed sometimes improve the comprehensibility of programs, this does not always happen, and the degree of improvement is small. In addition, there are many cases where poorly executed flowcharts confuse matters and make understanding difficult. In contrast, dragon patterns satisfy the criterion of super high understanding.

Thanks to the use of special formal and informal cognitive techniques, dragon-schemes make it possible to depict the solution to any arbitrarily complex technological problem in an extremely clear, visual and intelligible form, which can significantly reduce the intellectual efforts of the staff necessary for visual perception, understanding, verification and error-free solution problems.

ICONS AND MACRO-ICONS

Graphic elements (graphic letters) of the DRAGON language are called icons (Fig. 1). Just as letters are combined into words, icons are combined into composite icons - macro icons  (fig. 2).

Connecting icons and macro icons according to certain rules, you can build a variety of algorithms, examples of which are shown in Fig. 3, 4, 6, 8-11.

Skewer block  - part of the dragon-circuit, having one entrance from above and one exit from below, located on one vertical. Examples of skewer blocks are icons I3 - I10, I12 - I16, I18, I20, I21 (Fig. 1) and macro icons 2-20 (Fig. 2).

WHY DO YOU NEED A BRANCH?

When Princess Anna divorced the Marquis of Le Chatelier, a dispute arose over the division of property. The judge demanded to indicate which purchases the princess made before marriage and which after.

And now let's forget about this family drama and compare fig. 3a and 3b. It is easy to see that the first does not allow to answer the judge’s question. As for the second, on the contrary, it contains the necessary information. Moreover, the algorithm in Fig. 3b is purposely drawn so that purchases made before and after marriage are clearly divided into two lists. These lists are visually and spatially separated, so dividing the algorithm into two parts, regardless of the will of the reader, is literally striking. This technique is called dividing the algorithm into semantic parts according to the principle of “looked - and it became immediately clear!” And the semantic blocks are called branches.

The word branch has two meanings. On the one hand, this is a semantic “piece” of the algorithm. For example, the algorithm in fig. 3b has two branches (“Purchases before marriage” and “Purchases after marriage”). In fig. 4 - four branches (“Preparation for fishing”, “Waiting for a bite”, “Fishing work”, “Return road”). On the other hand, a branch is a compound operator of the DRAGON language, which has no analogues in well-known languages. The branch operator consists of three parts: start of branch  (icon “branch name”), branch bodies  (which may contain a large number of icons) and end of branch  (which contains one or more “address” icons or the “end” icon).

So why do you need a branch? To help the mental worker, programmer and technology developer, formalize the semantic breakdown of a problem, program or technical process into parts and give the parts convenient meaningful names. In this case, the division of the problem into N  semantic parts is implemented by dividing the algorithm into N  branches.

HOW DOES A BRANCH WORK?

A branch has one input and one or more outputs. The input is the icon “branch name” containing the identifier of the branch. The visual operator “branch name” does not perform any actions, it is just a label declaring the name of the semantic part of the program. The execution of the dragon algorithm always begins with the leftmost branch (Fig. 3, 4).

The “address” icon serves as a way out of the branch, in which the name of the branch following the order of execution is recorded. The “address” icon is a masked transition operator (goto), however it transfers control not to anywhere, but only to the beginning of the selected branch. Entrance to the branch is possible only through its beginning. The last branch is exited through the “end” icon.

HOW DO I BRANCH THE BRANCHES IN THE DRAWING FIELD?

The branches are arranged in two ways: logically and spatially. Logical  the sequence of execution of the branches is determined by the labels recorded in the icons “address”. However, logical order is not everything. In fig. 5 shows three different methods spatial  locations of branches that have the same logical order. To eliminate spatial ambiguity and facilitate understanding of the meaning of the dragon-scheme, the rule is introduced "the more to the right - the later." It means: the branch drawn to the right works later than all the branches to the left.

The algorithm drawn according to the rule “the more to the right - the later” is considered good, ergonomic (Fig. 5c). Schemes where this rule is violated are declared bad (Fig. 5a, b), their use is prohibited.

In the allowed (ergonomic) algorithms, the following order of work takes place (Fig. 3, 4, 5c, 6a):

  • the first is the leftmost branch, the last is the rightmost;
  • other branches pass control to each other from left to right (in this case, it may happen that some branches are skipped);
  • sometimes the so-called “branch cycle” is formed. This occurs when the name “address” indicates the name of your own or one of the left branches. In fig. 4 and 6a, the branch cycle is marked with black triangles.

WHAT IS A HAT?

From the reader’s point of view, any unfamiliar or forgotten non-trivial algorithm is an extremely complex problem that he desperately tries to understand, overcoming the powerful “material resistance”. To simplify the matter and facilitate the task of understanding, it is necessary for the reader to "see" and, dividing the problem into parts, see its semantic structure in terms of the subject area. And I saw it not in the figurative sense of the word, not with the help of imagination, not with a spiritual eye, but with my two eyes - on paper or screen.

But how to do that? The difficulty is that none of the existing languages \u200b\u200bprovides the reader who is studying a complex program or technology with effective assistance that allows you to instantly (in a few seconds) understand its structure, that is, the division into semantic blocks. In the DRAGON language, there are special tools that provide a solution to the problem.

The heading is the upper part of the dragon diagram (Fig. 4), which includes the heading of the algorithm and a set of icons “branch name”. The purpose of the header is to help the reader instantly (in no more than a few seconds) navigate the problem and get a powerful hint - the answer to the three most important questions:

  1. what is the name of the problem?
  2. how many parts does it consist of?
  3. what is each part called?

Indeed, it is with these questions that our acquaintance with any task begins with a rational approach to business.

Here are the answers for fig. four.

  • What is the name of the problem?  Fishing.
  • How many parts does the problem consist of?  Of the four.
  • What is each part called?  1. Preparation for fishing. 2. Waiting for a bite. 3. Fishing work. 4. The way back.

Additional conveniences are connected with the fact that the cap occupies a “ceremonial” place in the drawing field, and the names of semantic parts are placed inside special frames of a unique shape and due to this, the reader’s attention is immediately attracted to him without any efforts on his part.

Thus, the DRAGON provides the reader with an effective three-step method of knowing an unfamiliar or forgotten problem. At the first stage, analyzing the header, the reader will learn the purpose of the algorithm and its division into semantic parts (branches). On the second, an in-depth analysis of each branch is performed. The third one parses the interaction of the branches.

WHAT IS BETTER: PRIMITIVE OR SILHOUETTE?

The dragon diagram with branches is called silhouettewithout branches - primitive.  The silhouette shown in Fig. 6a, can be represented as a primitive (Fig. 6b). A primitive is a serial connection of the “heading” icon of the skewer blocks and the “end” icon. In the primitive, the icons “title” and “end” necessarily lie on the same vertical, which is called skewers.  On the same line lie the main verticals of the skewer blocks. Figuratively speaking, skewers permeate primitive icons (perhaps not all), just as real skewers permeate barbecue pieces.

Primitive is recommended to be used if the dragon-scheme is very simple (primitive) and contains no more than 5 ... 15 icons. Otherwise, to improve the readability of the program, it is more profitable to use a silhouette. Violation of this rule is usually fraught with trouble, because it prevents the reader from identifying the essence of the problem being solved and, therefore, complicates and slows down the understanding of the meaning of the program.

For example, the algorithm in fig. 6b looks bulky and unreasonably difficult to perceive. This is due to the fact that it contains 19 icons, but is depicted as a primitive. The crime is that the circuit in Fig. 6b does not allow the reader to instantly (in a few seconds) recognize the visual-semantic structure of the algorithm. In fact, how many parts is the problem being solved? Looking at the pic. 6b, it is rather difficult to answer this question, but it is impossible to quickly answer. The situation changes radically when we look at fig. 6a, where the same algorithm is depicted as a silhouette. Here, as they say, the hedgehog is clear: the algorithm consists of four parts: “search for a bus”, “waiting for boarding”, “boarding the bus”, “trip”. However, this is not all: the circumstance that the complexity of the visual pattern has disappeared and the scheme has acquired a new aesthetic (ergonomic) quality: elegance, clarity and transparency are no less important.

Thus, in complex cases, the silhouette can significantly reduce the intellectual effort spent on understanding the algorithm. In the silhouette, the large structural parts of the program (branches) are clearly distinguished, they are spatially spaced in the drawing field, forming at the same time an easily recognizable, stable, predictable and holistic visual image. And in the primitive, the structural parts are not allocated and mixed (“all in one heap”), which complicates the reading and analysis of complex algorithms. However, for simple cases (less than 5 ... 15 icons), the primitive, as a rule, is more preferable.

HOW TO DESCRIBE A SILHOUETTE USING A TEXT LANGUAGE?

From fig. 7 shows that to describe the branches in the text language had to make a number of changes. In particular, two new text operators have appeared that are absent in traditional languages:

BRANCH< идентификатор ветки >

ADDRESS< идентификатор ветки >

The text language operator VETKA announces the name of the branch (written in the visual language inside the “branch name” icon). The ADDRESS operator unconditionally transfers control to the text branch VETKA, whose name is written to the right of the ADDRESS operator.

Consider the problem. In the confusing maze connecting the beginning and the end of a complex algorithm, you need to single out a single route - a “guiding thread”, with which you can visually compare all other routes in order to easily navigate the problem and not get lost in the confusion of the forks. This guiding thread (let's call it the “main route”) should be visually easily distinguishable. In other words, with a quick glance at the dragon diagram, we must find clear guidelines that make it possible to immediately and accurately see the “royal” route and other routes ordered relative to it.

To do this, the rule is introduced: “The main route of the primitive is to go along the skewer.”  By interchanging the words “yes” and “no” in the forks and options in the switches (as well as the garlands of icons attached to them), you should ensure that the exit of the fork or switch that leads to the greatest success is on the royal path (Fig. 8) . And side routes should be arranged according to the rule: “The more to the right, the worse”  (fig. 9). If these rules are violated, the dragon circuit is considered bad (Fig. 10a). However, it can always be turned into a good one (Fig. 10b).

In cases where the “better-worse” symptom does not work, you should choose some other reasonable criterion instead, so that the shift to the right of the main route is always not arbitrary and chaotic, but thoughtful and orderly. For example, when solving mathematical problems, the fork outputs and switch options can be arranged from left to right in order to increase or decrease the mathematical value (characteristic) corresponding to these outputs (Fig. 11, 12).

MAIN SILHOUETTE ROUTE

In the previous paragraph, we learned how to arrange primitive routes. Now it’s the turn of the silhouette.

Skewered branches  the vertical is called, connecting the icon “branch name” with the icon “address”, and if the branch has several outputs - with the left of them. For the branch, both “royal” rules remain valid:

  • the main route of the branch should go along the skewer;
  • side routes of the branch should be ordered from left to right according to some criterion.

Suppose, as a criterion, the principle “the more to the right, the worse” is chosen. In this case, each branch of the silhouette should be built according to a single rule: the right (the farther from the skewer of this branch) the next vertical is located, the less successful it performs.

For example, in fig. 6a, the “boarding a bus” branch has three verticals. The left vertical (main route) describes the greatest success, since you will ride the bus while sitting. Right vertical means least success as you get off the bus and the trip is delayed. The middle vertical (located above the icon “Do you want to ride standing?”) Occupies an intermediate position, because - depending on the answer - either partial success (you will ride, but not sitting, but standing), or failure, because you get out of the bus sloppy.

The main silhouette route  - serial connection of the main routes of alternately working branches. Thus, the DRAGON allows the reader to instantly see the main route of any arbitrarily complex and branched algorithm and, moreover, makes the shift of all side routes relative to the “royal” one not random, but meaningful and predictable, that is, easy to understand.

CROSSING LINES? - God bless you!

Some experts, prone to harsh expressions, call the traditional flowcharts of algorithms “garbage flowcharts” because the tricky blocks depicted on them, connected by the chaos of torn lines walking everywhere look more like a bunch of garbage than a regular structure. DRAGON compares favorably with the fact that its graphic pattern has a rigorous mathematical and cognitive-ergonomic justification and obeys strict and carefully thought-out rules. Among them, a special place is occupied by the rule: “Crossings and breaks of connecting lines are forbidden”.

When drawing conventional block diagrams, two types of line intersection are allowed: explicit, represented by a cross of lines, and masked, performed using so-called connectors. As you know, the connector "is used to break the line and continue it in another place ... to avoid unnecessary intersections."

In the DRAGON language, all the listed tricks (intersections, breaks, connectors) are considered harmful and categorically forbidden for ergonomic reasons, since they clog the drawing field with unnecessary details, create visual disturbances to the eyes and distract attention from the main point.

Since the prohibition of intersections is a serious topological restriction, the question arises: is it possible to depict an arbitrary algorithm in the form of a dragon scheme?

Theorem 1   Any structural program can be represented in the DRAGON language in two ways: in the form of a primitive and in the form of a silhouette.

Theorem 2   An arbitrary (non-structural) program in some cases cannot be depicted as a primitive; however, with the help of equivalent transformations allowing the introduction of additional variables (branch identifiers), it can always be depicted as a silhouette.

To clarify the issue, let us turn to examples. In fig. 13a shows the forbidden dragon-scheme: a primitive in which there is an unrecoverable (without introducing additional variables) intersection. In fig. 13b shows a silhouette, which, as is easily seen, is equivalent to the primitive in Fig. 13a and at the same time does not contain any intersections. Thus, the example in fig. 13 confirms the validity of Theorem 2 1.

VISUAL AND TEXT DRAGON SYNOPSIS

DRAGON is a visual language in which two types of elements are used: graphic figures ( graph elements) and text labels located inside or outside of graphic shapes ( text elements) Therefore, the DRAGON syntax splits into two parts. Visual syntax covers the alphabet of graphic elements, the rules for their placement in the drawing field, and the rules for connecting graphic elements using connecting lines. Text syntax  sets the alphabet of characters, the rules for combining them, and binding to graphic elements (binding is necessary because different types of expressions are used inside different graphic shapes). DRAGON language operator  is a graphic element or a combination of graphic elements taken together with text labels.

The simultaneous use of graphics and text suggests that the DRAGON addresses not only the verbal and logical thinking of the author and reader of the program, but also activates the intuitive, figurative, right-brain thinking, stimulating it with an unwritten, namely drawn program, i.e. a program - picture.

DRAGON-LANGUAGE FAMILY

The DRAGON is not one language, but a whole family, all languages \u200b\u200bof which have the same visual syntax (which visually makes the languages \u200b\u200bof the family almost twins) and differ in textual syntax.

DRAGON-1  - visual pseudo-language, a visual analogue of a regular text pseudo-code. It serves to describe the structure of activities, the creation of technologies, algorithms and program designs; it is used in the method of step-by-step detailing, as well as in the formalization of professional knowledge.

DRAGON-2  - real-time visual programming language. He is an element CASE-technologies for the development of software for control systems for rockets and space objects, as well as nuclear power plants, petrochemical and metallurgical plants, biotechnological industries, etc.

In addition, the family includes hybrid visual programming languages: DRAGON-BASIC, DRAGON-PASCAL, DRAGON-SI, etc. To obtain a hybrid language, for example, DRAGON-SI, you need to take the DRAGON's visual syntax and attach to it according to certain SI textual syntax rules.

A strict distinction between visual and text syntax allows you to maximize the scope of the language, providing its flexibility and versatility. At the same time, the uniformity of the rules of visual syntax of the Dragon family of languages \u200b\u200bensures their conceptual unity, and the variety of text rules (i.e., the ability to select any text syntax) determines the flexibility of the language and easy adjustment to various problem and subject areas.

This book focuses on the visual pseudo-language DRAGON-1. As for the other languages \u200b\u200bof the DRAGON family, only brief explanations are given.

FINDINGS

Here is a summary of ergonomic rules to improve the cognitive quality of dragon patterns and make algorithms, programs and technologies more understandable.

  1. A complex algorithm should be drawn in the form of a silhouette, a simple one - in the form of a primitive.
  2. In the icon “heading” it is forbidden to write the word “beginning”; instead, an understandable and accurate algorithm name should be provided.
  3. Break the complex algorithm into parts, depict each part as a branch. Give the parts intelligible and clear names and write them in the “branch name” icons.
  4. Entrance to the branch is possible only through its beginning.
  5. The icon "address" is allowed to write the name of one of the branches, other inscriptions are prohibited.
  6. Branches should be located in space according to the rule: the more to the right, the later. The presence of a branch loop modifies this rule.
  7. Primitive necessarily has a skewer. This means that in the primitive, the icons “heading” and “end” always lie on the same vertical line, which is called “skewer”.
  8. Each branch must have a skewer. The skewer on the right branch is a vertical line connecting the “branch name” and “end” icons. For the remaining branches, a vertical line serves as skewer, connecting the icons “branch name” and “address”, and if there are several addresses, with the left of them.
  9. The algorithm always has the main route that should go along the skewer.
  10. Side routes should be ordered from left to right according to one of the selected criteria, for example: the more to the right, the worse.
  11. In the icon “end”, the word “end” should be written.
  12. Connecting lines can go either horizontally or vertically. Inclined lines are not allowed.
  13. Crossing lines is prohibited.
  14. Line breaks are prohibited.
  15. The use of connectors is prohibited.

History of the creation of the language "DRAGON"

The DRAGON language was created primarily as a tool that provides impeccable mutual understanding between people. It arose as a result of a generalization of the experience gained in the design of the Buran spacecraft.

The graphic language DRAGON is specially designed to turn a complex algorithm into a simple picture (dragon-scheme), which provides quick and easy understanding according to the principle “I looked - and immediately understood”! Part 1. DRAGON was born in a space cradle
  Part 2. The DRAGON language opens the gate to the realm of understandable algorithms
  Part 3. The path to wisdom. DRAGON language and fundamental problems of civilization

Part 1. Language “DRAGON” was born in a space cradle, but very soon grew out of “short space pants”


`` Slide 1. The graphic language DRAGON is specially designed to turn a complex algorithm into a simple picture (dragon-scheme), which provides quick and easy understanding according to the principle “I looked, I understood right away!” ’’

Nikolai Pilyugin and his brainchild.

The origins of the "dragon"

  The DRAGON language was developed jointly by the Russian Space Agency (Scientific and Production Center for Automation and Instrument Engineering named after Academician N.A. Pilyugin, Moscow) and the Russian Academy of Sciences (Institute of Applied Mathematics named after Academician M.V. Keldysh, Moscow).

Academician Nikolai Pilyugin (1908-1982) - the founder of autonomous (fully automatic) control systems for rocket and space systems. Being one of the pioneers of astronautics, he created the first institute in our country, in which autonomous control systems for launch vehicles, booster blocks, and other space objects were developed.

On one of the chief’s anniversaries, the lines dedicated to him sounded:

A rocket is like a blind goat!

So that it has both meaning and gloss,

Rocket needs eyes

And most importantly - the brain!

And you are in the midst of eternal worries and noise,

As a first-born mother teaches,

They taught rockets to look and think

And that means flying!

The launch of the first satellite in 1957 shocked the whole world and took the Americans by surprise. The flight of Yuri Gagarin in 1961 was a triumph of Soviet science. Fantastic projects of the national hero of the USSR - the legendary designer Sergey Korolev - came true and came true. The intellectual support of his daring projects was provided by the “nervous system” of the rocket - an on-board control system created by Nikolai Pilyugin.

Keeping pace with the times, Pilyugin transferred the control system from analog to digital technology. This required the development of powerful on-board computer systems and sophisticated programming technologies.

Soon an unexpected obstacle was discovered - the human factor intervened in the matter. The more complicated the space systems, the stronger the need for perfect understanding between the developers. The lack of mutual understanding had a painful effect on large missile projects. The problem of mutual understanding manifested itself especially sharply during the creation of the space complex “Energy – Buran”.

Looking ahead, we say that the DRAGON language was created primarily as a tool that provides impeccable understanding between people. It arose as a result of a generalization of the experience gained in the design of the Buran spacecraft.

`Slide 2. The American Space Shuttle and the Soviet Buran - super complex space projects. They stimulated a creative search in many fields of science and high technology, in particular, in the field of creating new algorithmic languages. In our country, the end result of these efforts was the DRAGON language, which very soon grew out of "short space pants." Today, the DRAGON is a powerful tool for improving the work of the mind, suitable for describing the structure of human activity and algorithms. ’’

What is intellectual

understanding?

  Modern civilization is unthinkable without large-scale research and development. Projects are becoming more complex and grander. Examples of large projects are the Space Shuttle and Buran spacecraft, nuclear power plants and chemical plants. Scientific research in theoretical physics, biology, medicine, etc. is becoming increasingly complicated. In all such cases, the question arises: how to achieve mutual understanding between the co-executors of the work?

The difficulty is that each researcher and developer, each participant in a common business knows only his own, relatively small (in terms of size), although very complex (in terms of ideas) work area. And quite vaguely imagines what is happening with the neighbors. Hence the mutual misunderstandings, inconsistencies and errors at the joints.

It is logical to ask: what is the cause of the trouble? Are not too large resources (human, material, financial and time) necessary to spend to ensure the effective interaction of specialists involved in joint work? Why are large-scale research and development often delayed for months, or even years?

The developers of the Buran orbiter faced such or approximately such problems. Buran’s experience shows that the issue of intellectual understanding between specialists often plays a key, fundamental role and largely determines the success of a business. When creating the most complex set of on-board and ground-based programs, Buran has to unravel a tricky ball of utterly complicated problems. Therefore, a whole army of specialists from various professions from many different organizations enters the battle. At the initial stage of work, these people understand each other very poorly. This is precisely the case when the transcendental complexity of the problem and the narrow specialization associated with it lead to a ridiculous but, alas, a real paradox when the “enema specialists” do not understand the “tip specialists”.

Nevertheless, the algorithms they create, more reminiscent of pristine algorithmic chaos, torn by lightning of glaring inconsistencies, should ultimately turn into a single filigree pattern that controls Buran with fabulous accuracy and reliability.

Thus, the problem is as old as the world. To avoid the sad fate of the builders of the Tower of Babel, participants in a complex project must learn to understand each other very well. Otherwise, numerous errors at the junction can hinder the success of the development.


`` Slide 3. Understanding should be seen as work. It is necessary to radically increase the productivity of this labor (perhaps an order of magnitude). This is the problem that DRAGON solves. ’’

How did the story of the dragon begin?

  In 1982, Yuri Trunov, the head of the integrated department of the Pilyuginsky Center (today - the General Designer) was appointed responsible for the integrated development of the Buran management system. Trunov clearly understood: without effective high-level algorithmic languages, the development of Buran is impossible.

On his initiative - together with the Institute of Applied Mathematics of the USSR Academy of Sciences - three languages \u200b\u200bwere created: PROL2 (for developing on-board integrated programs of Buran), DIPOLE (for creating ground-based programs of Buran) and LAKS (for modeling). The work was carried out by three teams of programmers under the leadership of Victor Kryukov, Vladimir Lutsikovich and Konstantin Fedorov. It was, so to speak, the backstory of the DRAGON.

Although languages \u200b\u200bsuccessfully solved the set tasks, it became clear that the narrow specialization of languages \u200b\u200binterferes with the matter. In this regard, in 1986, Yuri Trunov called to the head of the laboratory for the integrated development of the Buran computer system, Vladimir Parondzhanov, and instructed him to create a universal language that could replace the three above.

Humanitarian requirements for the Dragon language

  However, Paronjanov decided to set the task differently. He believed that the new language should not only satisfy the practical needs of space technology, but also solve an extremely wide range of tasks that go far beyond traditional programming.

In this regard, when creating the DRAGON language, humanitarian requirements were unusual for programmers, mathematicians, and “techies”.

1. Improve the work of the human mind.

2. Offer effective tools to describe the structure of human activity.

3. Providing a person with such language tools that greatly simplify the perception of complex procedural problems and communicate with colleagues, make the incomprehensible understandable and, due to this, literally make a person think clearly, deeply and productively. Under these conditions, the likelihood of errors, miscalculations and errors inevitably falls, and productivity grows.

4. To radically facilitate cross-sectoral and interdisciplinary communication between representatives of different organizations, departments, departments, laboratories, scientific schools and professions.

5. Eliminate or reduce barriers of mutual misunderstanding between employees of various specialties (doctors and physicists, mathematicians and designers, biologists and economists, etc.), as well as programmers and those who are allergic to any programming.

6. To achieve a radical improvement in the quality of software according to the criterion of “comprehensibility of algorithms and programs”.

`` Slide 4. Many programmers complain that they hardly understand their own program after six months, or even after a month. And if we are talking about someone else's program? Then it becomes very difficult. It is often easier to write your own program than to figure out what someone else is doing. Therefore, among the requirements for modern algorithmic languages, comprehensibility is increasingly coming to the fore. The latter is defined as the property of a program to minimize the intellectual efforts necessary for its understanding. The DRAGON language is designed to provide the maximum possible comprehensibility of algorithms and programs. According to the developers, he can become a “world champion” among algorithmic languages \u200b\u200bby this criterion. ’’

Scientific basis of the language "Dragon"

  DRAGON has a fundamentally new scientific foundation. He relies on the "turned inside out" Ashcroft-Manna classical theorem. Vladimir Parondzhanov proved that the graphic syntax of the DRAGON language is a graphical logical calculus ("calculus of icons").

However, this is not the main thing. Any language has this or that mathematical highlight. Mathematical rigor is a must for language designers. So now you won’t surprise anyone with mathematics.

The fundamental feature of the DRAGON, which distinguishes it from all known languages, is that it has not only a mathematical, but also a reliable cognitive-ergonomic foundation. Parondjanov’s merit is that he first showed:

To create a good language, mathematics alone is not enough;

We must add to it the ideas of cognitive ergonomics;

A strong alloy of mathematics and ergonomics allows you to get a qualitatively new level of algorithmic language, which you could not even dream of before.

Based on these considerations, Parondzhanov proposed to use the methods of cognitive-ergonomic formalization of professional knowledge as the basis of the DRAGON language.

`` Slide 5. Understanding the algorithms and complex work processes can be greatly facilitated by using the DRAGON language to describe them. Ergonomics is the science of human factors. Cognitive ergonomics helps to create fundamentally new visual forms of representing professional knowledge, creating maximum intellectual comfort for the eye and brain. ’’

Slide 6. The DRAGON language provides exceptional clarity and unprecedented visualization of algorithms. Under these conditions, the probability of hidden algorithmic errors and the troubles and accidents caused by them decreases many times. Figuratively speaking, the error hidden in the algorithm jumps out of the algorithm drawing (dragon-scheme), hits the developer with his fist in the nose and shouts in a thunderous voice: "Notice me!".

Who developed the dragon system software?

  Developing the ideas of Victor Kryukov and Vladimir Lutsikovich (Institute of Applied Mathematics), the employees of the Pilyuginsky Center began to develop translators and other DRACON system programs. Work was carried out in the department of Konstantin Fedorov. The greatest creative contribution was made by the head of the system programming laboratory Vladislav Baltrushaitis, as well as Sergey Kashinsky, Alexander Semenov and others.

Development went on in an atmosphere of sharp disagreement. Extraordinary creative personalities gathered under one roof, and each had its own point of view on the nature of the future language and the path of its development. Disputes raged until midnight. Although it did not reach the assault, but profanity shook the building to the ground. It is possible that this was the most scandalous development of the algorithmic language in the entire history of such works.

Fortunately, stormy verbal skirmishes and deafening scandals did not interfere with the progress of the work. Moreover, they paradoxically contributed to the birth of new ideas and discoveries. However, this is not surprising - in disputes the truth is born!

`` Slide 7. Language Dragon is universal and can be used in any areas of human activity, for example, in medicine. The slide shows the medical algorithm “First aid for chemical burns of the eye with liquid,” written in the DRAGON language. This algorithm is interesting in that it does not require translation. Here is an instruction for a family doctor (general practitioner), who should provide first aid for a chemical burn of the eye. Talking about broadcasting in this case is pointless. Until now, programmers and mathematicians have ignored such instructions - they are, they say, not algorithms. From the point of view of the philosophy of the DRAGON language, the situation is different. It is advisable to consider such instructions as non-classical algorithms (which need ergonomic formalization). The fundamental novelty of the DRAGON is that it provides standard visual tools for both classical algorithms (when translation is necessary) and non-classical (when translation is not needed). ’’

The split in the camp of the developers of the "dragon"

  Meanwhile, the tension grew. Ideological disagreements reached an unprecedented sharpness and led to a split. The group of "dissidents" was led by Gennady Gulenkov (Pilyuginsky Center) and Leonid Eisymont (Institute of Applied Mathematics). Head of the sector Vladimir Gora, Lyudmila Vlasova, Sergey Shcherbakov, Larisa Tyurina, Alexander Kopylov, Victor Mironov, Alexander Rusanov, Sergey Shmakov and others worked with them.

What is the essence of the disagreement? The Fedorov – Baltrushaitis group defended a simplified version of the DRACON language (which was called Graphite).

  The “Dissident” group of Gulenkov – Eisymont (supported by Vladimir Morozov, one of the leaders of the Pilyuginsky Center) defended the full-sized DRAGON project. This option was undoubtedly more promising.

The collapse of the USSR clipped dragon wings

  Unfortunately, the "dissidents" suffered a disaster. It was at this moment that one of the greatest powers in the world (USSR) collapsed. The economy of new Russia lay in ruins. After the first brilliant flight of Buran, events took an unexpected turn. On the eve of full readiness for the second flight, a tragic order came from above: “Cancel the flight!” Due to lack of money, all work on the Buran-Energy project was first mothballed, and then completely stopped. Forever. Forever.

Space development funding in new Russia has fallen to near zero. The close cooperation between the Pilyuginsky Center and the Institute of Applied Mathematics of the Russian Academy of Sciences, which was built for decades, was almost completely destroyed. It is worth recalling that Pilyugin's firm has for many years been a reliable source of funding for the Institute of Applied Mathematics, receiving in return invaluable intellectual services and developments.

But now this has come to an end. The cash tap has been shut off. Pilyuginsky Center became almost bankrupt. He could no longer feed the Institute of Mathematics. As a result, a group of programmers Leonid Eisymont (IPM) was left without a livelihood. And she was forced to stop working on the DRAGON, switching to solvent customers.

`` Slide 8. The cessation of work on the Buran hit hard
  by DRAGON developers. The situation has become critical. ’’

The dragon rose from the ashes like a phoenix

  However, there is no silver lining. During this period, Vladimir Morozov became the head of the integrated unit of the Pilyuginsky Center. He appointed the head of the programming department of the energetic leader German Kostochkin. The work on creating the DRAGON software began to increase rapidly. Left without help from the Institute of Applied Mathematics, Vladislav Baltrushaitis and his team decided to conquer the summit on their own. It was incredibly difficult. But they did the impossible.

By 1998, all system programming work was completed. On the basis of DRAGON, an automated technology for designing software systems (CASE-technology) was built under the working title "Graphite-Phlox". DRAGON technology includes an extensive software package: procedural editor, declarative editor, database, translator, analyzer, code generator, etc.

`` Slide 9. The algorithm “First aid for chemical burns of the eye with liquid” consists of three branches. The branch is the largest algorithmic construction of the DRAGON language. It has no analogues in other languages. The branch provides a very convenient and clear structuring of the algorithm.

  (We continue to consider the medical algorithm to demonstrate the DRAGON's ability to describe algorithms and procedural professional knowledge in any areas of professional activity, and not just in astronautics).





Dragon Baptism of Fire

The development of the DRAGON lasted about fifteen years. Separate elements of dragon technology were already used on Buran. But it was mainly a “paper” DRAGON. Algorithms were compiled on paper in the form of dragon circuits, and programming was conducted in the languages \u200b\u200bPROL2, DIPOLE and LAX.

For the first time, automatic dragon technology was tested in the development of software for autonomous and complex tests of the international space project Sea Launch.

The project involved the United States, Norway, Russia and Ukraine. The missiles were launched from a floating launch platform located at the equator in the western Pacific Ocean in the region of the Kiribati islands. Launch control was carried out from a nearby assembly-command ship. For each launch, the launch platform and the assembly-command ship made a sea voyage from the base located on the west coast of the USA to the islands of Kiribati, and then returned.

The results of applying dragon technology were brilliant. They exceeded all expectations.

After that, the dragon technology was used in the Russian-French space project Fregat, as well as in the modernization of the Proton-M launch vehicle. Since the results were consistently high, the leadership of the Pilyuginsky Center decided to use dragon technology in all subsequent projects.

`` Slide 13. The graphic alphabet of the DRAGON language. It contains a total of twenty-three graphic elements (23 icons). However, this amount is quite enough to display procedural professional knowledge and algorithms related to any area of \u200b\u200bprofessional activity in the form of a visual drawing. ’’

What is the highlight of the DRAGON?

The disadvantage of the traditional approach is that the creators of languages \u200b\u200band computer systems often start to work from the wrong end and put the cart in front of the horse. As psychologist Donald Norman emphasizes, they "start too often with a car, and they think about a person only at the end, when it's too late."

To avoid such errors, a completely different approach was chosen during the development of the DRAGON language. A strategic goal was announced: to create the most comfortable conditions for the work of human intelligence, to provide the best opportunities for increasing the efficiency of the collective mind of specialists.

In accordance with this software installation, the task was posed: to create a generally accessible, extremely easy to learn and easy to use language that allows solving algorithmic problems at the cost of minimal intellectual effort. A language that, by virtue of its initial orientation toward humans, could become truly “folk,” that is, “native,” for specialists of almost any profile (and not just programmers).

Thanks to this, the DRAGON is able to play the role of "Esperanto language for the business world." The mutual understanding of professionals can be significantly improved if representatives of different specialties display their procedural knowledge in the DRAGON language.

programming without programmers

  DRAGON is a very easy language. So easy that the development of many computer programs for space rockets in practice is not carried out by programmers, but by ordinary specialists (complex workers). They operate on the principle of "programming without programmers."

The reason for refusing programmers is simple. When solving practical applied problems, specialists thoroughly master the material and are well aware of the problem statement. In contrast, programmers do not know the "physics of the process" and become "extra people", without which it is quite possible to do.

This allows you to significantly reduce costs, improve the indicator of "cost-result", accelerate the progress of work. And completely get rid of the mistakes of the “damaged phone” caused by a mutual misunderstanding between the PROGRAMMERS and SPECIALISTS.

`` Slide 14. We perceive the human figure at the same time, i.e. instantly, completely and very quickly. There are neural mechanisms in our brain that provide this perception. The same mechanisms are used in the perception of dragon patterns. ’’

`` Slide 15. The dragon pattern is somewhat similar to a human figure. She also has a hat on top, and “boots” on the bottom. The only difference is that “shoes” have a different name - “addresses” ’’

`` Slide 16. The head of the dragon-scheme is an extremely effective tool for structuring the dragon-scheme and dividing the algorithm into semantic parts - branches. Ergonomic trick is that the cap, guessing the secret desire of the reader, gives him a powerful clue - the answer to all the "royal" questions. Here are the answers for the medical algorithm. ’’

What is the name of the task? (We read the heading of the algorithm). First aid for chemical burns of the eye with liquid.

How many parts does it consist of? (We consider the icons "Name of the branch"). Of the three.

What is each part called? (We read the text in the icons "Branch Name"). 1. Eye wash with water. 2. Eye wash with a neutralizer. 3. Drug treatment.

Additional ergonomic amenities are associated with the fact that the cap occupies a "ceremonial" place in the upper part of the drawing, and the names of the semantic parts are placed inside special frames of a unique shape that are easy to find with a look. Thanks to this, the cap instantly attracts the attention of the reader without any efforts on its part. This is very important, because the reader does not have to look through the dark corners of the algorithm, trying to fetch the necessary information.

As a result, DRAGON provides the reader with an ergonomically effective three-stage method of knowing an unfamiliar or forgotten problem. At the first stage, analyzing the header, the reader will learn the purpose of the algorithm and its division into semantic parts (branches). On the second, it carries out an in-depth analysis of each branch. The third one parses the interaction of branches.

Dragon completely changed the interaction of Complex Developers and programmers

  Previously, the work was organized as follows. The complex operator handed out a paper document to the programming department - the initial data for the development of programs and coordinated it with the programmer. Then the programmer based on this document developed the program.

On a comprehensive stand, it was usually found out that the program was not working correctly. Who made the mistake: complex or programmer? To find out, they turn to the document - the source data for the development of the program. And then a dumb scene arises. It turns out that the document says nothing about it. Or it is written so clumsily and ambiguously that one can understand this way and that.

Thus, the specified document does not fulfill its main function and does not allow to answer the question: who is to blame for the error. Such a system of work, vicious at its core, leads to irresponsibility, a huge stream of errors and poor quality of work.

DRAGON resolutely eliminates this disgrace. When switching to dragon technology, the complex owner gets at his disposal a computer tool - a graphic dragon-editor. With his help, he designs (draws) a dragon diagram on a computer screen. The latter is automatically converted to a mathematically accurate algorithm.

In this case, a paper document (initial data for the development of the program) is no longer used. The complex operator sends to the programming department not a “dirty and confused piece of paper”, but a floppy disk with an algorithm that he (the complex) developed on his own, without the help of programmers.

Having received the floppy disk, the programming department automatically translates the code and ultimately receives the object module of the program. The latter is loaded into the on-board or ground-based computer of the missile system.

Thanks to the DRAGON, the complexist was given a precious opportunity at the cost of minimal effort to independently develop and analyze in detail all his algorithm, that is, to formalize his professional knowledge.

Thus, when using the DRAGON, a wise principle is implemented: whoever has knowledge must formalize it. Knowledge of the physics and operating procedures of the rocket complex is possessed by a complex specialist, and not a programmer at all. Therefore, the complexist must formalize his knowledge. In this case, the endless game of "damaged telephone" between the complexer and the programmer is completely excluded.

The results of the introduction of dragon technology affected immediately. Previously, the complexist understood the algorithmic part of his work relatively shallowly or even superficially. Now - thanks to working at a computer with a dragon editor and instant printing of the results for a more complete review - he began to understand it in all details. Because the dragon diagram shows him his own thoughts - the developed algorithm - in a clear, understandable and distinct form.

As a result, the depth of intellectual development of the algorithm has increased significantly. The quality of work has improved by an order of magnitude. Labor productivity increased.

From Pascal to the Dragon

  At one time, Nicklaus Wirth, author of Pascal, said that Pascal should be the very first language with which to start learning programming. This view has become generally accepted.

At that time, programs were written as text. For text programming, Pascal was indeed the best learning language.

However, today the situation has changed. The future belongs to visual and graphic languages. Under these conditions, "Grandfather Pascal" lost its former glory as a "wonderful learning tool."

Today, this role is moving to the graphic language DRAGON. It is DRAGON that becomes the easiest and logically coherent language with which to begin the study of algorithmization and programming.

Dragon language and education system

  It has already been said that the practical usefulness of the DRAGON was highly appreciated. The Ministry of Education included the study of the DRAGON language in the curriculum of a computer science course in higher education (see: "Sample program of the discipline" Computer Science ". Official publication. - M .: Goskomvuz, 1996".

Training books are being prepared for secondary and higher education. The first of them has already been published - a game textbook for children of primary and secondary school age: see. V.D. Paronjanov. Entertaining informatics: the Magic Dragon visiting Murzik. - M.: Rosman, 1998, 2000.160s. 200 illustrations. "

`` Slide 18. In the DRAGON language, two very convenient, but unusual concepts are used. Skewer is a vertical line connecting the beginning and end of an algorithm (or branch). The main route is the path from the beginning to the end of the algorithm, leading to the greatest success. ’’

The rule says: the main route of the algorithm should go along the skewer. This means that the “royal” route cannot be found somewhere in the back of the dragon-scheme, where it cannot be found in the afternoon with fire. No, he should always be in the “most honorable” place - on the extreme left vertical. Compliance with this rule makes the scheme visually ordered, predictable and intuitively clear.

`` Slide 19. From a logical point of view, both algorithms are equivalent. But from an ergonomic point of view, the left scheme is better, since the main route has no kinks. ’’

`` Slide 20. The dragon pattern is ordered from left to right.
  according to the principle: "The more to the right, the worse." ’’

Slide 21. Graphic mathematical formula justifying the operation "Castling". It serves as a mathematical justification for the two rules above: ’’

The main route should go along the skewer (see slide 19, left).

Side routes are drawn to the right of the main one according to the principle: “The more to the right, the worse” (see slide 20).

Part 2

The DRAGON language OPENS A WICKET IN THE KINGDOM OF UNDERSTANDING ALGORITHMS

criterion of superhigh understanding

The main requirement for the DRAGON language is to improve mutual understanding between people, facilitate complex mental work, improve the understanding of algorithms. To designate this requirement, the concept of “criterion of superhigh understanding” is introduced.

It is believed that a language satisfies this criterion if the plans, algorithms, and processes written on it have the highest cognitive-ergonomic quality.

ergonomic algorithms

It can be said differently. The criterion of superhigh understanding requires that the form of writing algorithms be as convenient as possible and allow a person to read any algorithm with "extraordinary intellectual ease."

To create such ease, we need new, frankly, unusual for mathematicians, but clear "for the people" rules for writing algorithms.

Ergonomic algorithm - an algorithm that meets the criterion of super-high understanding. The advantage of ergonomic algorithms is that they are much more understandable, clearer, more intuitive and intelligible than conventional ones. If the algorithm is incomprehensible, it is difficult or even impossible to notice a hidden error. Conversely, the clearer the algorithm, the easier it is to find a defect. Therefore, a more understandable, ergonomic algorithm is much better than usual. Better in the sense that it facilitates the identification of errors, and this is very important. Indeed, the more errors can be detected during visual verification, the more likely it is that the newly created algorithm will be correct, error-free, and reliable. In addition, ergonomic algorithms are convenient to study, they are easier to explain to another person.

The era of clear algorithms

  The practice of designing and operating the DRAGON language suggests that the strategic goal announced above - the construction of algorithms suitable for solving the problem of understanding and understanding - is quite achievable. If this is true, then we are on the verge of a new era - the era of understandable algorithms.

For the first time in history worldwide, complex algorithms will be easy to understand! This means that the cherished dream of the most visionary mathematicians and programmers will be realized. Instead of the current “mind-boggling” algorithmic jungle, “surprisingly clear descriptions of algorithms and processes” will shine with magic light everywhere. A new world will open before our delighted eyes - a world of friendly algorithms in which extraordinary lightness and depth of understanding will reign.

It is hoped that further development of the theory and practice of ergonomic algorithms will have important consequences. There is reason to believe that the massive use of the DRAGON language will pave the way for universal algorithmic literacy (to the extent that such a task can, in principle, be solved).

`` Slide 23. Two equivalent logical formulas. On the left is a traditional textual formula (OR scheme), understandable to a narrow circle of mathematicians and programmers. ’’

On the right is the “democratic” graphic formula (OR graphic), written in the DRAGON language. It is understood by a much wider circle of employees. As practice shows, the right formula is available even to those people who experience great difficulties when working with a complex left formula.

It should be emphasized: DRAGON does not prohibit working with the left formula. But for those for whom it is difficult, he offers a more humane and easy option.

`` Slide 24. Two equivalent logical formulas. On the left is the traditional formula (“I” scheme), which is understandable not to everyone. ’

The formula on the right (“I” graphic diagram) written in DRAGON is much easier to understand. It becomes even more obvious if we replace the abstract letters A, B, C, F with concrete production concepts. For example:

A \u003d fuel supply rate; C \u003d power supply rate;

B \u003d ignition rate F \u003d turn on the engine.

Part 3

The path to wisdom

DRAGON language and fundamental problems of civilization

what awaits us in the future?

Over the past hundred years, the situation on the planet has radically changed. Things are going worse than expected. Global problems are exacerbating. Attempts to overcome them do not lead to tangible success. The inability of the human mind to find a solution to many burning problems of our time is becoming ever more clearly manifested.

The latter include the well-known troubles of terrestrial civilization: continuous military conflicts, huge military spending, the spread of nuclear weapons, international terrorism, crime, overpopulation, poverty, social explosions, religious extremism. Add environmental sores here: environmental pollution, thinning of the ozone layer, depletion of resources, dangerous processes in the biosphere, increasing greenhouse gas concentrations, global warming and possible sea level rise. And do not forget about the asteroid hazard, i.e. the possibility of a collision of the Earth with a crazy space body.

Unprecedented measures are needed to solve these problems. For the first time in history, intelligence has become the main tool for conscious efforts to save the world. Without the active intervention of the mind, it is unlikely to unravel this tangle of problems in an acceptable time. At the same time, one has to admit that the current intelligence of mankind is too weak and clearly insufficient to solve such complex tasks.

Weakness of intelligence leads to the fact that the situation often gets out of control, causing serious negative consequences of a local or global nature. Like ominous lights that illuminate the globe, large and small disasters, wars and other disasters flare up everywhere, which the mind cannot foresee and prevent. Thus, the price of mistakes, inaction and weakness of intelligence has become unacceptably high. The conclusions follow from this:

It is necessary to improve intelligence, i.e. to improve intellectual activity in science, technology, business, education, politics, economics and other important areas.

It is necessary to create new, more effective intellectual means and instruments capable of making the collective mind of mankind more powerful and efficient.

Analyzing the history of civilization, we can distinguish a long process of intellectual development of mankind. People have long sought to improve their intellectual tools in order to expand the limits of the power of thinking.

Until recently, this process was spontaneous, slow and not very effective. But today the situation has changed. There was an opportunity to take this important process under control, study its features, understand the patterns and learn how to manage it. The goal of management is to increase the intellectual productivity of humanity.

It will be shown below that the DRAGON language, which was conceived from the very beginning as a means to improve the work of the mind, can serve as an example of a conscious and effective approach to solving the problem - the task of improving the creative productivity of the human brain.

What is more important: a computer or a human brain?

  Two eras can be distinguished in the development of computer technology and programming. The first is the era of crude computerization, during which the automation of mental work was carried out. This was the greatest achievement. In a matter of years, the computer shell of the planet formed, which took on its mighty shoulders countless tasks that previously could only be performed by the human brain.

However, it is too early to rest on its laurels. It became clear that this was completely insufficient. Why?

The answer is obvious. Hundreds of millions of computers, like magical flowers, have dotted the globe and become an integral part of the modern intellectual landscape. However, the main player in the intellectual field is still the human brain. A computer is just a tool. It’s not people who make decisions, but people.

most important characteristic of civilization?

Our planet is a giant warehouse, or rather, a generator of unsolved problems: small, medium, large and global. The faster they are solved, the more successful the development of society will be, the more favorable the prospects for humanity.

This means that the speed of the brain becomes the most important characteristic of civilization. It is highly desirable for the brain to work with the highest productivity, solving problems at the fastest pace.

On the threshold of a new intellectual revolution

  To sharpen the problem, ask a question. How does the human brain work after automation, i.e. after transferring a number of intellectual tasks to computers? Did you manage to create the best conditions for the work of the mind? If not, how can you maximize brain productivity?

With crude computerization, these issues are not only not resolved, but not even posed. Meanwhile, it is rude computerization that dominates the world today. This leads to unpleasant consequences. Scientists, designers, programmers who determine the planet’s informatization strategy, while being held captive by outdated views, do not notice something very important - the idea that belongs to the future (I didn’t even notice the elephant!). Concentrating on the development of computers, programs, networks and a primitive user interface, they completely lose sight of the problem of facilitating the work of the brain and increasing its creative productivity.

As a result, the capabilities of the brain are underutilized. Giant reserves of human intelligence at all levels of management and decision-making remain unclaimed. Moreover, it was precisely when the need for more wise, intellectually justified and balanced decisions reached an unprecedented, one might say global acuteness.

What follows from here? Today we are on the verge of a new computer era - the era of subtle computerization. Its purpose is to improve the work of the mind, i.e. ensure maximum performance (brain) of intellectual workers and students.

This is a new computer revolution, which should solve a much more complex, truly daunting task - to invade the secrets of the brain and make it work better, faster, more efficiently.

The DRAGON language is the first scientifically based step in this direction. It can be said differently. DRAGON - this is the first sign that shows the correct - cognitive-ergonomic - way to increase the creative productivity of the brain. (A more detailed argumentation on this subject can be found in the monograph “VD Parondzhanov. How to improve the work of the mind: Algorithms without programmers are very simple! M .: Delo, 2001. 360s.”).

Intellectual history of mankind and superlanguages

  The intellectual history of mankind is inextricably linked with the improvement of language. In the history of the language, four partially overlapping stages can be distinguished:

Sound (oral) languages \u200b\u200bof the preliterate era;

Written languages \u200b\u200b(cuneiform writing, hieroglyphs, alphabetical writing);

Artificial languages \u200b\u200b(drawings, graphs, chemical and mathematical formulas, logical and mathematical calculi, programming languages);

Ergonomic superlanguages.

The advent of sound languages \u200b\u200bof the preliterate era singled out man from the animal world, indicating a huge leap in the development of animal intelligence. At the same time, the mind of the “preliterate” person was at an extremely low stage of development. It was the intelligence of a savage rather than a man.

The invention of written languages \u200b\u200bsymbolized the second giant leap in the evolution of intelligence. This event can be described as the transformation of a savage into a person. Writing gave people power over information. The birth of writing is the beginning of written history, the conception of civilization.

The third powerful leap in the development of intelligence is associated with the intensive development of artificial languages, among which logical and mathematical calculus and thousands of programming languages \u200b\u200boccupy a special place.

Recall the words of Nikolai Lobachevsky:

  “What is the glory of modern times, the triumph of the human mind, lent by their brilliant successes in science? No doubt his artificial language! ”

We came to the most interesting place. Today, the increase in the intellectual power of mankind is largely achieved through the creation and use of a wide variety of artificial languages. However, an unexpected difficulty arises in this way. It lies in the ergonomic imperfection of existing languages. They are too difficult. Difficult for human perception. Current languages \u200b\u200bare available only to a few select ones and unsuitable for mass use. This circumstance seriously hinders the further growth of people's intellectual abilities.

A fundamental flaw in programming languages

Consider one of the most important intellectual problems - the programming problem. Recall the words of Academician Andrei Ershov:

  "A person will immeasurably strengthen his intellect if he makes the ability to plan his actions a part of his nature ... in a word, he becomes a programmer."

Is the respected academician right? There is no doubt: the ability to program well significantly expands the mental capabilities of specialists, allowing you to optimize the mind and use the computer an order of magnitude more efficiently. However, there is one “but”. In practice, the path proposed by Ershov to improve intelligence is alas! - does not work. It is simply closed to the vast majority of comers. Why?

The trouble is that, without exception, all known programming languages \u200b\u200bare too complex and inaccessible "for the people." They are intended for a narrow caste of experts and not for anyone else. The intellectual labor involved in mastering programming is unacceptably high.

Therefore, programming languages \u200b\u200bare not able to provide the necessary ennobling effect on the intellectual life of society. They cannot overcome the fragmentation of individual intellects and provide the necessary strengthening of the power of the global collective mind that meets modern requirements.

Along with the class of programming languages \u200b\u200band other artificial languages \u200b\u200b(which, of course, should continue to function in the culture), it is necessary to create a class of fundamentally new languages, the term “superlanguages \u200b\u200bof intellectual communication” (for brevity, superlanguages) is proposed.

dragon - the first ever superlanguage

  (and not the last)

One of the most dramatic contradictions of the current phase of the development of civilization is as follows. On the one hand, the weakness of the planetary mind threatens the fate of civilization, and science does not have an answer to the question: how to get the necessary increase in intelligence for salvation?

On the other hand, the enormous intellectual reserves of the human brain are still not used. Because people “exploit” their brains very badly, illiterate, and not at all as its “design” (ergonomic and neurobiological) characteristics require.

So why do we need superlanguages? To eliminate this contradiction, to overcome the current intellectual deadlock by identifying and scientifically sound use of the hidden reserves of the brain.

The social success of any artificial language, its rootedness in culture, the possibility of large-scale expansion of its scope and international recognition depend on the general availability and usefulness of the language. The usefulness of superlanguages \u200b\u200bis determined by the fact that they should facilitate understanding and mutual understanding, provide a strategic intellectual breakthrough that allows to qualitatively increase the mental power of civilization.

The DRAGON language can be described as the first ergonomic superlanguage in history, since it was developed using scientifically-based methods of ergonomic design.

It can be said differently. DRAGON is the first consciously made ergonomic step in language construction. Ergonomic - means, firstly, aimed at improving the work of the mind, and secondly, based on the full power of the science of human factors - ergonomics and cognitive science. The above can be summarized in the form of a brief thesis: DRAGON is an ergonomic revolution in “linguistics”.

The very fact of the existence and successful operation of the DRAGON in a number of large space-rocket projects shows that the practical implementation of super-languages \u200b\u200bis quite possible. This is not a fantasy, not a utopia, not a pink dream - this is already a reality. One can hope that superlanguages, as a new generation of artificial languages, will optimize the work of the mind and significantly increase the intellectual capabilities of society.

Looking into the future, one can probably assume that with the advent of superlanguages, a new path of knowledge opens before humanity - the path leading to genuine wisdom.
(carefully scraped from transhumanism-russia.ru site)

Last edited by PBworks  12 years, 2 months ago

FRIENDLY PROGRAMMING

DRAGON-SI HYBRID LANGUAGE

Suppose you want to build a visual programming system in the DRAGON-SI hybrid language. The problem can be solved, for example, using three programs: dragon-editor, dragon-converter and SI compiler. The user, using the dragon editor, draws a program in the DRAGON-SI language on the computer screen (Fig. 90, right column). Then, the dragon-converter converts the internal representation of graphic codes into the source code of the SI language (Fig. 90, middle graph), after which the standard SI compiler turns the source text into object code.

Thus, in order to build the DRAGON-SI language, it is necessary, according to certain rules, to connect the visual DRAGON syntax with the text syntax of the SI language, removing from the latter all the elements whose functions are implemented by the DRAGON visual operators. A pair of SI and DRAGON-SI languages \u200b\u200bis equivalent in the sense that a converter can be built that performs both direct and inverse transforms. Such a converter can convert the source code of the program in the DRAGON-SI language (Fig. 90, the right column) into an equivalent SI program (Fig. 90, the middle column), and vice versa.

The creation of any hybrid language (for example, DRAGON-SI) is hardly worth considering the original development, since the latter almost completely preserves the concept, structure, data types and other features of the source language (SI). It is more correct to say that the construction of a hybrid language (DRAGON-SI) is a technical technique in which in a strictly defined number of cases the text notation of the source language is replaced by a visual one. However, this technique can significantly improve the ergonomic appearance of the source language.

HYBRID LANGUAGE PROGRAMMING

DRAGON MODULA

Let us turn to the upper example in Fig. 91. The middle column shows the program in the MODULA-2 language, in the right column the equivalent program in the DRAGON-MODULA language. The left column provides a list of keywords that are used in the module program and are “vital” for the language of the MODULA, but which are completely unnecessary in the dragon program.

From an ergonomic point of view, these and many other keywords present in text languages \u200b\u200bare nothing more than visual disturbances that attract the attention of the reader and distract his attention from the substantive side of the matter. The ergonomic advantage of the DRAGON is that instead of keywords, a visual image is used that is perceived by the reader unconsciously, on an intuitive level, while the channel of conscious attention acts more productively - to perceive the most important, substantial aspects of the task.

EXAMPLE OF ERGONOMIC OPTIMIZATION

PROGRAMS

In fig. 91 (below, in the middle column) a program is written in the PASKAL language. Acting by analogy with the previous examples, it can be easily converted into a program in the language DRAGON-PASCAL. To do this, we draw a visual operator “fork” and in the icon “question” we place the entry

K \u003d 1 OR K \u003d 2

We mark the bottom output of the “question” icon with the word “yes” and attach a switch with two “option” icons to it, and connect the right output (the answer “no”) to the “output” icon, in which we write WRITELN at the top and ERROR at the bottom. As a result, we get a dragon scheme, which undoubtedly is the absolutely correct solution to the task. (For clarity, we advise the reader to perform the described construction on paper.)

Now let's change the condition of the problem. Let's try to create a program that would not only be equivalent to the pascal program in Fig. 91, but also ergonomically optimal for the Russian-speaking reader. The desired program, written in the DRAGON-2 language, is presented in the same figure at the bottom right.

The structural difference between the programs is striking. The Pascal program contains two designs: if-then-else  and case-of. Ergonomic optimization consists in the fact that the dragon program uses only one visual operator (a switch with three options), which nevertheless performs the same functions “alone” as the two text operators of the PASCAL language. As a result, the difficult condition K \u003d 1 OR K \u003d 2 and other excesses of the pascal program are eliminated, and the dragon-scheme is noticeably simplified and becomes laconic, transparent, elegant.

DIALOGUE PROGRAMS

We continue the presentation of one of the possible approaches to the construction of the DRAGON-2 programming language. Recall again: the reader will not find a description of the language here. Our goal is much more modest: to show that formalization of text syntax for the DRAGON language is quite feasible, and give several examples confirming this idea.

Consider the dialog programs in Fig. 92 and 93, having improved didactic (pedagogical) characteristics. For this, an extensive set of ergonomic tools is used. In particular, when filling out the “comment” icon, text zoning. To facilitate perception, the comment text is spatially divided into two zones, which, firstly, have clearly defined and easily distinguishable boundaries, and secondly, differ in background color (white and gray). In the gray zone is placed the text that appears on the computer screen, in the white - explanations for it. Differentiating on-screen text from explanations makes reading comments easier and easier to understand.

The ergonomic “text zoning” technique is useful not only in comments, but also in other cases, for example, in I / O statements.

Message Operator

The “Message” operator is used to display information on a computer screen. It contains the “output” icon, on the upper floor of which the keyword “Message” is placed, on the lower floor - the displayed information. When describing the latter, zoning of the text is used: in the gray zone they write the names of variables or expressions (whose values \u200b\u200bshould be displayed on the screen), in the white zone - constant information (which is displayed on the screen without changes). A sign of a new line is a black circle. For example, in fig. 92 using the “Message” operator, the phrase “The sum of the numbers is equal” and the value of the expression m + n are displayed.

Query Operator

The “Request” operator enters into the computer the values \u200b\u200bof variables, displays on the screen constant information, names of variables and entered values. The keyword “Request” is written in the upper part of the “input” icon, and the input and output information is written in the lower part. There is also zoning of the text: in the gray zone indicate the names of the variables to be entered into the computer, in white - they place constant information.

Suppose you want to enter the values \u200b\u200bm \u003d 23 and n \u003d 45 (Fig. 92). This is done, for example, as follows: they move the cursor into zone m, type 23 on the keyboard and press the “carriage return” key. In this case, zone m on the screen goes blank and the number 23 lights up instead. The value n is entered in the same way. Thus, the “Request” operator asks the user for the values \u200b\u200bof the variables, writes them to the memory and simultaneously displays on the screen together with the constant information (if the latter is indicated on the lower floor of the “Request” operator in the white zone).

Data Description

The “shelf” icon is used to describe the data. On the upper floor write the keyword “Data”, on the lower floor - a description of the data. For example, in fig. 92 in the “shelf” icon indicates that the variables m and n are of the type “integer”.

Another way can be proposed: the description of the data is taken out of the scope of the dragon diagram and placed in a separate table.

IDENTIFIERS

Here are the rules for writing identifiers.

  • The length of the identifier is 1 ... 32 characters.
  • It is allowed to use any Russian and Latin letters, numbers, periods and, possibly, special characters.
  • The first character must be a letter (not a number or a period).
  • No spaces are allowed inside an identifier.
  • Words should be separated by dots to facilitate reading.
  • It is forbidden to use word reduction if the identifier is less than 32 characters long.
  • If the identifier is longer than 32 characters, replace some words with abbreviations or reduce the number of words.
  • We must strive to come up with intelligible identifiers that make it easy to understand the meaning of the concept so that the reader quickly understands the essence of the matter.

Examples of valid identifiers

Wagon number.

Wagon number.Passenger train

Ticket price. Train. To Magadan.

Ticket price.Aircraft.do.Magadan

Examples of invalid identifiers

An example of reducing the length of a complex concept

Suppose you want to create an identifier for the following concept: “The radius vector of the center of the earth at the center of the runway in the landing coordinate system”. The verbal description of the concept contains 92 characters. The challenge is to reduce the 92-character description to 32-character, while preserving the clear meaning of the concept if possible.

The reduction will be carried out according to the following plan:

  • The “radius-vector of the center of the Earth” is replaced by “Radius of the earth.”
  • Instead of “In the center of the runway” we write “on the runway”.
  • “In the landing coordinate system” is replaced by UCS, since such a reduction is commonly used in the development team of this system.

As a result, we get a 26-character identifier

which retains almost all the supporting words of the original concept and provides a fairly high understanding.

Rules for writing arithmetic expressions

in assignment statements

Two cases should be distinguished. If the expression is simple, it is recommended to use 32-character identifiers and a “vertical” notation of mathematical formulas, as shown in Fig. 94 and 95.

However, if we are talking about complex mathematical calculations, the described method is not suitable, since “vertical” formulas with 32-character identifiers do not allow the reader to see the mathematical structure of the calculations, diverting his attention to reading long identifiers, which paradoxically turn from a useful hint into their opposite and begin to play a negative role visual interference. Thus, an ergonomic deadlock occurs: short identifiers do not allow to quickly understand the meaning of concepts, and long identifiers obscure the structure of complex formulas.

As one of the possible approaches to unleashing this Gordian knot, a three-point plan can be proposed.

  • Two identifiers are provided for each mathematical concept: long (32-character) and short (alias).
  • In arithmetic expressions, only aliases are used, which makes the structure of the formulas transparent.
  •  At the beginning of the program, a “comment” icon is provided, which contains a table of correspondences between aliases and long identifiers. This table plays the role of a cheat sheet, which is in the same field of view with assignment operators and allows you to quickly remember what a particular alias means.

ARRAYING

In fig. 94 and 95 are examples of programs in which there are operations with arrays.

The data description is located on the lower floor of the “shelf” icon.

means that a one-dimensional array with the name “Rabbit Weight” is specified, containing 100 elements, each of which is a real number.

The main element of both programs is the FOR loop. Consider the rules of the design cycle. In the icon “beginning of the cycle FOR”, the word “Cycle” is written in the upper line and after the space a single-character alias denoting the cycle variable (letter k in Fig. 94, 95). The bottom line indicates the range of its change, for example,

The equal sign ≡ indicates that it is followed by a comment name, that is, a comment that is written according to the rules for identifiers.

The ergonomic “fat” of formalized commentary includes two benefits. Firstly, it eliminates the traditional “forgetfulness” of programmers and humanly explains to the reader the meaning of the abstract identifier: they say, k is the number of the rabbit cage. Secondly, importantly, the explanation is placed on the drawing field exactly where it is needed (in the icon “the beginning of the cycle FOR”), on the principle of “expensive testicle to Christ’s day”. This means that the reader receives an answer instantly - at that very second, when he first saw the alias k and the question flashed in his head: what is k?

In the icon “end of cycle FOR” record

The meaning of the operators organizing the processing of arrays is clear from Fig. 94 and 95 and requires no explanation.

ABSTRACT DRAGON SCHEMES

In this section, we will consider the conversion of a visual program in DRAGON-2 into a text program in BASIC. This transformation is useful in two ways: it will help to better understand the essence of visualization and get acquainted with the important concept of an abstract dragon-pattern.

As an example, take a school curriculum called “Game guessing game” and write it in the DRAGON-2 language (Fig. 96). Then we completely eliminate the text from it and get a drawing of a mole rat, which is called an “abstract dragon-scheme” (Fig. 97). This scheme is an invariant of the program, which can be converted into a program in any programming language in two steps.

We choose BASIC as the target and get down to business. In the first step, fill in the empty icons of the abstract circuit with BASIC text. The result is an equivalent program in the DRAGON-BASIC language (Fig. 98). In the second step, we move on to the usual BASIC program (we deliberately chose the old-fashioned BASIC version to demonstrate the use of goto operators for describing the equivalent dragon program for a change) - see Fig. 99.

PHILOSOPHY OF THE LANGUAGE DRAGON

Any imperative language (SI, PASKAL, ADA, MODULA, BASIC, etc.) can be divided into three parts, three relatively independent languages: route, command and declarative.

Route language  - a set of managing operators. Command language  contains all non-controlling operators, for example, assignment operator, rules for writing arithmetic and logical expressions, identifiers, keywords, etc. Declarative language  serves to describe data, classes, etc.

Let us explain what was said by an example. The abstract dragon diagram shown in Fig. 97, there is some “phrase” of the route language. To make it meaningful, you should place text inside the icons. This text is written in command language. However, descriptions of data and classes are sometimes advisable to take out of the scope of the dragon diagram and place them somewhere else, for example, as a separate record or table.

This implies the principle of distinguishing between three sublanguages. The route language is the language of “pictures” (abstract dragon patterns in which the text is completely absent). The command language is used to write text inside the dragon-scheme, declarative - for those records that can be taken out of it.

By constructing the next language of the dragon family, you can choose command and declarative sublanguages \u200b\u200bin any way (borrowing from other languages \u200b\u200bor inventing it again). This ensures the richness of the DRAGON's capabilities and flexible configuration for various applications. Thus, the dragon family has only one hard link - the route language, which is nothing but the visual components of the DRAGON (visual syntax and semantics).

The route language is the visual standard of the dragon family, supported by the visual dragon editor (see chap. 14), which is small and easy to remember. It is an invariable visiting card of the DRAGON, its standardized visual image (Fig. 97).

CLASSIFICATION OF KNOWLEDGE

Any program is a certain amount of knowledge that can be divided into the imperative and declarative part. The above considerations allow us to clarify this thesis. A new look at the problem is presented in Fig. 100 and boils down to the following:

  •  To analyze the knowledge contained in the source code of a computer program written in an imperative language, it is advisable to use two classifications: basic and alternative. / Li\u003e
  • Basic classification  consists in the fact that all the knowledge contained in the original program is divided into imperative and declarative.
  • In turn, imperative knowledge is divided into managing and commanding.
  • As a criterion for an alternative classification, the question is proposed: what tools are better to use to represent knowledge - graphics or text?
  • The answer is as follows. It is better to use graphics (route language) to represent managerial knowledge, and text for command and declarative knowledge.
  • Thus, with an alternative classification, knowledge is divided into visual (control) and text (command and declarative).

Finally, add: using text to represent complex control knowledge looks as ridiculous as trying to describe a geographic map in words. The fact that the text is still used for this purpose can only be explained by one thing: programming is much younger than geography!

FINDINGS

  1. If we have at our disposal a formal visual syntax, then to build a visual programming language it is enough to build a formal text syntax. We made sure that this problem is completely solvable, and in several ways. As a result, a family of programming languages \u200b\u200bis formed, both original (DRAGON-2) and hybrid (DRAGON-SI, DRAGON-MODULA, DRAGON-PASCAL, DRAGON-BASIC, etc.).
  2. It can be argued that the comprehensibility of visual languages \u200b\u200bis significantly higher than the comprehensibility of their text counterparts. Therefore, in all cases when comprehensibility is considered as the main criterion for the quality of programs (and there are many such cases), visual languages \u200b\u200bare out of competition. A reservation is appropriate here: the term “visual” alone does not guarantee anything. The success of the business is achieved through careful and scrupulous application of the methods of the science of human factors (ergonomics). More precisely, we are talking about a synthesis of methods of computer science and ergonomics, the formation of a new interdisciplinary direction - infoergonomics, the restructuring of the entire building of modern programming on an ergonomic basis.
  3. The creation of any next generation programming language should begin with an analysis of ergonomic requirements and end with an assessment of the resulting ergonomic characteristics of the language. One of the main obstacles to the implementation of this plan is the inertia of the thinking of many specialists, underestimation of the importance of ergonomic methods. To change the prevailing stereotypes of thinking, it is necessary to make serious changes to the program and methods of teaching computer science at school and university.

Have you heard anything about the DRAGON programming language? We are not. But our reader claims that DRAGON has already been included in the curriculum of computer science in higher education.

Have you heard anything about the DRAGON programming language? We are not. But our reader claims that DRAGON has already been included in the curriculum of computer science in higher education. Spelling and punctuation of the author saved. - approx. ed.

In 1976, in the USSR, in an atmosphere of strict secrecy, the development of the reusable transport spacecraft Buran was launched as part of the Buran-Energy project. It was a grandiose project. 86 ministries and departments and 1286 enterprises of the USSR (a total of about 2.5 million people) took part in its creation.

“Buran” completed its first and only space flight on November 15, 1988. The orbital ship was launched from the Baikonur Cosmodrome using the Energia launch vehicle. After flying around the Earth, Buran landed at the specially equipped Yubileiny airdrome in Baikonur. The flight took place without a crew, fully automatic. Unlike the American Shuttle, which can only land on manual control. Due to the collapse of the USSR and the difficulties of the transition period in 1990, work on the Energy-Buran program was suspended, and in 1993 the program was finally closed.

Development of programming languages \u200b\u200bfor Buran

When developing Buran, the problem of developing and testing software was considered one of the most complex. Initially, it was assumed that several thousand programmers would be required to solve the problem. It should be noted that our programmers are used to writing assembler programs, since the memory capacity of the Beads-4 on-board computer was very limited at that time.

In the materials of the Institute of Applied Mathematics. M.V. Keldysh RAS about the difficulties and accomplishments of that period is stated as follows:

“In 1983, the developers of the Buran spacecraft turned to the Institute of [Applied Mathematics] with a request to help develop on-board software and ground-based testing software for the ship. According to their estimates, several thousand programmers were required for this work. After studying the problem, it was decided to develop problem-oriented languages \u200b\u200bbased on the terms, concepts and presentation of control and testing algorithms used by the ship’s developers. to develop on-board and test software of the ship’s developers themselves - authors of control and test algorithms. The development of languages \u200b\u200band related tools was carried out by a small team of highly qualified programmers at the Institute of Applied Mathematics in an extremely short time. A specialized real-time language PROL2 was created for the development of on-board software and the SAPO PROL2 programming and debugging automation system based on it ... For p Based on the development of the software for ground testing of the spacecraft, the problem-oriented language DIPOLE and a programming and debugging automation system based on it were created "...

Thus, in order to solve the problem of the lack of programmers when creating Buran, at our request, the Institute of Applied Mathematics of the Russian Academy of Sciences created two Russian-language languages:

  • pROL2 real-time language for developing on-board integrated programs (author Victor Kryukov)
  • problem-oriented language for the development of ground testing programs DIPOLE (author Vladimir Lutsikovich)

In addition, in the Pilyuginsky Center, under the leadership of Konstantin Fedorov, the LAKS language for modeling was developed. Thus, three new languages \u200b\u200bappeared: PROL2, DIPOLE and LAX.

Tongue DRAGON was born in a space cradle

Although languages \u200b\u200bsuccessfully solved the set tasks, it became clear that the narrow specialization of languages \u200b\u200binterferes with the matter. This idea was expressed in 1986 by the head of the integrated department Yuri Trunov (later the General Designer and General Director of the Pilyuginsky Center). Trunov summoned Vladimir Parondzhanov, the head of the Buran computer-aided design laboratory, and commissioned him to create a universal language that could replace the three above. However, Paronjanov decided to set the task differently. He believed that the new language should not only satisfy the practical needs of space technology, but also solve an extremely wide range of tasks that go far beyond traditional programming.

In this regard, when creating the DRAGON language, humanitarian requirements were unusual for programmers, mathematicians and "techies".

1.   Improve the work of the human mind.
2.   Offer effective tools to describe the structure of human activity.
3.   Providing a person with such language tools that dramatically simplifies the perception of complex procedural problems and communicating with colleagues, makes the incomprehensible understandable and, due to this, literally make the person think clearly, deeply and productively. Under these conditions, the likelihood of errors, miscalculations and errors inevitably falls, and productivity grows.
4.   To radically facilitate interindustry and interdisciplinary communication between representatives of different organizations, departments, departments, laboratories, scientific schools and professions.
5.   To eliminate or reduce barriers of mutual misunderstanding between employees of various specialties (doctors and physicists, mathematicians and designers, biologists and economists, etc.), as well as programmers and those who are allergic to any programming.
6.   Achieve a dramatic improvement in the quality of software by the criterion of "comprehensibility of algorithms and programs."

Development of the DRAGON language and its software

The development of a new programming language and system began in 1986. 11 years later, on the basis of DRAGON, an automated technology for designing algorithms and programs (CASE-technology) under the name "GRAPHITE-FLOX" was built.

All work was completed by 1996. Then the DRAGON language and the GRAPHITE-FLOX system were put into operation. With their help, algorithms and programs for the after-launch module of the spacecraft of the International Sea Launch Project were developed. In total, the development and testing of software and other elements of the control system took three years. By 1999, all work was completed. The system was ready to start.

The first launch of the Sea Launch missile system took place on March 28, 1999. It happened at 5 o’clock. 30 minutes. Moscow time (March 27, 1999 at 6.30 p.m. Pacific time) with the launch platform "Odyssey" in the Pacific Ocean near the islands of Kiribati.

This launch was the baptism of the DRAGON language and the technology for creating Graphite Phlox programs. He convincingly demonstrated their effectiveness and reliability. Since then, 29 missile launches have been carried out under the Sea Launch program. The last launch took place on September 24, 2008. The DRAGON language is also successfully used in many other space programs:

  • upper stage spacecraft "Frigate";
  • upgraded Proton-M launch vehicle;
  • dM-SL-B spacecraft’s after-launch module (project “Launch in the Desert”, or “Land Launch”), etc.

Since the results of using the Dragon were consistently high, the leadership of the Pilyuginsky Center decided to use dragon technology in all subsequent projects.

Programming without programmers

DRAGON is a very easy language. So light that the development of many computer programs for space rockets in practice is not carried out by programmers, but by engineers - on the principle of "programming without programmers." The reason for refusing programmers is simple. When solving practical applied problems, engineers thoroughly master the material and are well aware of the problem statement. In contrast, programmers do not know the "physics of the process" and become "extra people", without which in some cases (although not always) it is quite possible to do.

This allows you to significantly reduce costs, improve the indicator "costs - the result", accelerate the progress of work. And completely get rid of the errors of the "damaged phone" caused by mutual misunderstanding between programmers and engineers.

Secrets of space exploration - national economy

DRAGON is universal. It can be used for visualization and rapid development of algorithms not only in "space", but also in "earthly" types of human activity. The practical usefulness of the DRAGON was greatly appreciated. It can be assumed that the DRAGON language will be widely used in various fields, including the education system. At one time, Nicklaus Wirth, the author of Pascal, considered that Pascal should be the very first language to start learning programming with. This view has become almost universally accepted.

At that time, programs were written as text. For text programming, Pascal was indeed the best learning language.

However, today the situation has changed. The future belongs to ergonomic languages. Under these conditions, Grandfather Pascal lost its former glory as an excellent educational tool.

Today, this role is moving to the visual language DRAGON. It is DRAGON that becomes the simplest, easiest, most convenient and logically coherent language with which to begin the study of algorithmization and programming.

Dragon in the education system

In 1996, the State Committee on Higher Education of the Russian Federation included the study of the DRAGON language in the curriculum of computer science in higher education. This fact was reflected in the document of the State University, entitled:

Training books for secondary and higher education are currently being prepared. The first of them has already been published - a game textbook for children of secondary school age.

Algorithms without programmers - it is very simple!

ON APPROACHES TO A NEW LANGUAGE

In some sections of my book I went beyond theories in which I can claim to
  any professional knowledge. I ask those in whose protected lands I have invaded to forgive me my recklessness. And if the individual trophies that I write about exist only in my imagination, then at least such poaching does no harm to the rightful owners, while a random alien can sometimes see something that is both unexpected and real.

George Paget Thomson

WHY DO THE DRAGON LANGUAGE NEED?

DRAGON is an algorithmic language with an unusual property: at the same time, it is a language for describing the structure of activity, a language for understanding and understanding, a language for developing intelligence. As a programming language, it satisfies the requirements of mathematical rigor, which makes it possible to obtain object code (machine code for a computer) from the source text. But this is not the main thing. When creating the DRAGON, the main attention was paid to the human factor, improving the visibility and clarity of technical and social projects and technologies, improving the ergonomic characteristics of algorithms so that, not just in words, but in practice, turn the DRAGON into a language for improving the work of the mind, a language of understanding and understanding.

Although DRAGON looks very much like ordinary flowcharts of algorithms and programs, in fact it is an original development. The closest functional analogue of the DRAGON should be considered action diagrams (action diagrams) and activity diagrams (activity diagrams).

For meticulous readers who love details, the analogues of the DRAGON - to one degree or another - can be called more distant "relatives." These include: Nessie – Schneiderman diagrams, HOS diagrams, greenprint diagrams, NEC SPD diagrams, Hitachi PAD diagrams, decision trees and decision tables, decomposition diagrams, dependency diagrams, SDL language and its derivatives, BLS system created by A. Smolyaninov from St. Petersburg Electrotechnical University, R-scheme of I. Velbitsky, scheme of V. Prokhorov, etc.

WHAT IS THE SECRET OF A DRAGON? - IN A COGNITIVE APPROACH

  However, a comparison with analogues in this case is unproductive, since it does not allow to reveal the most significant feature of the DRAGON, which is called the “cognitive approach”. The term “cognitive” (cognitive) is not yet widely used among designers, developers, engineers and programmers, but it is the secret password of a new powerful scientific order, or rather, the banner of two new, rapidly developing areas in psychology and the science of intelligence, known like cognitive psychology and cognitive science.

One of the goals of these disciplines is to reveal the hidden reserves of the human brain, to increase the creative productivity of intellectual workers.
The essence of the question is as follows. Developers of technical and social projects, intellectual workers are living people with a brain, whose capabilities, although great, are nevertheless far from unlimited. Thus, the design problem is not only technical, but also human, cognitive, i.e., cognitive.

The cognitive factor in this book refers to the cognitive, intellectual, mental, creative aspects of the activities of scientists, specialists and students. The more complex the object of technical and social design, the more important it is to emphasize the need for careful consideration of the cognitive characteristics of people's activities. Academician P. Simonov emphasizes: for developers of systems “it is extremely important to know the rules, following which the living brain perceives, processes, fixes and uses again the information that has been obtained. Information about such rules identified in the experiment is provided by cognitive psychology. ”
  Using these rules allows you to get a practical result - to increase the productivity of mental labor.

WHY ARE PEOPLE NOT INTERESTED IN OWN BRAIN?

In the last two decades, new and extremely important information about the functioning of the brain has been obtained in neurobiological and psychological studies. They open the way to revolutionary transformations of intellectual labor, creating the prerequisites for a cardinal increase in its knowledge of generating creative productivity. In fact, we are on the verge of a strategic reform of intellectual work that promises to include new powerful reserves of the human brain and intellect in creative work. But these results, due to well-known interdisciplinary barriers, have not yet become the property of designers, engineers and programmers who develop complex technical and social systems. As a result, a paradoxical situation was created. Let us explain the situation using an example.

Programming is done by people with a brain. However, until now, programming languages, methods, and theories have been built without considering the design of the brain. It is impossible to maximize the creative productivity of the brain of programmers without considering its design. Consequently, traditional ways of creating programming languages \u200b\u200band technologies that ignore brain construction are outdated and ineffective.

It seems that this conclusion is valid in other cases. Ignoring the patterns of the brain, insufficient attention to cognitive issues leads to unpleasant consequences: mutual misunderstanding between co-authors of complex projects, serious misconceptions in scientific knowledge, major scientific and technical miscalculations, the elimination of which requires significant material costs (associated with expensive design improvements and time-consuming alterations of the software), as well as a tangible decrease in the resulting productivity of developers and others astnikov technical and social projects.

The science of human factors is called ergonomics. Cognitive problems are an important part of ergonomics. To isolate the cognitive group among other ergonomic issues, the terms “cognitive ergonomics” and “cognitive-ergonomic problems” are sometimes used.

WILL THE DRAGON BECOME A CHAMPION OF THE WORLD BY THE CRITERION “UNDERSTANDING OF ALGORITHMS”?

This book is purely practical in nature. It will be shown below that the cognitive approach is a working method that yields useful fruits: improving the comprehensibility of algorithms and programs, projects and technologies, increasing the productivity of complex intellectual work. We will try to substantiate this thesis, gradually revealing the features of the DRAGON language.

Like all other languages, the DRAGON relies on mathematics and logic. However, in addition, he carefully considers cognitive issues. Thanks to the systematic use of cognitive-ergonomic methods, DRACON has acquired unique ergonomic characteristics. It can be assumed that in the future DRAGON will be able to claim the title of champion by the criterion of “comprehensibility of algorithms and programs” (in the class of imperative languages).

DRAGON can be defined as a generally accessible visual language intended to describe the structure of activities, to systematize, structure, visualize and formalize imperative knowledge, as well as to design, program, model, and learn. This is a universal intersectoral language of the business world, which serves to describe scientific, technical, medical, biological, economic, social, educational and other tasks. DRAGON allows you to streamline and present a solution to any arbitrarily complex imperative (procedural, activity, technological, prescription, algorithmic) problem in the form of visual drawings made on the principle of “ looked - and immediately realized!”.

The humanity of the DRAGON language, the desire to create maximum comfort for the work of the human brain, all-round concern for increasing the creative productivity of staff allows us to hope that the DRAGON will receive the widest application in the national economy, business, defense, science and the educational system. Using not only visual, but extremely visual forms of knowledge representation, facilitating the work of the brain, DRAGON provides a noticeable increase in the productivity of intellectual labor.
  The DRAGON language is based on the idea of \u200b\u200bcognitive formalization of knowledge, which allows you to combine the rigor of the logical and mathematical formalization with accurate consideration of the cognitive (cognitive) characteristics of a person. As a result, it was possible to radically simplify and facilitate the procedure for describing the structure of activities, formalizing the professional knowledge of specialists, standardizing it and making it suitable for mass practical use. This applies equally to both computer and non-computer intellectual activities of people.

Thus, the main goal of creating the DRAGON language is to provide a quantum leap in increasing the productivity of complex intellectual work by increasing the intellectual productivity of the human brain, identifying and making more full use of the reserves of human intelligence, creating cognitive prerequisites for a significant increase in the effectiveness of information technologies.

WHO IS THE DRAGON LANGUAGE FOR?

The language is equally designed for four categories of persons:
  - to people who are completely unfamiliar (or poorly acquainted) with programming and computer technology: mechanics, electricians, complex specialists, instrument technicians, testers, physicists, chemists, geologists, biologists, physicians, agronomists, economists, lawyers, psychologists, etc. ;
  - for professional programmers, mathematicians and developers of computer technology, including specialists in operating systems, system and applied programming, as well as microprogramming (for personal, universal, control and on-board computers);
  - for schoolchildren and students;
  - to managers of many levels who want to understand the essence of complex problems in a minimum amount of time.

LIST OF TASKS SOLVED BY THE DRAGON LANGUAGE

The DRAGON language can be used to solve the following problems:

Description of the structure of human activity;
  - a visual representation of imperative knowledge in any areas of the national economy, science and education;
- Description of conceptual solutions and imperative models;
  - design of algorithms and programs;
  - development of algorithms and programs;
  - design of technological processes;
  - a description of any technologies (industrial, agricultural, medical, pedagogical, managerial, etc.);
  - description of the design process;
  - a description of the functioning processes of discrete systems and devices, including intelligent systems;
  - a description of the source data for the development of computer-aided design systems and scientific research automation systems;
  - A description of the process of solving mathematical problems;
  - a description of the dialogue and interaction of the human operator and the machine (control panel);
  - a description of the verification and troubleshooting process;
  - solving diagnostic problems in any subject areas;
  - microprogram development;
  - a description of the functioning of organizations and enterprises;
  - auto-formalization of the professional knowledge of scientists, designers, mathematicians, doctors, lawyers, agronomists, psychologists, operators, etc .;
  - solving educational problems: training in skills of algorithmization, programming and auto-formalization of knowledge in an extremely short time.

As already mentioned, the functional analogue of the DRAGON are action schemes and activity schemes. DRAGON is capable of performing all the functions of the latter (the reverse is not true). Therefore, the list can be continued by including in it the tasks solved by the action schemes. This will allow us to describe some of the functions of the DRAGON using terms characteristic of American literature:

Strategic overview of corporate functions;
  - a description of the logical relationships between processes (logical relationship among processes);
  - description of the integrated program structure (overall program structure);
  - Description of the detailed program logic (detailed program logic);
  - full decomposition of programs (ultimate decomposition), starting from integrated logic and ending with the details of the code, which is equally useful when designing from top to bottom (top-down design), and bottom to top (bottom-up design);
  - the design of programs until the last moment can be carried out regardless of the language and only at the last stage is the transition to the desired language carried out;
  - end-user training that encourages them to analyze and design detailed process logic;
  - a description of organizational management procedures;
- Description of computer methodologies (computer methodologies);
  - Description of methodologies of information technology (methodologies of information engineering).

As can be seen from this list, DRAGON has the property of universality, being useful in solving a wide range of diverse problems. Thanks to this, DRAGON serves as a universal language for business communication and mutual understanding for specialists of various specialties. In addition, DRAGON significantly facilitates the process of formalizing knowledge, opening up new opportunities for increasing the level of automation in the design and operation of complex objects.

FINDINGS

1. The traditional goals and methods of creating artificial languages, in particular programming languages, should be considered largely obsolete.

2. Recent studies in the field of neurobiology, psychology, cognitive science and ergonomics have provided new and extremely valuable information about the work of the brain, which can and should be used to develop a new generation of languages \u200b\u200bin order to increase the productivity of the human brain.

3. At present, there is no well-thought-out strategy aimed at eliminating interdisciplinary barriers, aimed at equipping the developers of artificial languages \u200b\u200bof the new generation with deep knowledge in the field of human sciences, human factor and human intelligence. This disadvantage needs to be addressed as soon as possible.

4. The concept of artificial languages \u200b\u200bof the new generation is based on an interdisciplinary approach and fundamentally changes the traditional ideas about the purpose of artificial languages \u200b\u200band a set of priority requirements for them. Humanitarian issues and requirements are put at the forefront, which should be appropriately detailed.

Do you like the article? To share with friends: