DRAKON + Oberon = DRON visual programming language



DRAKON (Russian: ДРАКОН, "dragon" — backronym for russian phrase "Дружелюбный Русский Алгоритмический язык, Который Обеспечивает Наглядность/Надёжность" and reads as Friendly Russian Algorythmic language That Guarantees Clarity/Reliability) is an algorithmic visual programming language developed for the Buran [1] space project. Its development, started in 1986, was directed by Vladimir Parondzhanov [2]. The goal was to replace specialised languages PROL2 (ПРОЛ2), DIPOL (ДИПОЛЬ) and LAKS (ЛАКС) used in the Buran project with one universal language.

The work was finished in 1998 (5 years after the Buran project was officially closed), when an automated CASE programming system called "Grafit-Floks" was developed.

After that it was used in Sea Launch and other space projects.

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

DRAKON editor

April 6, 2008 Gennadiy Tishov published on the forum [3] his first working variant of DRAKON editor (local copy stored here on the site).

DRAKON editor window


Vladimir Parondzhanov in his book [2] points to ability of translation DRAKON schemas to code on high level programming language directly. As result, the new language arises with procedural part from original language and graphical primitives as an flow control part. For example, Vladimir Parondzhanov mentioned DRAKON-C and DRAKON-Pascal languages.

April 8, 2008 Alexandr Il'in proposed on the forum [4] to use name DRON for possible DRAKON-Oberon language.

D2O (Deuterium Oxide) — DRON => Active Oberon translator.

I've made up my mind to design DRON languge and wrote down letter to Gennadiy Tishov asking them to open DRAKON editor's file format. And Gennadiy had sent me whole source code :)

At first I've made DRAKON schema to use it for translation to Active Oberon module.

Fact that task of direct DRON to Oberon translation with accordingly formed schema is possible becomed evident for me quickly.

Great bulk of schema's forming features concerns to declaration part that is absent in DRAKON.

As first decission comment block for describing declaration part has used, with differentiating sections of comments, imports, constants, types and variables. Section type detected by first token: (*, IMPORT, CONST, TYPE and VAR respectively.

Declaration part formed as comment block

Section's differentiating done because content of some sections needs to be modified on stage of code generation.

TYPE section contains types' declarations and objects' declarations (without procedural part).

Each schema consider as procedure in Oberon language. Additionally modules' bodies and objects' bodies consider as procedures.

For differentiating such schemas-procedures decission was made:

  • Modules' bodies considers as a schemas with word BEGIN in the header blocks
  • Objects' bodies considers as a schemas with procedures' names prefixed by corresponding objects' names e.g. Object.Proc1, Object.BEGIN
  • All other schemas considers as modules' procedures

Resulting DRON document has created:

DRON document for UDPChatServer application

There are two directions of control flow in DRON schemas currently allowed. Top to down and left to right. Except for simple cycles made in natural way.

Simple cycles

But flow control may be rather complex if construct Silhouette used.

Currently console application for translation of DRON schemas to Active Oberon modules is worked out.

DRON translator named D2O (Deuterium Oxide).

DRON translator and example DRON schemas supplied.

There are fresh versions of DRAKON editor exists [5] [6], but format of example schemas supplied with existing version of D2O is incompatible. Local copy of DRAKON editor placed here is compatible with example schemas.

Future work

Declaration part needs to be reworked. As possible varint — representation in tabular form.

Module declaration section represented in tabular form


[1] "Molniya" Research & Industrial Corporation.

[2] How to improve the work of your mind (Как улучшить работу ума), V. Parondzhanov.

[3] http://forum.oberoncore.ru/viewtopic.php?p=14323#p14323.

[4] http://forum.oberoncore.ru/viewtopic.php?p=14373#p14373.

[5] http://forum.oberoncore.ru/viewtopic.php?f=62&t=1075.

[6] http://forum.oberoncore.ru/viewtopic.php?f=62&t=1098.







93 KiB




301 KiB


Last update: 24-1-16 20:14:18


Copyright © 2005-2022 SAGE. All rights reserved.