Текущее время: Среда, 04 Август, 2021 19:24

Часовой пояс: UTC + 3 часа

Начать новую тему Ответить на тему  [ 1 сообщение ] 
Автор Сообщение
 Заголовок сообщения: DRAKON Editor in Linux Magazine
СообщениеДобавлено: Воскресенье, 03 Декабрь, 2017 21:45 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5214
Откуда: Москва
http://www.linux-magazine.com/Issues/20 ... /(language)/eng-US

http://www.linux-magazine.com/Issues/20 ... /(language)/eng-US

The Drakon homepage [10] gives you the impression that you can draw your application in the form of a flowchart, and then the Drakon editor exports the finished plan as source code in Java, C, C++, Python, and many other languages. However, Drakon is merely a visual specification language that lets developers sketch their program flows. Designed by employees of the Russian space program, it was intended to help in the design of missile control systems.

To help you draw the diagrams, the makers provide the Drakon editor, which also generates the source code. However, this only works if the editor finds the appropriate instructions in the desired programming language in the diagram elements (Figure 6).

Figure 6: The Drakon editor only generates source code if the developer has deposited the relevant instructions in the elements of the diagram.
Drakon therefore is not strictly a graphical programming language, and the editor is extremely cumbersome to operate. Developed in Tcl/Tk, this utility does not support a snap function: If you move an item, you thus need to connect all the lines manually. Documentation is available for Drakon only; users are forced to explore the editor on their own, but at least it is public domain.

1 2 3 Next »


The graphical programming language Lava [15] was created in 2001 at the Fraunhofer Institute [16] for secure information technology; now, other developers continue to maintain the project. Similar to Drakon, the programming language is Lava, whereas the development environment has the name Lava Programming Environment, or Lava PE for short. Its complete source code is available under the GPLv2.

The object-oriented Lava uses a slightly different approach than the previously mentioned graphical programming languages: To start, you use a wizard to create the classes you need in your program. Lava PE displays these in a hierarchy (Figure 9). Related classes can be combined to create packages, as in Java.

Figure 9: Lava PE displays the classes, methods, and properties in a hierarchy.
To implement the methods of the classes, you then need to change to the text editor. In the editor, you do not need to type in the source code manually; rather, you point and click to compose the instructions from various palettes. Lava PE automatically ensures that only syntactically correct statements are produced. For example, if you use the palette with the control structures to create a foreach loop, a wildcard appears in place of the termination condition and the loop body (Figure 10).

Figure 10: Lava uses placeholders to ensure syntactically correct statements.
You can then replace these placeholders by pointing and clicking again. Depending on the currently selected placeholder, the palettes and combo boxes only offer statements, variables, and objects that you can use in the current situation.

The development environment itself is a little awkward to use. The myriad of meaningless symbols is overkill and, in turn, complicates the work and wastes time. On the positive side, you have the benefit of object-oriented programming, which means you can derive classes and use a signal/slot concept similar to that in Qt. Additionally, Lava PE offers native functions for refactoring.

The finished program is run by an interpreter named Lava. Lava PE provides a debugger to set breakpoints. When this issue went to press, the current 0.9.4 version was only available as source code and required Qt 5.1.1, which in turn is only included in more recent distributions. Documentation is based on examples, which is not only incomplete but also well hidden on the website [17].

http://www.linux-magazine.com/Issues/20 ... ng/(offset)/6/(language)/eng-US
Visual programming languages


Thus far, graphical programming languages have only very restricted functionality. Like in a Lego set, they have fixed, predetermined parts with limited roles. Consequently, the tools and their languages are only suitable for very specific applications.

Etoys and Alice facilitate entry into (3D) programming, whereas Blockly serves as a macro language for your own web apps. The data flow diagrams from Tersus are useful if the web application you want to create primarily processes data – such as managing addresses or processing signals and images.

The limits of graphical programming languages are clearly shown by Lava: Although the language is flexible and powerful on a level similar to Java, developers are forced tediously to point and click to compose instructions. Drakon shows that not everything advertised as a visual programming language actually needs to be one.

Aside from Drakon and the interpreted Lava, the development environments do not produce finished programs. If you want to launch a game you have programmed in Alice, you need to register to download the development environment. Right now, visual programming languages might successfully occupy a niche, but developers can expect a long wait for their big break.

Glade: https://glade.gnome.org
Qt Designer: http://qt-project.org/doc/qt-5/qtdesigner-manual.html
UML: http://www.omg.org/spec/UML/
Etoys: http://www.squeakland.org
Scratch: http://scratch.mit.edu
Snap: http://snap.berkeley.edu
Alice: http://www.alice.org
Alice EULA: http://alice3.pbworks.com/w/page/28830524/Alice%203EULA
Blockly: https://code.google.com/p/blockly/
Drakon: http://drakon-editor.sourceforge.net
Tersus: http://www.tersus.com
GNU Radion Companion: http://gnuradio.org/redmine/projects/gn ... oCompanion
Pure Data: http://puredata.info
Blender: http://www.blender.org
Lava PE: http://lavape.sourceforge.net
Fraunhofer Institute: http://www.fraunhofer.de/en.html
Lava PE documentation: http://lavape.sourceforge.net/doc/index.htm


From another place
down vote

I don't know the answer related to Dia, but I suggest you to use DRAKON and particularly DRAKON Editor for making diagrams. DRAKON supports loops and many more. It can also generates code from diagrams. It supports visual programming in several programming languages, including Java, Processing.org, D, C#, C/C++ (with Qt support), Python, Tcl, Javascript, Lua and Erlang. Why to use DRAKON than other diagramming systems?

No line intersections. You will never find in DRAKON diagram two or more lines intersecting each other! Not seen in other diagramming systems!

Silhouette structure. It allows to break one diagram in to several logical parts. Not seen in other diagramming systems!

No slanting or curved lines. Only straight lines with right angles.
Icons are placed only on vertical lines.
Branching is done in a simple, visible and consistent way.
Each diagram has one entry and one exit.
DRAKON Editor homepage http://drakon-editor.sourceforge.net/

More about DRAKON here: http://en.wikipedia.org/wiki/DRAKON

Вернуться к началу
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ 1 сообщение ] 

Часовой пояс: UTC + 3 часа

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2008-2021, участники конференции «DRAKON.SU», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB