Dijkstra search algorithm in DRAKON
Outer part of quicksort algorithm in DRAKON-C
A DRAKON diagram describing a transportation of a cryonics patient
Icons of DRAKON language
Macroicons of DRAKON language.
The core logic of the Tetris game in DRAKON-JavaScript language
The noProjectile function for Tetris game in DRAKON-JavaScript language
The algorithm that removes a line from Tetris grid in DRAKON-JavaScript language
DRAKON algorithm execution is animated by highlighting diagram elements in the running order.

Algorithmic visual programming and modeling language developed within the Buran space project following ergonomic design principles.


13 related topics



Type of diagram that represents a workflow or process.

A simple flowchart representing a process for dealing with a non-functioning lamp.
Flowchart of a C-style for loop

Nassi-Shneiderman diagrams and Drakon-charts are an alternative notation for process flow.

Modeling language

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.

Partial map of the Internet, with nodes representing IP addresses

DRAKON is a general-purpose algorithmic modeling language for specifying software-intensive systems, a schematic representation of an algorithm or a stepwise process, and a family of programming languages.


Algorithm is a finite sequence of rigorous instructions, typically used to solve a class of specific problems or to perform a computation.

Flowchart of an algorithm (Euclid's algorithm) for calculating the greatest common divisor (g.c.d.) of two numbers a and b in locations named A and B. The algorithm proceeds by successive subtractions in two loops: IF the test B ≥ A yields "yes" or "true" (more accurately, the number b in location B is greater than or equal to the number a in location A) THEN, the algorithm specifies B ← B − A (meaning the number b − a replaces the old b). Similarly, IF A > B, THEN A ← A − B. The process terminates when (the contents of) B is 0, yielding the g.c.d. in A. (Algorithm derived from Scott 2009:13; symbols and drawing style from Tausworthe 1977).
Ada Lovelace's diagram from "note G", the first published computer algorithm
Logical NAND algorithm implemented electronically in 7400 chip
Flowchart examples of the canonical Böhm-Jacopini structures: the SEQUENCE (rectangles descending the page), the WHILE-DO and the IF-THEN-ELSE. The three structures are made of the primitive conditional GOTO (IF test THEN GOTO step xxx, shown as diamond), the unconditional GOTO (rectangle), various assignment operators (rectangle), and HALT (rectangle). Nesting of these structures inside assignment-blocks result in complex diagrams (cf. Tausworthe 1977:100, 114).
The example-diagram of Euclid's algorithm from T.L. Heath (1908), with more detail added. Euclid does not go beyond a third measuring and gives no numerical examples. Nicomachus gives the example of 49 and 21: "I subtract the less from the greater; 28 is left; then again I subtract from this the same 21 (for this is possible); 7 is left; I subtract this from 21, 14 is left; from which I again subtract 7 (for this is possible); 7 is left, but 7 cannot be subtracted from 7." Heath comments that "The last phrase is curious, but the meaning of it is obvious enough, as also the meaning of the phrase about ending 'at one and the same number'."(Heath 1908:300).
A graphical expression of Euclid's algorithm to find the greatest common divisor for 1599 and 650.
"Inelegant" is a translation of Knuth's version of the algorithm with a subtraction-based remainder-loop replacing his use of division (or a "modulus" instruction). Derived from Knuth 1973:2–4. Depending on the two numbers "Inelegant" may compute the g.c.d. in fewer steps than "Elegant".
Alan Turing's statue at Bletchley Park

Algorithms can be expressed in many kinds of notation, including natural languages, pseudocode, flowcharts, drakon-charts, programming languages or control tables (processed by interpreters).

Buran programme

Soviet and later Russian reusable spacecraft project that began in 1974 at the Central Aerohydrodynamic Institute in Moscow and was formally suspended in 1993.

The Antonov An-225 Mriya carrying a Buran orbiter in 1989.
The Buran orbiter ranks among the world's first spaceplanes, with the North American X-15, the Space Shuttle, SpaceShipOne, and the Boeing X-37. Of these, only the Buran and X-37 spaceflights were uncrewed.
OK-GLI Buran aerodynamic analogue
The crew of Soyuz T-12 (Vladimir Dzhanibekov, Svetlana Savitskaya, and Igor Volk) on a stamp issued in 1985
Illustration of Buran and Energia at Site 110
Amusement rides and Buran test vehicle OK-TVA at Gorky Park in Moscow.
Comparison between Soyuz, Space Shuttle, and Energia-Buran
Comparison to Space Shuttle

Work on these languages continued beyond the end of the Buran programme, with PROL2 being extended into SIPROL, and eventually all three languages developed into DRAKON which is still in use in the Russian space industry.

Visual programming language

Any programming language that lets users create programs by manipulating program elements graphically rather than by specifying them textually.

A simple custom block in the Snap! visual programming language, which is based on Scratch, calculating the sum of all numbers between a and b

DRAKON, a graphical algorithmic language


Plain language description of the steps in an algorithm or another system.

Charles Babbage, sometimes referred to as the "father of computing".

Flowcharts, drakon-charts and Unified Modelling Language (UML) charts can be thought of as a graphical alternative to pseudocode, but need more space on paper.

List of programming languages by type

List of notable programming languages, grouped by type.

The source code for a simple computer program written in the C programming language. The gray lines are comments that help explain the program to humans in a natural language. When compiled and run, it will give the output "Hello, world!".



Symbolic representation of information using visualization techniques.

tree diagram
Network diagram
Venn diagram
Existential graph
Bar graph
Pie chart
Function graph
Scatter plot
Hanger diagram.
Time–distance diagram
Exploded view
Population density map
Pioneer plaque
Three-dimensional diagram


Graph drawing

Area of mathematics and computer science combining methods from geometric graph theory and information visualization to derive two-dimensional depictions of graphs arising from applications such as social network analysis, cartography, linguistics, and bioinformatics.

Graphic representation of a minute fraction of the WWW, demonstrating hyperlinks.
Directed graph with arrowheads showing edge directions
Planar graph drawn without overlapping edges
A force-based network visualization.
Arc diagram
A graph drawing interface (Gephi 0.9.1)

Flowcharts and drakon-charts, drawings in which the nodes represent the steps of an algorithm and the edges represent control flow between steps.


System of graphics or symbols, characters and abbreviated expressions, used in artistic and scientific disciplines to represent technical facts and quantities by convention.

Color-coding hot- and cold-water faucets (taps) is common in many cultures but, as this example shows, the coding may be rendered meaningless because of context. The two faucets (taps) probably were sold as a coded set, but the code is unusable (and ignored), as there is a single water supply.

Drakon-charts are a graphical notation of algorithms and procedural knowledge.