Journal "Software Engineering"
a journal on theoretical and applied science and technology
ISSN 2220-3397

Issue N1 2019 year

DOI: 10.17587/prin.10.3-13
Automata-Based Programming in DRAKON Language
S. Mitkin, Consultant, stipan.mitkin@gmail.com, ProsessPilotene AS, Asker, 1383, Norway
Corresponding author: Mitkin Stepan, Consultant, ProsessPilotene AS, Asker, 1383, Norway, E-mail: stipan.mitkin@gmail.com
Received on September 09, 2018
Accepted on October 23, 2018

A new method for visualization of finite automata (state machines) is proposed. This method combines automata with decision trees using the DRAKON algorithmic language. DRAKON has visual branching and looping constructs that correspond to the building blocks of structured programming: if/then/else, switch/case, while/for. DRAKONs branching constructs follow strict ergonomic guidelines that help one build consistent and readable decision trees. Another feature of DRAKON is "silhouette" diagrams. A silhouette splits a large algorithm into smaller parts which are called "branches." In the proposed method, the branches of a silhouette designate the states of an automaton. Each branch has all the information on the corresponding state including its name, the state-specific input symbols, the names of the next states. The branch also contains decision trees that represent the input symbol processing algorithms and state-switching logic. This kind of state machine diagrams is suitable for programming—the author has built a software tool that generates working programs from automata diagrams based on DRAKON. The presence of decision trees on state machine diagrams produces several positive effects, such as a higher expression power and better readability of automata. Besides, the DRAKON language brings a standardized layout that makes diagrams predictable and easy to comprehend. These benefits together make automata more comfortable to work with and reduce the number of errors. As a result, automata-based programming becomes more practical and productive.

Keywords: automata-based programming, finite automaton, state machine, DRAKON language, event-driven system, visual programming, decision tree, software system behavior, state diagram
pp. 3–13
For citation:
Mitkin S. Automata-Based Programming in DRAKON Language, Programmnaya Ingeneria, 2019, vol. 10, no. 1,pp. 3—13