stringtranslate.com

DRAKÓN

Algoritmo de búsqueda de Dijkstra en DRAKON
Parte exterior del algoritmo de clasificación rápida en DRAKON-C
Un diagrama DRAKON que describe el transporte de un paciente criónico.

DRAKON ( ruso : Дружелюбный Русский Алгоритмический язык, Который Обеспечивает Наглядность , iluminado. 'Lenguaje algorítmico ruso amigable que proporciona claridad') es un lenguaje de modelado y programación visual algorítmico gratuito y de código abierto desarrollado como parte de la de funct programa espacial Buran de la Unión Soviética [2 ] en 1986 tras la necesidad de aumentar la productividad del desarrollo de software. El lenguaje visual proporciona una forma uniforme de representar procesos en diagramas de flujo .

Existen varias implementaciones de la especificación del lenguaje que pueden usarse para dibujar y exportar diagramas de flujo reales. Ejemplos notables incluyen DRAKON Editor gratuito y de código abierto (septiembre de 2011).

Historia

El desarrollo de DRAKON comenzó en 1986 para abordar el riesgo emergente de malentendidos (y errores posteriores) entre usuarios de diferentes lenguajes de programación en el programa espacial ruso. Su desarrollo fue dirigido por Vladimir Parondzhanov con la participación de la Agencia Espacial Federal Rusa ( Centro Académico Pilyugin , Moscú ) y la Academia Rusa de Ciencias ( Instituto Keldysh de Matemática Aplicada ).

El lenguaje se construyó mediante formalización, ergonomización y estructuración no clásica de diagramas de flujo descritos en la norma ISO 5807-85 y la norma rusa «Гост 19.701-90». [3] [4]

El objetivo era sustituir los lenguajes especializados utilizados en el proyecto Buran por un lenguaje de programación universal . A saber, PROL2 (ПРОЛ2), utilizado para desarrollar software de sistemas a bordo para el sistema informático Biser-4 (Бисер-4), [5] DIPOL (ДИПОЛЬ), utilizado para desarrollar software para los sistemas informáticos de mantenimiento en tierra) [5] y LAKS ( ЛАКС), utilizado para modelar.

El trabajo finalizó en 1996 (3 años después del cierre oficial del proyecto Buran), cuando se desarrolló un sistema de programación CASE automatizado llamado "Grafit-Floks". [6]

Este CASE se utiliza desde 1996 en: un proyecto internacional Sea Launch , [ cita necesaria ] etapa superior de inserción en órbita rusa Fregat (ruso: Фрегат, fragata) para pruebas y sistemas de control a bordo, [7] vehículo de lanzamiento pesado mejorado (cohete portador) Proton -M . [ cita necesaria ]

Descripción general

El nombre DRAKON es el acrónimo ruso de "Дружелюбный Русский Алгоритмический [язык], Который Обеспечивает Наглядность", que se traduce como "[lenguaje] algorítmico ruso amigable que ilustra (o proporciona claridad)". La palabra "наглядность" (pronunciada aproximadamente como "naa-glya-dno-st-th") se refiere a un concepto o idea que es fácil de imaginar y comprender, y puede traducirse como "claridad".

A diferencia de la filosofía de UML , la filosofía del lenguaje de DRAKON se basa en ser ampliado, si es necesario, mediante el uso de un lenguaje híbrido, que puede ilustrarse como "incrustar fragmentos de código del lenguaje de texto utilizado en la forma que DRAKON requiere". De esta manera, DRAKON siempre sigue siendo un lenguaje visual simple que puede usarse como un aumento para un programador que esté interesado en hacer que su propio código de proyecto sea más fácil de soportar u otras necesidades a largo plazo, por ejemplo, mejorar la ergonomía del proceso de codificación o hacer código más fácil de revisar y comprender.

El lenguaje DRAKON se puede utilizar como lenguaje de modelado/"marcado" (que se considera un programa "puro DRAKON" independiente) y como lenguaje de programación (como parte de un lenguaje híbrido).

