DRAKON
Paradigma | Visuell |
---|---|
Erstmals erschienen | 1996 |
Webseite | Drakon-Editor |
Haupt Implementierungen | |
Grafit-Floks (1996), IS Drakon (2008), Drakon Editor (2011), Drakonhub (2018), Drakon.tech (2019) | |
Beeinflusst von | |
Prol2, dipol, laks | |
Beeinflusst | |
Qreal DSM -Plattform[1] |
Drakon ist ein Algorithmisch visuelle Programmierung und Modellierungssprache entwickelt innerhalb der Buran -Weltraumprojekt folgen ergonomisch Design-Prinzipien. Die Sprache bietet eine einheitliche Möglichkeit, darzustellen Flussdiagramme von jeder Komplexität, die leicht zu lesen und zu verstehen ist.
Der Name Drakon ist das russische Akronym für "држелюбный р & р р & р р лгочческий [язык], который о беспeicht Das Wort "нагядность" (ungefähr als "Naa-Glya-dno-st-th" ausgesprochen) bezieht sich auf ein Konzept oder eine Idee, die sich leicht vorstellen und verstehen kann und kann als "Klarheit" übersetzt werden.
Die Drakon -Sprache kann sowohl als Modellierung/"Markup" -Programm (das als eigenständiges "reines Drakon" -Programm als auch als Programmiersprache (als Teil einer hybriden Sprache) verwendet werden.
Integration eines strengeren, "akademischen" Varianten einer Markup -Sprache in Programmierung, wie sie von Drakon bereitgestellt werden, fügt hinzu syntethischer Zucker Ermöglichen von Benutzern verschiedener Programmiersprachen, die Beiträge anderer leicht zu verstehen und bei Bedarf Kommentare abzugeben.
Geschichte
Die Entwicklung von Drakon begann 1986, um das langjährige Risiko von Missverständnissen in großen Projekten zu beheben, die von der entwickelt wurden Sowjetisches Weltraumprogramm, insbesondere wenn mehrere Programmiersprachen verwendet werden. Seine Entwicklung wurde von Vladimir Parondzhanov unter der späteren Beteiligung der Russische Bundesraumagentur (Akademiemitglied Pilyugin Mitte, Moskau) und Russische Akademie der Wissenschaften (Keldysh -Institut für angewandte Mathematik).
Die Sprache wurde durch Formalisierung, Ergonomisierung und nichtklassische Strukturierung von konstruiert Flussdiagramme beschrieben in der ISO 5807-85 Standard und russischer Standard «гост 19.701-90».[2][3]
Das Ziel war es, spezialisierte Sprachen zu ersetzen, die in der verwendet wurden Buran Projekt mit einem universellen Projekt Programmiersprache. Nämlich Prol2 (прол2), verwendet zur Entwicklung von Inflight Systems-Software für das Computersystem BISER-4 (бисер-4),[4] Dipol (дamentina), verwendet zur Entwicklung von Software für die Bodenwartungscomputersysteme)[4] und Laks (лакс), verwendet zur Modellierung.
Die Arbeiten wurden 1996 abgeschlossen (3 Jahre nach offiziellem Buran -Projekt), als ein automatisiert FALL Das Programmiersystem namens "Grafit-Floks" wurde entwickelt.[5]
Dieser Fall wird seit 1996 verwendet in: Ein internationales Projekt Seestart, Russisch Orbit -Einfügung Oberstufe Fregat (Russisch: фрегат, Fregatte) für Onboard -Steuerungssysteme und Tests,[6] aufgerüstet Startfahrzeug (Trägerrakete) Proton-m.
Familie der Drakon -Sprachen
Drakon (Russisch: ДРАКОН; Drachen in englischer Sprache) ist mit der Absicht entwickelt, ein leichtes Verständnis und die Lesbarkeit zu ermöglichen, da die Verwendung mehrerer Sprachen in einem einzigen Projekt zu Verwirrung führen kann.
Drakon ist eine Familie von hybriden Sprachen wie Drakon-C, Drakon-Assim, Drakon-Java usw. Alle Sprachen der Drakon-Familie haben eine einheitliche grafische Syntax, die auf Flussdiagrammen basiert. Die Standardgrafiksyntax bietet Ähnlichkeit von Drakon-Charts für verschiedene Hybridsprachen. Die Textsprache verwendet eine eigene Syntax.
Die Grundlage der grafischen Syntax ist ein grafisches Alphabet. Grafische Elemente ("Buchstaben") des Drakon -Alphabets werden genannt Ikonen (keine Symbole). Drakon hat auch Makroicons. Makroicons sind die grafischen Worte der Drakon -Sprache, sie bestehen aus Ikonen. Es gibt 27 Ikonen und 21 Makroicons in der Drakon -Sprache.
Drakon-Charts werden aus Ikonen und Makroicons gebaut.
Die wichtigen Teile von Maure sind Valenzpunkte (in der Abbildung als schwarze Kreise). In diese Punkte können Ikonen oder Mikroicons nacheinander von Drakon-Editor in vertikale Reihen eingegeben und angeordnet werden.
Entwurf
Drakon wurde als visuelle Sprache erstellt, um das Verständnis von Computerprogrammen in verschiedenen Programmiersprachen zu unterstützen, um den Fluss und den Zweck eines Programms schnell zu verstehen.
Drakon verwendet Drakon-Chart, ein Flussdiagramm, der verwendet wird, um die Gesamtstruktur des Programms darzustellen. Code -Ausschnitten einer Programmiersprache werden den Diagrammen hinzugefügt.
Drakon -Regeln für die Erstellung von Diagrammen sind kognitiv optimiert, um ein einfaches Verständnis Intelligenzvergrößerung.[2][7][8][9]
Drakon-Charts großer Mehrzweckprogramme können schwer zu befolgen oder zu verstehen sein. Eine Reihe kleinerer Programme, die zusammen den gleichen Zweck erfüllen, sind oft einfacher zu verstehen.
Visuelle Syntax
Der Volltextartikel mit Beschreibung der visuellen Syntax der Drakon-Sprache in englischer Sprache, 12 Seiten, kostenlos zum Download, PDF.[3]
Beispiele
Tetris Beispiel
Einfaches Beispiel für ein Programm in der Drakon -Sprache
Diese Beispiele sind echter Code aus einer Implementierung der Tetris Spiel. Die Beispiele sind in der Drakon-JavaScript-Sprache. Die Ikonen (visuelle Primitive) der Drakon -Sprache definieren die Gesamtstruktur der Algorithmen. Die Codeausschnitte in den Symbolen (Primitiven) befinden sich in JavaScript.
Advancestep
Das Advancestep Funktion implementiert die Kernlogik des Spiels. Advancestep ist ein Zustandsmaschine dargestellt als a Entscheidungsbaum.[10] Die Game Engine ruft an Advancestep regelmäßig. Diese Staatsmaschine hat drei Staaten "Spielen", "fallen" und "fertig". Das Spiel nimmt je nach dem aktuellen Zustand unterschiedliche Aktionen aus. Zum Beispiel wird im "Spielen" -Statel, wenn es ein fallendes Projektil gibt und sich das Projektil nach unten bewegen kann, einen Schritt nach unten verschoben.
Mit Drakon kann der Leser des Algorithmus alle möglichen Wege im Entscheidungsbaum visuell verfolgen.
JavaScript-Code, der aus dem Drakon-Chart generiert wurde: Funktion Advancestep() { var _sw_8; _sw_8 = Modul.Zustand; wenn (_sw_8 === "Spielen") { wenn (Modul.Projektil) { wenn (Canmovedown()) { sich abwärts bewegen() Rückkehr GetStepperiod() } anders { Freezeprojektil() Rückkehr Noprojectile() } } anders { Rückkehr Noprojectile() } } anders { wenn (_sw_8 === "fallen") { wenn (Canmovedown()) { sich abwärts bewegen() Rückkehr Tropfen } anders { Freezeprojektil() Modul.Zustand = "Spielen" Rückkehr GetStepperiod() } } anders { wenn (_sw_8 === "fertig") { } anders { Wurf Neu Fehler("Unerwarteter Auswahlwert:" + _sw_8); } Rückkehr nicht definiert } } } |
Noprojectile
Das Noprojectile Funktion übernimmt die spezifische Situation, wenn kein fallendes Projektil vorhanden ist. Wenn es eine gefüllte Reihe gibt, wird diese Reihe aus dem Netz entfernt. Andernfalls versucht das Spiel, ein neues Projektil einzufügen. Wenn es keinen Platz für das Projektil gibt, geht das Spiel verloren.
JavaScript-Code, der aus dem Drakon-Chart generiert wurde: Funktion Noprojectile() { wenn (Clearrow()) { Rückkehr GetStepperiod() } anders { CreateProjectile() wenn (Isgamelost()) { Spiel ist aus() Modul.Zustand = "fertig" Rückkehr nicht definiert } anders { Rückkehr GetStepperiod() } } } |
Clearrow
Das Clearrow Die Funktion scannt alle Zeilen nach unten, bis sie eine Zeile ohne Lücken trifft. In diesem Fall wird die Reihe aus dem Raster entfernt, die Punktzahl wird erhöht und das Tempo des Spiels steigt.
JavaScript-Code, der aus dem Drakon-Chart generiert wurde: Funktion Clearrow() { var die Zeile, Reihen; Reihen = Modul.Glas.Reihen die Zeile = Reihen.Länge - 1; während (Stimmt) { wenn (die Zeile > = 0) { wenn (RowHasholen(die Zeile)) { die Zeile--; } anders { Zeile löschen(die Zeile) Erhöhung() Geschwindigkeit erhöhen() Rückkehr Stimmt } } anders { Modul.hinzugefügt = 0 Rückkehr FALSCH } } } |
Drakon Execution Animation
Das Bild unten illustrierte die Ausführung des Silhouette Drakon -Algorithmus. Die Algorithmusausführung wird durch Hervorheben von Diagrammelementen in der laufenden Reihenfolge animiert.
Die 'Fischerei' Silhouette besteht aus vier Bäumen:
- Vorbereitung auf das Fischen.
- Warten auf einen Bissen.
- Angelarbeit.
- Weg zurück.
Der Hauptweg jedes Baumes wird durch Hervorhebung einer dicken vertikalen Linie gezeigt, die als a genannt wird Spieß.
Das Flussdiagramm hat immer einen Pfad vom Überschriftsymbol zu jedem Scheitelpunkt (Knoten) des Steuerflussdiagramms. Infolgedessen kann eine Silhouette unter keinen Bedingungen keinen nicht erreichbaren Code haben.
Moderne Verwendung
Drakon im deutschen Luft- und Raumfahrtzentrum
Drakon -Sprache wird in der verwendet Deutsches Zentrum für Luft-und Raumfahrt Für die Umsetzung einiger kritischer Funktionen, die durch die Sicherheitsvorschriften der Flugtests bestimmt werden, ist die Automatisierung aufgrund der maximalen Entfernung zur Bodenstation und der Prozesse eine schnelle automatische Ausführung erforderlich.
Die Drakon -Editor -Software wurde verwendet, um das speziell überprüfte Programm von Flussdiagrammen grafisch zu programmieren. C-Code wurde beispielsweise aus den Drakon-Charts für Drakon-Darstellung des Starterkennungscode erzeugt.[11]
Verweise
- ^ Terekhov, Andrey; Bryksin, Timofey; Litvinov, Yurii. So machen Sie visuelle Modellierung attraktiver für Softwareentwickler / 11. Laser Sommerschule für Software -Engineering. Führungs-Software-Engineering. 7. bis 13. September 2014 - Elba Island, Italien
- ^ a b Окулова л.. П. Проектирование оразовательного процесса в сотвеsprochen Наука и практика. Материалы конлnesives «« инноваци и начные ис & assine ис & $ мж \ п мение н т т т т т т т т т т тeck т т \ \ \ \ innowa \ \ innowe i Badania nauklau - 29.05.2012- 31.05.2012. Варшава \ Warszaw ».
- ^ a b Parondzhanov V.D. (1995). Visuelle Syntax der Drakon -Sprache. Vol. 21. Programmierung und Computersoftware. Offizielle englische Übersetzung von Programmirovanie. S. 142–153.
- ^ a b " Л. Мbehorte. -red. - C. 192. - ISBN978-5-93735-008-4
- ^ "Technik der Entwicklung von Algorithmen und Programmen" Grafit-Floks "." (PDF). Archiviert von das Original (PDF) Am 2012-12-27. Abgerufen 2012-12-27.
- ^ М м з ° в. Систеgst управления мжорбитальiges о косellt меског бксира «феат» // весasiert Лавочкина: к коонавтика р ракетостроение. - 2014, №1 (22). - с. 16–25. (Auf Russisch) Morozov V. V., Trunov Yu.V., Komissarov A. I., Pak E. A., Zhuchkov A. G., Disel V. D., Zalihina E.E., Parondzhanov V.D. Kontrollsystem von "Fregat" vielseitiger Raumschlepper // Vestnik Npo Imeni S.A. Lavochkina. Kosmonautik und Raketentechnik - 2014, 1 (22). - S. 16–25.
- ^ Lünette Ja. V. Ist es möglich, die Funktionsweise des Geistes zu verbessern? Ein neuer Blick auf das Problem. - Herald der Russischen Akademie der Wissenschaften. Band 73, Ausgabe 4, 2003.
- ^ Созоров н. Г. В. Дракон-редактоwor. Материалы региональной научно-методической конференции ИДНО Томского политехнического университета «Электронные дидактические материалы в инженерном образовании» 11-12 октября 2009 г.
- ^ Паронджанов в. Д. (2012). "Ч чебное пособие по языку дракон дUN взз". Ччись писать, читать и понирать алоритоы. Алгорит & д дnehmung правильног ышышышnehmung ышышUNIn ышеия. О сновы алгоритеetisch. М.: Д & п пресс. p. 520. ISBN 978-5-94074-800-7. dem. Ччись писать, читать и понирать алоритоы. Алгорит & д дnehmung правильног ышышышnehmung ышышUNIn ышеия. О сновы алгоритеetisch. М.: Д & п пресс. p. 520. ISBN978-5-94074-800-7.
- ^ Митькин roh Автоатное пwor драанованиeicht Т 10, № 1, 2019 (auf Russisch). Mitkin Stepan B. Automata-basierte Programmierung in Drakon Sprache. Programmnaya Ingeneria, 2019, Vol. 10, nein. 1, S. 3—13. Doi: 10.17587/prin.10.3-13
- ^ "Marc Schwarzbach, Sven Wlach, Maximilian Laiacker. Modifizierung eines wissenschaftlichen Flugkontrollsystems für Ballon hat UAV -Missionen gestartet // Deutsches Luft- und Raumfahrtzentrum DLR // IEEE, 2015" (PDF). Drakon.su. Abgerufen 2017-12-03.
Quellen
- V. Parondzhanov. Wie Sie die Arbeit Ihres Geistes verbessern können. Algorithmen ohne Programmierer - es ist sehr einfach! (Как улчшчшить работу у & ма.Алгоритоы б б п пatur мм & unktion - эээ чень просто!М.: Дело, 2001. - 360 °.)
- S. Mitkin. Drakon: Die menschliche Revolution beim Verständnis von Programmen