Drakon-chart
   HOME

TheInfoList



OR:

DRAKON is a
free and open source Free and open-source software (FOSS) is a term used to refer to groups of software consisting of both free software and open-source software where anyone is freely licensed to use, copy, study, and change the software in any way, and the source ...
algorithm In mathematics and computer science, an algorithm () is a finite sequence of rigorous instructions, typically used to solve a class of specific Computational problem, problems or to perform a computation. Algorithms are used as specificat ...
ic
visual programming In computing, a visual programming language (visual programming system, VPL, or, VPS) is any programming language that lets users create programs by manipulating program elements ''graphically'' rather than by specifying them ''textually''. A VP ...
and
modeling language A modeling language is any artificial language that can be used to express information or knowledge or systems in a structure that is defined by a consistent set of rules. The rules are used for interpretation of the meaning of components in th ...
developed within the Buran space project following
ergonomic Human factors and ergonomics (commonly referred to as human factors) is the application of psychological and physiological principles to the engineering and design of products, processes, and systems. Four primary goals of human factors learnin ...
design principles. The language provides a uniform way to represent flowcharts of any complexity that are easy to read and understand. The DRAKON Editor, which was released in September 2011, is an implementation of the language available in the public domain. It can be used for creating documentation, or for creating visual programs that can be converted to
source code In computing, source code, or simply code, is any collection of code, with or without comments, written using a human-readable programming language, usually as plain text. The source code of a program is specially designed to facilitate the wo ...
in other languages. Unlike
UML The Unified Modeling Language (UML) is a general-purpose, developmental modeling language in the field of software engineering that is intended to provide a standard way to visualize the design of a system. The creation of UML was originally m ...
's philosophy, DRAKON's language philosophy is based on being augmented if needed, by using a hybrid language, which can be illustrated as "incrustating code snippets from text language used into shape DRAKON requires". This way, DRAKON always remains a simple visual language that can be used as an augmentation for a programmer who is interested in making their own project code easier to support or other long-term needs for example improving the ergonomics of the coding process or to making code easier to review and understand. The name DRAKON is the Russian acronym for "Дружелюбный Русский Алгоритмический зык Который Обеспечивает Наглядность", which translates to "Friendly Russian algorithmic anguagethat illustrates (or provides clarity)". The word "наглядность" (pronounced approximately as "naa-glya-dno-st-th") refers to a concept or idea being easy to imagine and understand, and may be translated as "clarity". The DRAKON language can be used both as a modelling/"markup" language (which is considered a standalone "pure DRAKON" program) and as a programming language (as part of a hybrid language). Integration of a stricter, "academic", variant of a markup language into programming, such as provided by DRAKON, adds
syntactic sugar In computer science, syntactic sugar is syntax within a programming language that is designed to make things easier to read or to express. It makes the language "sweeter" for human use: things can be expressed more clearly, more concisely, or in an ...
allowing users of different programming languages to comprehend each other's contributions to the overall project and even provide commentary if needed.


History