La integración de una variante más estricta y "académica" de un lenguaje de marcado en la programación, como la proporcionada por DRAKON, agrega azúcar sintáctico , lo que permite a los usuarios de diferentes lenguajes de programación comprender las contribuciones de los demás al proyecto general e incluso proporcionar comentarios si es necesario.

Familia de idiomas DRAKON

Íconos del lenguaje DRAKON
Macroiconos del lenguaje DRAKON.

DRAKON ( ruso : ДРАКОН ; que significa " dragón " en inglés) está diseñado con la intención de permitir una fácil comprensión y legibilidad, ya que el uso de varios idiomas en un solo proyecto puede generar confusión.

DRAKON es una familia de lenguajes híbridos, como DRAKON-C, DRAKON-ASM, DRAKON-Java, etc. Todos los lenguajes de la familia DRAKON comparten una sintaxis gráfica uniforme basada en diagramas de flujo. La sintaxis gráfica estándar proporciona similitud de gráficos drakon para diferentes lenguajes híbridos. El idioma del texto utiliza su propia sintaxis.

La base de la sintaxis gráfica es un alfabeto gráfico. Los elementos gráficos ("letras") del alfabeto DRAKON se denominan iconos (no símbolos). DRAKON también tiene macroiconos . Los macroiconos son las palabras gráficas del lenguaje DRAKON; Consisten en iconos. Hay 27 iconos y 21 macroiconos en el idioma DRAKON.

Los gráficos Drakon están construidos a partir de iconos y macroiconos.

Las partes importantes de los maсroiсons son los puntos de valencia (en la ilustración se muestran como círculos negros). En estos puntos, el editor drakon puede introducir y organizar sucesivamente iconos o microiconos en columnas.

Diseño

DRAKON fue creado como un lenguaje visual fácil de aprender para ayudar a la comprensión de programas informáticos escritos en diferentes lenguajes de programación con fines ilustrativos, de planificación y estratégicos.

DRAKON utiliza drakon-chart, que es una formalización de los diagramas de flujo tradicionales para representar la estructura general del programa. Se agregan fragmentos de código de un lenguaje de programación a los íconos de DRAKON. La combinación de elementos visuales con código ayuda a la creación y mantenimiento de diagramas de flujo legibles junto con el desarrollo del programa en cuestión.

Las reglas de DRAKON para crear diagramas están optimizadas cognitivamente para una fácil comprensión, lo que lo convierte en una herramienta para el aumento de la inteligencia . [3] [8] [9] [10]

Los gráficos Drakon de grandes programas multipropósito pueden ser complejos y difíciles de comprender. Un conjunto de programas más pequeños, que juntos cumplen el mismo propósito, suelen ser más fáciles de entender cuando se representan como gráficos drakon. Existe un problema similar al mantener el código de programas grandes. En ocasiones, los programadores se refieren a este problema como "la regla de las 30 [líneas de código]".

Sintaxis visual

El artículo de texto completo que contiene una descripción de la sintaxis visual del idioma DRAKON en inglés, 12 páginas, descarga gratuita, pdf. [11]

Ejemplos

ejemplo de tetris

Ejemplo sencillo de un programa en el lenguaje DRAKON

Estos ejemplos son código real de una implementación del juego Tetris . Los ejemplos están en lenguaje DRAKON-JavaScript. Los iconos (primitivas visuales) del lenguaje DRAKON definen la estructura general de los algoritmos. Los fragmentos de código dentro de los íconos (primitivos) están en JavaScript.

avancepaso

La función advancedStep implementa la lógica central del juego. advancedStep es una máquina de estados representada como un árbol de decisión . [12] El motor del juego llama a AdvanceStep periódicamente. Esta máquina de estados tiene tres estados: "jugando", "soltando" y "terminado". El juego realiza diferentes acciones según el estado actual. Por ejemplo, en el estado de "juego", cuando hay un proyectil que cae y el proyectil puede moverse hacia abajo, se mueve hacia abajo un paso.

La lógica central del juego Tetris en lenguaje DRAKON-JavaScript

