Jump to content

DRAKON

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by 178.215.105.1 (talk) at 01:16, 9 August 2017 (Removed "runglish"-like explanations, brought better vocabulary in the section.). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

A DRAKON-C diagram that generates the Fibonacci sequence.
A DRAKON-C diagram that implements the quicksort algorithm.
The DRAKON chart of the A* search algorithm.
A DRAKON diagram describing a transportation of a cryonics patient

DRAKON is an algorithmic visual programming language developed within the Buran space project following ergonomic 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 other languages.

Unlike UML's philosophy, DRAKON 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 stays an all-way simple visual language per se, that can be used as an augmentation for a programmer, who is interested in making own project code easier for support or other long-term needs, i.e. improving ergonomics of coding process or to make code easy to review and understand.

Name DRAKON is Russian acronym for "Дружелюбный Русский Алгоритмический [язык], Который Обеспечивает Наглядность", which translates"Friendly Russian algorithmic [language] that provides illustrativeness (or clarity)".

The word "наглядность" (pronounced approximately as "naa-glya-dno-st-th") refers to a quality of concept or idea being easy to imagine and understand, and may be translated as "clarity" as well.

It is to note, that DRAKON language can be used both as modelling\"markup" language (which is considered a standalone "pure DRAKON" program making) and as programming language (as part of a hybrid language). Integration of stricter, "academic" variant of a markup language into programming, which any DRAKON-(programming language used) provides, supposedly (as intended by initial philosophy of DRAKON development) adds syntactic sugar to such extent users of different text programming language can comprehend each others input into the overall project and criticize it upon necessity.

History

The development of DRAKON started in 1986 and was directed by Vladimir Parondzhanov with the participation of Russian Federal Space Agency (Academician Pilyugin Center, Moscow) and Russian Academy of Sciences (Keldysh Institute of Applied Mathematics). The language was constructed by formalization, ergonomization and nonclassical structurization of flowcharts described in the ISO 5807-85 standard and Russian standard «Гост 19.701-90» and for the development of real time programs.[1][2]

The goal was to replace specialised languages PROL2 (ПРОЛ2) (assigned for developing onboard complex software for embedded computer system Biser-4 (Бисер-4) on board of Buran),[3] DIPOL (ДИПОЛЬ) (assigned for developing software for ground maintenance computer system of Buran)[3] and LAKS (ЛАКС) (assigned for modelling) used in the Buran project with one universal programming language.

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.[4]

This CASE is used since 1996 in many major space programs: an international project Sea Launch, Russian orbit insertion upper stage Fregat (Russian: Фрегат, frigate),[5] upgraded heavy launch vehicle (carrier rocket) Proton-M, etc. The exact role DRAKON played in these projects however can not be determined. The actual real-world experience of building systems with DRAKON remains extremely scarce as only a few very short snippets of code are publicly available.

DRAKON rules for creating diagrams are cognitively optimized for easy comprehension, making it a tool for intelligence augmentation.[1][6][7][8]

Family of DRAKON-languages (hybrid languages)

Icons of DRAKON language
Macroicons of DRAKON language.

DRAKON (Russian: ДРАКОН) is designed with humanistic ideas in mind, as usage of three different languages for the same project was a source of human factor-related hardships such risks of having a mutual misunderstanding.

DRAKON is used not as a single stand-alone language but as a family of hybrid languages, such as DRAKON-C, DRAKON-ASM, DRAKON-Java, etc. All hybrid languages of the DRAKON-family have the uniform graphical syntax, based on flowcharts. The standard graphical syntax provides similarity of drakon-charts for different hybrid languages. The text language used uses its own syntax.

Strict distinction of the graphical and textual syntax along with rich graphics improves flexibility and variety of expressive means of the language. The unification of the rules of the graphical syntax in the hybrid languages secures their conceptual unity.

The basis of the graphical syntax is a graphical alphabet. Graphical elements (graphical letters) of the DRAKON alphabet are called icons (not symbols). There are 27 icons in the DRAKON graphical alphabet.

DRAKON has not only icons, but also macroicons. Macroicons are the graphical words of the DRAKON language. Just as words are made up of letters, macroiсons (graphical words) consist of the icons (graphical letters). There are 21 macroicons in the DRAKON language.

Icons and macroiсons are the building blocks for constructing drakon-charts.

The important parts of maсroiсons are valence points (in the illustration to the right, they are depicted as little black circles). Into these points, icons or microicons can be successively entered and arranged by drakon-editor in neat, orderly vertical rows.

DRAKON's design