The development of DRAKON started in 1986 to address the emerging risk of misunderstandings - and subsequent errors - between users of different programming languages in the Russian space program. Its development was directed by Vladimir Parondzhanov with the participation of the
Russian Federal Space Agency The State Space Corporation "Roscosmos" (russian: Государственная корпорация по космической деятельности «Роскосмос»), commonly known simply as Roscosmos (russian: Роскосмос) ...
(Academician Pilyugin Center, Moscow) and
Russian Academy of Sciences The Russian Academy of Sciences (RAS; russian: Росси́йская акаде́мия нау́к (РАН) ''Rossíyskaya akadémiya naúk'') consists of the national academy of Russia; a network of scientific research institutes from across t ...
(
Keldysh Institute of Applied Mathematics The Keldysh Institute of Applied Mathematics (russian: Институт прикладной математики им. М.В.Келдыша) is a research institute specializing in computational mathematics. It was established to solve computati ...
). The language was constructed by formalization, ergonomization and nonclassical structurization of flowcharts described in the
ISO ISO is the most common abbreviation for the International Organization for Standardization. ISO or Iso may also refer to: Business and finance * Iso (supermarket), a chain of Danish supermarkets incorporated into the SuperBest chain in 2007 * Iso ...
5807-85 standard and Russian standard «Гост 19.701-90».Окулова Л. П. Проектирование образовательного процесса в соответствии с требованиями педагогической эргономики // Вестник. Наука и практика. Материалы конференции «Инновации и научные исследования, а также их применение на практике \ Innowacje i badania naukowe, jak rowniez ich zastosowanie w praktyce. — 29.05.2012- 31.05.2012. Варшава \ Warszaw».
/ref> The goal was to replace specialized languages used in the Buran project with one universal
programming language A programming language is a system of notation for writing computer programs. Most programming languages are text-based formal languages, but they may also be graphical. They are a kind of computer language. The description of a programming ...
. Namely PROL2 (ПРОЛ2), used for developing inflight systems software for the computer system Biser-4 (Бисер-4),Штурманы ракет / Под общей редакцией Е. Л. Межирицкого. — М.: БЛОК-Информ-Экспресс, 2008. — 384 с. — C. 192. — DIPOL (ДИПОЛЬ), used for developing software for the ground maintenance computer systems) and LAKS (ЛАКС), used for modelling. The work was finished in 1996 (3 years after the Buran project was officially closed), when an automated CASE programming system called "Grafit-Floks" was developed. This CASE is used since 1996 in: an international project
Sea Launch Sea Launch was a multinational—Norway, Russia, Ukraine, United States—spacecraft launch company founded in 1995 that provided orbital launch services from 1999–2014. The company used a mobile maritime launch platform for equatorial lau ...
, Russian
orbit insertion Orbit insertion is the spaceflight operation of adjusting a spacecraft’s momentum, in particular to allow for entry into a stable orbit around a planet, moon, or other celestial body. This maneuver involves either deceleration from a speed in exc ...
upper stage
Fregat Fregat (russian: Фрегат, ''frigate'') is an upper stage developed by NPO Lavochkin in the 1990s, which is used in some Soyuz and Zenit launch vehicles, but is universal and can be used as a part of a medium and heavy class launch vehic ...
(Russian: Фрегат, frigate) for onboard control systems and tests, upgraded heavy
launch vehicle A launch vehicle or carrier rocket is a rocket designed to carry a payload (spacecraft or satellites) from the Earth's surface to outer space. Most launch vehicles operate from a launch pad, launch pads, supported by a missile launch contro ...
(carrier rocket)
Proton-M The Proton-M, (Протон-М) GRAU index 8K82M or , is an expendable Russian heavy-lift launch vehicle derived from the Soviet-developed Proton. It is built by Khrunichev, and launched from sites 81 and 200 at the Baikonur Cosmodrome in Ka ...
.


Family of DRAKON languages