Con DRAKON, el lector del algoritmo puede rastrear visualmente todos los caminos posibles en el árbol de decisión.

noProyectil

La función noProjectile para el juego Tetris en lenguaje DRAKON-JavaScript

La función noProjectile maneja la situación específica cuando no cae ningún proyectil. Si hay una fila llena, esa fila se elimina de la cuadrícula. De lo contrario, el juego intentará insertar un nuevo proyectil. Si no hay espacio para el proyectil, se pierde el juego.

borrarfila

El algoritmo que elimina una línea de la cuadrícula de Tetris en lenguaje DRAKON-JavaScript

La función clearRow escanea todas las filas de abajo hacia arriba hasta encontrar una fila sin espacios. En tal caso, la fila se elimina de la cuadrícula, la puntuación aumenta y el ritmo del juego aumenta.

Animación de ejecución de DRAKON

La siguiente imagen ilustra la ejecución del algoritmo de silueta DRAKON. La ejecución del algoritmo se anima resaltando los elementos del diagrama en el orden de ejecución.

La silueta 'Pesca' consta de cuatro árboles:

El camino principal de cada árbol se muestra resaltando una línea vertical gruesa que se llama brocheta.

El gráfico de flujo siempre tiene una ruta desde el ícono Titular hasta cada vértice (nodo) del gráfico de flujo de control. En consecuencia, una silueta no puede tener un código inalcanzable en ninguna condición.

La ejecución del algoritmo DRAKON se anima resaltando los elementos del diagrama en el orden de ejecución.

Uso moderno

DRAKON en el Centro Aeroespacial Alemán

El lenguaje DRAKON se utiliza en el Centro Aeroespacial Alemán para la implementación de algunas funciones críticas dictadas por las normas de seguridad de las pruebas de vuelo, donde la automatización es importante debido a la distancia máxima a la estación terrestre y el proceso necesita una ejecución automática rápida.

Se utilizó el software DRAKON Editor para programar gráficamente los diagramas de flujo que fueron verificados especialmente. El código C se generó a partir de los gráficos drakon, por ejemplo, para la representación DRAKON del código de detección de lanzamiento. [13]

Modelado de procesos de negocio

El lenguaje DRAKON se puede utilizar como lenguaje para modelar y visualizar procesos comerciales. "Se aplicó el lenguaje DRAKON como lenguaje básico para construir modelos de procesos de negocios, lo que permite obtener un prototipo de máquina de estados finitos al construir modelos de procesos de negocios. La visualización de procesos de negocios en el espacio de estados permite tomar decisiones maker para mejorar la eficiencia de la toma de decisiones". [14]

Usos fuera de la programación

Si bien DRAKON está diseñado principalmente como una herramienta para comprender programas informáticos, los drakon-charts también se pueden utilizar para ilustrar procesos en campos no relacionados con la informática.

En el editor DRAKON se pueden agregar imágenes a los íconos DRAKON. Esta capacidad se utiliza en algunos campos para crear fácilmente infografías tipo "diagrama de flujo" . En Rusia, el editor DRAKON es conocido por ser utilizado en el campo médico como herramienta para crear gráficos "instructivos" para pacientes o personal médico. [ cita necesaria ] [15]

Ver también