DRAKON was created as a language with a set of rules that would allow to depict algorithms in fields, not necessarily related to computing, being easy to learn.

  • The main reason to the development of the language was emerging risk of misunderstanding, and following errors upon interaction between users of different programming languages in same project (namely, DIPOL, LAX and PROL2, used in 1980's in Russian space program development).

DRAKON initially uses drakon-chart, which is initially based on a formalization of a traditional flowchart yet with additional functionality for handling code in text language. This technique allows to produce and keep readable flowchart at hand simultaneously with process of making the program in question.

  • It is to note a large multi-purpose program with too large drakon-chart may be harder to be comprehended that a set of small programs that serve same purposes separately; similar problem of maintaining code of a single large program is occasionally referred to as "rule of 30 [lines of code]" among programmers.

Purposes

While DRAKON is designed to be a tool that allows to comprehend purposes of programs in different programming languages, for illustrative, planning and strategy purposes (mirrored to Perl programming language's primary function). Drakoncharts can also be made in spoken language with same tools. Example of medical program on reducing body fat (not translated).

"DRAKON editor" is popular in Russia for being used as a tool for making 'charts without programming language syntax in the medicine field in Russia as a markup language for algorthyms of performig actions in certain cases and scenarios. DRAKON allows both create a map-like guide for patients and form instructions for medical personnel.

DRAKON editor takes infographics and flowchart together in a some way: for some purposes DRAKON icons can be augmented a photo inside an icon (which will be placed under icon's text).

Examples

Branching

In DRAKON, the less desirable path goes to the right.

The algorithm of going out of one's apartment:

  • Get dressed.
  • Take umbrella if it's raining.
  • Leave apartment.

Check-do (while) loop

First, check the exit condition. Then perform the action.

The algorithm of eating lunch:

  • If you are still hungry, eat a hamburger.
  • If you are already full, quit.
  • Repeat.

Do-check (do-while) loop

First, perform the action. Then check the exit condition

The algorithm of working out:

  • Lift the weight.
  • If tired, quit.
  • Repeat.

DRAKON Editor

DRAKON Editor is software for making DRAKON flowcharts.[9] It is used for two purposes: documenting algorithms and programming. DRAKON Editor is written in Tcl/Tk and runs on Windows, OS X and Linux. As a documentation tool, DRAKON Editor helps create diagrams that capture algorithmic knowledge. Such knowledge covers both behaviour of computer systems and procedures not directly related to computers, for example medical algorithms and business processes. DRAKON Editor can generate source code from diagrams. This way, DRAKON Editor can be used as an IDE.

Features

The process of editing in DRAKON Editor is based on free drawing. The user inserts and manipulates primitive shapes such as rectangles, vertical and horizontal lines. The user experience is similar to that of business drawing tools. DRAKON Editor does not prevent the user from violating the rules of DRAKON language. It is possible, however, to perform an automated check of the visual syntax at any time.

DRAKON Editor has an alternative editing algorithm, called "smart mode".[10] When in the smart mode, the user can change the visual appearance of the diagram without breaking its topology. In other words, the smart mode allows to fine-tune the layout of the diagram while keeping the underlying algorithm intact.

DRAKON Editor supports the following programming languages:

For some programming languages, DRAKON Editor generates source code for ERIL data modeling language.[11]

DRAKON Editor can also generate source code for finite state machines represented with the silhouette construct of DRAKON language.

For Erlang, DRAKON Editor generates boilerplate code from a visual representation of a supervision tree.

Thanks to the nature of the free drawing principle, DRAKON Editor can produce other types of diagrams including class diagrams and sequence diagrams.

Notes

  1. ^ a b Окулова Л. П. Проектирование образовательного процесса в соответствии с требованиями педагогической эргономики // Вестник. Наука и практика. Материалы конференции «Инновации и научные исследования, а также их применение на практике \ Innowacje i badania naukowe, jak rowniez ich zastosowanie w praktyce. — 29.05.2012- 31.05.2012. Варшава \ Warszaw».
  2. ^ Parondzhanov V. D. Visual Syntax of the DRAGON Language // Programming and Computer Software, 01 / 1995; Volume 21 (Issue 3): p. 142 - 153. (Here is an incorrect translation. This should be read as "DRAKON language.")
  3. ^ a b Штурманы ракет / Под общей редакцией Е. Л. Межирицкого. — М.: БЛОК-Информ-Экспресс, 2008. — 384 с. — C. 192. — ISBN 978-5-93735-008-4
  4. ^ Technique of development of algorithms and programms "Grafit-Floks."
  5. ^ Морозов В.В., Трунов Ю.В., Комиссаров А.И., Пак Е.А., Жучков А.Г., Дишель В.Д., Залихина Е.Е., Паронджанов В.Д. Система управления межорбитального космического буксира «Фрегат» // Вестник НПО имени С.А. Лавочкина: Космонавтика и ракетостроение. — 2014, №1 (22). — С. 16–25. (In Russian) Morozov V.V., Trunov Yu.V., Komissarov A.I., Pak E.A., Zhuchkov A.G., Dishel V.D., Zalihina E.E., Parondzhanov V.D. Control System of “Fregat” Versatile Space Tug // Vestnik NPO imeni S.A. Lavochkina. Cosmonautics and Rocket Engineering — 2014, 1 (22). — P. 16–25.
  6. ^ Bezel Ja. V. Is it possible to improve the workings of the mind? A new look at the problem.— Herald of the Russian Academy of Sciences. Volume 73, Issue 4, 2003.
  7. ^ Созоров Н. Г., Трошин М. В. Дракон-редактор как основное звено в формализации целевых дидактических ресурсов для проектирования интерактивного учебного курса. Материалы региональной научно-методической конференции ИДНО Томского политехнического университета «Электронные дидактические материалы в инженерном образовании» 11-12 октября 2009 г.
  8. ^ Паронджанов В. Д. (2012). "Учебное пособие по языку ДРАКОН для вузов". Учись писать, читать и понимать алгоритмы. Алгоритмы для правильного мышления. Основы алгоритмизации. М.: ДМК Пресс. p. 520. ISBN 978-5-94074-800-7.
  9. ^ "DRAKON Editor". drakon-editor.sourceforge.net. Retrieved 2016-10-04.
  10. ^ "Smart editing mode in DRAKON Editor". drakon-editor.sourceforge.net. Retrieved 2016-10-04.
  11. ^ "The ERIL Language". drakon-editor.sourceforge.net. Retrieved 2016-10-04.

References

External links