DRAKON (russian: ДРАКОН; meaning "
dragon A dragon is a reptilian legendary creature that appears in the folklore of many cultures worldwide. Beliefs about dragons vary considerably through regions, but dragons in western cultures since the High Middle Ages have often been depicted as ...
" in English) is designed with the intent of allowing for easy understanding and legibility, as usage of multiple languages in a single project can lead to confusion. DRAKON is a family of hybrid languages, such as DRAKON-C, DRAKON-ASM, DRAKON-Java, etc. All languages of the DRAKON-family share a uniform, graphical syntax based on flowcharts. The standard graphical syntax provides similarity of drakon-charts for different hybrid languages. The text language uses its own syntax. The basis of the graphical syntax is a graphical alphabet. Graphical elements ("letters") of the DRAKON alphabet are called ''icons'' (not symbols). DRAKON also has ''macroicons''. Macroicons are the graphical words of the DRAKON language; they consist of icons. There are 27 icons and 21 macroicons in the DRAKON language. Drakon-charts are constructed out of icons and macroicons. The important parts of maсroiсons are valence points (in the illustration depicted as black circles). Into these points, icons or microicons can be successively entered and arranged by the drakon-editor into columns.


Design

DRAKON was created as an easy to learn visual language to aid the comprehension of computer programs written in different programming languages for illustrative, planning and strategy purposes. DRAKON uses drakon-chart, which is a formalization of traditional flowcharts to depict the overall structure of the program. Code snippets of a programming language are added to the DRAKON icons. The combination of visual elements with code helps with the creation and maintenance of readable flowcharts alongside the development of the program in question. DRAKON rules for creating diagrams are cognitively optimized for easy comprehension, making it a tool for
intelligence augmentation Intelligence amplification (IA) (also referred to as cognitive augmentation, machine augmented intelligence and enhanced intelligence) refers to the effective use of information technology in augmenting human intelligence. The idea was first pro ...
. вузов". ''Учись писать, читать и понимать алгоритмы. Алгоритмы для правильного мышления. Основы алгоритмизации''. М.: ДМК Пресс. p. 520. . Drakon-charts of big multi-purpose programs can be complex and hard to comprehend. A set of smaller programs, that together serve the same purpose, are often easier to understand when depicted as drakon-charts. A similar problem exists in maintaining code of large programs. This problem is occasionally referred to as "rule of 30 ines of code among programmers.


Visual syntax

The full-text article containing description of the visual syntax of the DRAKON language in English, 12 pages, free to download, pdf.


Examples


Tetris example

Simple example of a program in the DRAKON language These examples are real code from an implementation of the
Tetris ''Tetris'' (russian: link=no, Тетрис) is a puzzle video game created by Soviet software engineer Alexey Pajitnov in 1984. It has been published by several companies for multiple platforms, most prominently during a dispute over the approp ...
game. The examples are in DRAKON-JavaScript language. The icons (visual primitives) of the DRAKON language define the overall structure of the algorithms. The code snippets inside the icons (primitives) are in JavaScript.


advanceStep

The ''advanceStep'' function implements the core logic of the game. ''advanceStep'' is a state machine represented as a
decision tree A decision tree is a decision support tool that uses a tree-like model of decisions and their possible consequences, including chance event outcomes, resource costs, and utility. It is one way to display an algorithm that only contains condit ...
. The game engine calls ''advanceStep'' periodically. This state machine has three states "playing", "dropping", and "finished". The game takes different actions depending on the current state. For example, in the "playing" state, when there is a falling projectile and the projectile can move down, it is moved down one step. With DRAKON, the reader of the algorithm can visually trace all possible paths in the decision tree.


noProjectile

The ''noProjectile'' function handles the specific situation when there is no falling projectile. If there is a filled row, that row is removed from the grid. Otherwise, the game tries to insert a new projectile. If there is no space for the projectile, the game is lost.


clearRow

The ''clearRow'' function scans all rows bottom-up until it hits a row with no gaps. In such case the row is removed from the grid, the score is increased, and the game's tempo goes up.


DRAKON execution animation

The picture below illustrated the execution of the silhouette DRAKON algorithm. The algorithm execution is animated by highlighting diagram elements in the running order. The 'Fishing' silhouette consists of four trees: * Preparing for fishing. * Waiting for a bite. * Fishing work. * Way back. The main path of each tree is shown by highlighting thick vertical line which is called a ''skewer.'' The flow graph always has a path from the Headline icon to each vertex (node) of the control flow graph. Consequently, a silhouette can't have unreachable code in any conditions.


Modern usage


DRAKON in the German Aerospace Center

DRAKON language is used in the
German Aerospace Center The German Aerospace Center (german: Deutsches Zentrum für Luft- und Raumfahrt e.V., abbreviated DLR, literally ''German Center for Air- and Space-flight'') is the national center for aerospace, energy and transportation research of Germany ...
for implementation of some critical functions dictated by the safety regulations of the flight tests, where automation is important because of maximum distance to the ground station and the process needs quick automatic execution. The DRAKON Editor software was used to graphically program flowcharts which were specially checked. C-code was generated from the drakon-charts, for instance, for DRAKON representation of launch detection code.


Uses outside of programming

While DRAKON is primarily designed as a tool for comprehending computer programs, drakon-charts can also be used to illustrate processes in fields not related to computing. In the DRAKON editor pictures can be added to the DRAKON icons. This ability is used in some fields to easily create "flowchart like"
infographics Infographics (a clipped compound of "information" and "graphics") are graphic visual representations of information, data, or knowledge intended to present information quickly and clearly.Doug Newsom and Jim Haynes (2004). ''Public Relations Wri ...
. In Russia the DRAKON editor is known for being used in the medical field as a tool for making 'instructional' charts for patients or medical personnel.Example of medical program for reducing body fat (in Russian)
/ref>


References


Sources

* V. Parondzhanov. ''How to improve the work of your mind. Algorithms without programmers - it's very simple!''
Как улучшить работу ума. Алгоритмы без программистов - это очень просто! М.: Дело, 2001. - 360с.
* S. Mitkin
DRAKON: The Human Revolution in Understanding Programs


External links


About the DRAKON language in English

Russian DRAKON website

Russian DRAKON webforum

History of DRAKON

DRAKON + Oberon = DRON visual programming language

DRAKON + Oberon = DRON visual programming language
{{in lang, ru
DRAKON Editor
for Windows, Mac and Linux.
Drakon.Tech
an online IDE based on DRAKON. Visual programming languages Buran program Computing in the Soviet Union Diagramming software Modeling languages