Referencias

  1. ^ Terejov, Andrey; Bryksin, Timofey; Litvinov, Yurii. Cómo hacer que el modelado visual sea más atractivo para los desarrolladores de software / 11ª Escuela de Verano LASER en Ingeniería de Software. Ingeniería de software de vanguardia. 7 al 13 de septiembre de 2014 - Isla de Elba, Italia
  2. ^ "Stepan-mitkin/Drakon_editor". GitHub . 28 de septiembre de 2022.
  3. ^ ab Окулова Л. P. Проектирование образовательного процесса в соответствии с требованиями педагогической эргономики // Вестник. Наука и практика. Материалы конференции «Инновации и научные исследования, а также их применение на практике \ Innowacje i badania naukowe, jak rowniez ich zastosowanie w praktyce. — 29.05.2012- 31.05.2012. Varsovia \ Warszaw».
  4. ^ Parondzhanov VD Sintaxis visual del lenguaje DRAGON // Programación y software informático, 01/1995; Volumen 21 (Número 3): pág. 142 - 153. (Aquí hay una traducción incorrecta. Debe leerse como "idioma DRAKON").
  5. ^ ab Штурманы ракет / Под общей редакцией Е. Л. Межирицкого. — М.: БЛОК-Информ-Экспресс, 2008. — 384 с. — C. 192. — ISBN 978-5-93735-008-4 
  6. ^ "Técnica de desarrollo de algoritmos y programas" Grafit-Floks. "" (PDF) . Archivado desde el original (PDF) el 27 de diciembre de 2012 . Consultado el 27 de diciembre de 2012 .
  7. ^ Морозов В.В., Трунов Ю.В., Комиссаров А.И., Пак Е.А., Жучков А.Г., Дишель В.Д., Залихина Е.Е., Паронджа нов В.Д. Система управления межорбитального космического буксира «Фрегат» // Вестник НПО имени S.А. Лавочкина: Космонавтика и ракетостроение. — 2014, n.º 1 (22). — С. 16–25. (En ruso) Morozov VV, Trunov Yu.V., Komissarov AI, Pak EA, Zhuchkov AG, Dishel VD, Zalihina EE, Parondzhanov VD Sistema de control del versátil remolcador espacial "Fregat" // Vestnik NPO imeni SA Lavochkina. Cosmonáutica e ingeniería de cohetes - 2014, 1 (22). - págs. 16-25.
  8. ^ Bisel Ja. V. ¿Es posible mejorar el funcionamiento de la mente? Una nueva mirada al problema.— Heraldo de la Academia de Ciencias de Rusia. Volumen 73, Número 4, 2003.
  9. ^ Созоров Н. Г., Трошин М. B. El editor de dragón está disponible en recursos didácticos para la programación interactiva del curso. Materiales regionales de conferencias metodológicas regionales ИДНО Universidad politécnica de Tomskogo de la universidad «electrónica didáctica» материалы в инженерном образовании» 11-12 de octubre de 2009 г.
  10. ^ Паронджанов В. Д. (2012). "Учебное пособие по языку ДРАКОН для вузов". Учись писать, читать и понимать алгоритмы. Algoritmos para la música popular. Основы алгоритмизации . М.: ДМК Пресс. pag. 520.ISBN _ 978-5-94074-800-7.вузов". Учись писать, читать and понимать algoritmos. Алгоритмы для правильного мышления. Основы алгоритмизации . М.: ДМК P. 520. ISBN 978-5-94074-800-7
  11. ^ Parondzhanov VD (1995). Sintaxis visual del lenguaje DRAKON. vol. 21. PROGRAMACIÓN Y SOFTWARE INFORMÁTICO. Traducción oficial al inglés de Programmirovanie. págs. 142-153.
  12. ^ Митькин С.Б. Programación automática en el disco duro // Programación de ingeniería. Том 10, № 1, 2019 (en ruso). Mitkin Stepan B. Programación basada en autómatas en lenguaje DRAKON. Programmnaya Ingeniería, 2019, vol. 10, núm. 1, págs. 3—13. DOI: 10.17587/principio 10.3-13
  13. ^ "Marc Schwarzbach, Sven Wlach, Maximilian Laiacker. Modificación de un sistema de control de vuelo científico para misiones de vehículos aéreos no tripulados lanzados desde globos // Centro aeroespacial alemán DLR // IEEE, 2015" (PDF) . drakon.su . Consultado el 3 de diciembre de 2017 .
  14. ^ Valeev SS, Kondratyeva NV Análisis de procesos de negocio en un sistema técnico y organizativo distribuido basado en instantáneas // Tecnologías computacionales. 2023. V. 28. № 1. P. 41-47.
  15. ^ Ejemplo de programa médico para reducir la grasa corporal (en ruso) [ enlace muerto permanente ]

Fuentes

enlaces externos