Kalpana Kalpana (Editor)


Updated on
Share on FacebookTweet on TwitterShare on LinkedInShare on Reddit
DRAKON httpsuploadwikimediaorgwikipediacommonsthu

Stepan mitkin visual functional programming with drakon erlang erlang user conference 2015

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.

Drakon visual language tutorial set to synchronized kevin macleod music at 160 bpm 80 bpm


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.

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), DIPOL (ДИПОЛЬ) (assigned for developing software for ground maintenance computer system of Buran) 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.

This CASE is used since 1996 in many major space programs: an international project Sea Launch, Russian orbit insertion upper stage Fregat (Russian: Фрегат, frigate), upgraded heavy launch vehicle (carrier rocket) Proton-M, etc.

DRAKON rules for creating diagrams are cognitively optimized for easy comprehension, making it a tool for intelligence augmentation.

Family of DRAKON-languages

DRAKON (Russian: ДРАКОН) is a backronym for Дружелюбный Русский Алгоритмический язык, Который Обеспечивает Наглядность, which stands for "friendly Russian algorithmic language that provides clarity."

DRAKON is not a single language but a family of hybrid languages, such as DRAKON-C, DRAKON-Java, etc. All hybrid languages of the drakon-family have the uniform graphical syntax and differ in textual one. The standard graphical syntax provides visual similarity of drakon-charts of different hybrid languages. Every hybrid language of the family has its own textual 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 Editor is software for making DRAKON flowcharts. 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.


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". 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:

  • AutoHotKey
  • C
  • C++
  • C#
  • D
  • Erlang
  • Go
  • Java
  • JavaScript
  • Lua
  • Processing
  • Python
  • Tcl
  • Verilog
  • For some programming languages, DRAKON Editor generates source code for ERIL data modeling language.

    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.


    DRAKON Wikipedia