Langue des dragons. Nikolay Pilyugin et son idée originale. Route de la silhouette principale

Quelle est la force motrice derrière le programme? Qu'est-ce qui génère un résultat bénéfique ? Bien sûr, l'algorithme. L'algorithme crée l'effet pour lequel le programme a été écrit. L'algorithme ne fonctionne pas seul. Il fonctionne en conjonction avec des structures de données. Mais ce sont les algorithmes qui constituent la plus grande partie du programme.


Historiquement, les algorithmes des programmes sont écrits sous forme de code source. Presque personne ne doute que le texte est la meilleure façon de représenter les algorithmes. Un algorithme est codé au sein de fonctions dans un langage de programmation tel que C ou JavaScript. Pour ceux qui veulent comprendre l'algorithme à vol d'oiseau, un pseudocode est fourni. Cependant, il y a de sérieux problèmes avec le texte. Le fait est qu'une personne n'est pas optimisée pour le texte solide. L'humain est optimisé pour la perception des graphiques. Le texte est une invention relativement nouvelle, mais informations graphiques les organismes se transforment depuis des millions d'années.


Sur cette base, il serait logique d'élaborer des algorithmes sous forme graphique. Regardez les ingénieurs. Ils utilisent des plans partout. Pourquoi les programmeurs sont-ils pires ? Ils pourraient également élaborer des plans pour les algorithmes. Certains diront ici : la programmation visuelle est soi-disant inefficace. L'UML est maladroit et les organigrammes sont faciles à confondre. Mieux vaut programmer la manière traditionnelle- texte. Dans la programmation structurée, il y a au moins une structure, et elle donne ordre et cohérence. Et en plus, dessiner des schémas est long et difficile. Taper est plus rapide que dessiner.


Les programmeurs sont-ils donc condamnés à travailler uniquement avec du texte toute leur vie ?
Ce n'est peut-être pas si mal que ça. Il existe des langages visuels pour représenter des algorithmes qui ont également un ordre et une structure, tels que DRAGON, BPMN et LML Action Diagrams. Ici, nous allons examiner le langage algorithmique visuel DRAGON.

Comment programmer en langage DRAGON

DRAGON n'est pas un langage de programmation indépendant. Il fonctionne en tandem avec un langage textuel tel que JavaScript, Python ou C ++. Avec le langage textuel, DRAGON forme un langage hybride : DRAGON-JavaScript, DRAGON-Python ou DRAGON-C++.


La programmation hybride se fait comme suit :

  1. Nous dessinons un diagramme DRAGON.
  2. Placez de petits morceaux de code dans le langage de programmation correspondant à l'intérieur des icônes.
  3. Le traducteur convertit le schéma DRAGON en un fichier texte avec le code source.
  4. Ce fichier texte est inclus dans le projet de la manière habituelle.
    Plusieurs éditeurs prennent actuellement en charge la génération de code à partir de diagrammes. Les exemples de cet article ont été créés dans l'éditeur DRAKON.

Générer du code à partir d'un diagramme

Dans le schéma, le DRAGON prend le contrôle du flux d'exécution. Par conséquent, les morceaux de code source dans les icônes ne doivent pas contenir de mots-clés tels que si, autre, changer, Cas, pour, tandis que etc.


Les icônes ne doivent contenir qu'un code simple et sans ambiguïté : expressions arithmétiques, affectations de valeurs, appels de fonction, comparaisons. Mais les branchements et les boucles sont implémentés par des constructions du langage DRAGON.



La génération de code est la suivante :

  • Une fonction est créée à partir de chaque diagramme.
  • Le nom du graphe devient le nom de la fonction.
  • Les paramètres de la fonction sont extraits de l'icône "Paramètres formels", qui se trouve à droite du nom du schéma.
  • Le corps de la fonction est généré en fonction de la structure du diagramme et du contenu des icônes.

En figue. 1 montre un exemple de petit diagramme dans le langage hybride DRAGON-JavaScript et le code JavaScript généré :


Rectangle avec texte console.log (chat, chien) En figue. 1 est l'icône Action. Combien de code peut contenir une icône d'action ? On devrait s'efforcer de s'assurer qu'une icône contient une pensée. Parfois c'est une ligne de code, parfois plusieurs.
Le code généré est fourni avec des commentaires qui indiquent les numéros des icônes. Dans l'éditeur, vous pouvez accéder rapidement à n'importe quelle icône en appuyant sur Ctrl + I.

Fig. 1. Le diagramme DRAGON-JavaScript et le code généré à partir de celui-ci.

Icône "Question"

Les icônes « Question » et « Choix » sont utilisées pour le branchement.


L'icône "Question" (Fig. 2) correspond au dessin si-alors-sinon.


Notez qu'au lieu de mots vrai et faux les mots sont utilisés Oui et Pas(peut être commuté sur Oui et Non.).


"Vérité" et "faux" - cela semble spectaculaire, d'une manière scientifique. Cependant, une personne est plus familière avec le « oui » et le « non » depuis la petite enfance.


Caractères Oui et Pas peut être échangé. L'emplacement des sorties de l'icône « Question » reste inchangé. Une sortie descend et l'autre va à droite. Le branchement dans le langage DRAGON est toujours dirigé vers la droite, par conséquent, la sortie par le côté gauche de l'icône est interdite. Cette prévisibilité rend le diagramme plus facile à lire car le lecteur sait à l'avance où chercher les sorties.


Une autre caractéristique du langage DRAGON est qu'un losange complet n'est pas utilisé pour le branchement, mais un tronqué. Cela permet d'économiser de l'espace sur le diagramme.




Figure 2. Icône "Question"

Formules logiques visuelles

Le langage DRAGON rend les opérateurs logiques inutiles ET, OU ALORS et NE PAS ainsi que l'opérateur non égal. Les opérations logiques elles-mêmes sont bien entendu nécessaires. Mais au lieu d'opérateurs de texte, DRAGON introduit des formules logiques visuelles.


Pour obtenir une formule logique visuelle, vous devez connecter plusieurs icônes « Question » (comme dans la Fig. 3).


Il est particulièrement agréable de se débarrasser du déni. Le déni n'est pas intuitif, il apporte des erreurs et des inconvénients. Négation (opérateur logique NE PAS) est réalisé dans le langage DRAGON par permutation d'étiquettes Oui et Pas.


La notation textuelle des expressions logiques est certainement plus compacte. Cependant, les formules visuelles sont plus faciles à lire. Chacune des combinaisons possibles de valeurs d'opérande peut être tracée avec un doigt.




Figure 3. Formules logiques visuelles

Boucle avec flèche

Pour indiquer l'ordre d'exécution habituel dans le langage DRAGON, les flèches ne sont pas nécessaires. L'icône suivante est toujours en bas. La flèche n'est requise que lorsque le fil d'exécution doit sauter dans le diagramme. Un tel saut vers le haut signifie un cycle. Par conséquent, une flèche dans le langage DRAGON est le signe d'un cycle. D'un coup d'œil rapide sur le diagramme DRAGON, les flèches sont immédiatement perceptibles. Cela signifie que les cycles sont immédiatement visibles. C'est un sérieux avantage de DRAGON par rapport aux autres langages graphiques. Vous n'avez pas à trouver les boucles.


Ainsi, si vous connectez l'icône "Question" avec une flèche, vous obtenez un cycle. Ceci est un analogue des constructions tandis que et faire pendant... La figure 4 montre plusieurs types de boucles de flèches.
L'icône "Question" dans une boucle avec une flèche vérifie la condition de sortie de la boucle. Bien sûr, au lieu d'une icône « Question », il peut y en avoir plusieurs. Ensuite, la formule logique visuelle est responsable de la sortie de la boucle.




Figure 4. Boucles de flèches

Icône "Choix"

L'icône "Question" contient une expression logique, c'est-à-dire qu'elle peut prendre deux valeurs : Oui et Pas... Un exemple typique consiste à comparer deux objets. Si vous devez comparer une certaine expression avec plusieurs valeurs, l'icône Sélectionner est utilisée (Fig. 5). Ceci est conforme à la conception cas de sorcière.


Les valeurs avec lesquelles l'expression dans l'icône "Choix" sera comparée sont placées dans les icônes "Variante". S'il n'y a pas de texte dans la version la plus à droite, cela signifie "toutes les autres valeurs". Tel option vide semblable à un mot-clé défaut opérateur à l'intérieur changer.
L'option la plus à droite peut se terminer par une flèche qui mène vers le haut. Dans ce cas, nous avons à nouveau affaire à un cycle de flèches. Dans un tel cycle, l'icône « Choix » sera responsable de la condition de sortie, pas la « Question ».




Figure 5. Icône "Choix" et icônes "Option"

Icône "Cycle POUR"

Au lieu de boucles pour et pour chaque DRAGON-JavaScript utilise l'icône "Loop FOR". L'icône "Cycle FOR" (Fig. 6) peut être de plusieurs types.


Si après le mot-clé pour chaque et il y a une variable avant le point-virgule, puis le code est généré pour itérer sur le tableau. Les éléments du tableau (mais pas leurs indices) seront placés dans la variable.


Si après le mot-clé pour chaque il y a deux variables, DRAKON Editor comprendra que l'itération sur les propriétés de l'objet (enregistrements de table de hachage) est requise. Seules les propriétés propres des objets entreront dans l'énumération.


La troisième version de la boucle implique la présence de trois expressions, séparées par des points-virgules. C'est un cycle traditionnel pour, spécifique aux langages C et Java.


Une sortie anticipée du cycle sous le contrôle de l'icône « Cycle POUR » est possible à l'aide de l'icône « Question » ou « Choix ». Cette sortie correspond approximativement au mot-clé Pause.




Figure 6. Différents types d'icône "Loop FOR" dans DRAGON-JavaScript

Une seule entrée dans la boucle

Dans le langage DRAGON, une restriction est imposée sur les cycles. Chaque cycle ne peut avoir qu'une seule entrée. Le but de cette limitation est d'assurer la lisibilité. Cette limitation maintient le DRAGON dans programmation structurée comme Dijkstra l'a décrit.


Plusieurs sorties de la boucle sont acceptables, mais il ne devrait y avoir qu'une seule entrée. En figue. 7 montre des cycles qui ont deux sorties. C'est permis. En figue. 8 montre des exemples de cycles interdits. Interdit car vous pouvez les saisir de différentes manières.
Cependant, ne mémorisez pas l'apparition de ces cycles interdits. L'éditeur DRAKON détectera automatiquement de telles boucles et générera une erreur.




Figure 7. Cycles autorisés avec deux sorties


Figure 8. Cycles interdits avec deux entrées

Différences avec la programmation structurée basée sur du texte

Comme vous pouvez le voir, les icônes et macro-icônes du langage DRAGON correspondent aux constructions standard de la programmation structurée textuelle. Cependant, il existe aussi des différences. Le texte, même avec indentation, est un objet unidimensionnel. Et le diagramme est en deux dimensions. Un degré de liberté supplémentaire apparaît dans le schéma, ce qui augmente l'expressivité. Essayez, par exemple, dans un langage de programmation textuel sans répétitions et aller à représentent un algorithme comme dans la Fig. neuf.


Malgré la liberté supplémentaire par rapport au texte, le DRAGON ne permet toujours pas de tomber dans l'anarchie. Ses règles sont suffisamment strictes pour éviter toute confusion. DRAGON offre un compromis raisonnable entre souplesse et rigueur.



Figure 9. Un algorithme difficile à représenter avec du texte seul

Avantages du langage graphique

Le langage DRAGON a un destin intéressant. Ses principes de base ont été établis par Dijkstroy lui-même. DRAGON a acquis sa forme actuelle dans les profondeurs de l'industrie spatiale russe. Il est à noter que les règles du langage DRAGON ne sont pas apparues par hasard. Ils ont d'abord été testés dans des groupes de discussion, puis affinés dans de vrais projets spatiaux.
Alors, quels sont exactement les points forts du DRAGON ?


Commençons par le fait que DRAGON est un langage graphique. Et à langage graphique il y a des avantages fondamentaux par rapport au texte.


Premièrement, les pensées ne sont pas réparties au hasard sur les lignes, mais sont enfermées dans des carrés ou des icônes. Une pensée - un carré. Différentes pensées ne collent pas ensemble.


Deuxièmement, le chemin à travers l'algorithme peut être tracé avec un doigt (ou un coup d'œil). Après si pas besoin de chercher autre... Suivez la ligne et vous vous retrouverez dans la case désirée. Vous n'avez pas besoin de parcourir le code source des yeux à la recherche d'une réponse à la question : que s'est-il passé ensuite ?


Et les graphiques ont aussi une propriété presque magique. Il arrive qu'une personne regarde un diagramme, et soudain une compréhension supplémentaire vient. Des connexions auparavant invisibles deviennent apparentes. Cela arrive rarement avec le texte.

Règles ergonomiques particulières

Mais DRAGON ne sont pas que des diagrammes, ce sont des diagrammes élaborés. Les diagrammes DRAGON sont plus faciles à lire que les diagrammes de flux réguliers. Ceci est assuré par des astuces ergonomiques spéciales. Voici quelques-uns d'entre eux.

  • Les franchissements de lignes sont interdits. Du tout. Les intersections font suspecter à notre analyseur visuel que les lignes se touchent, et donc connectées d'une certaine manière. Ces soupçons créent un travail mental supplémentaire. Les travaux inutiles doivent être éliminés.
  • Le début contient le nom de l'algorithme et est toujours situé dans le coin supérieur gauche du diagramme. Par conséquent, il n'est même pas nécessaire de chercher le début. C'est où il est habituellement.
  • Le schéma n'a qu'une extrémité. Quoi qu'il arrive en cours de route (sauf exceptions), nous arriverons toujours à la fin.
  • Seules les lignes droites sont autorisées. Pas de courbes, pas de virages ou de plis inutiles.
  • Seules les lignes strictement verticales et strictement horizontales sont autorisées. Les lignes obliques sont interdites. Explication pour les amateurs de maths : Le diagramme DRAGON est un graphe rectangulaire plat (graphe de Manhattan). L'appareil visuel humain saisit instantanément des objets reliés par des lignes orthogonales droites. Garder une trace de l'endroit où la courbe du rêve américain mènera, cependant, nécessite une concentration supplémentaire de la part du lecteur.
  • Le schéma DRAGON est exécuté de haut en bas. Cette règle évite d'avoir à parcourir frénétiquement le schéma des yeux à la recherche de la prochaine icône. L'icône suivante est toujours en bas. L'entrée est en haut et la sortie en bas. Puisque nous savons où se trouve la prochaine icône, les flèches ne sont pas nécessaires. Des lignes simples suffisent. Les flèches à côté de chaque icône représentent le bruit visuel. Après avoir supprimé la tâche de connexion des icônes des flèches, vous pouvez leur attribuer une mission spéciale. Dans le DRAGON, une flèche signifie un cycle.
  • La ramification ne se produit que vers la droite. C'est une aide précieuse en termes de prévisibilité et de cohérence.
  • Les icônes situées sur la même verticale doivent avoir la même largeur. Cela donne le sentiment que les icônes appartiennent à un seul tout. Lorsque tout le monde a la même largeur et qu'il n'y a pas d'icônes parvenues, l'œil glisse facilement et librement sur le diagramme.

Les règles ci-dessus sont d'une immense valeur pratique. D'une part, elles sont conçues pour freiner la folie de l'artiste. Il est plus difficile de créer un schéma confus avec eux. D'autre part, ils font prendre conscience des graphiques. Les diagrammes deviennent compréhensibles non seulement pour leurs auteurs.


Les diagrammes de la Fig. 10 et 11 démontrent les techniques ergonomiques du langage DRAGON à l'aide d'exemples réels.




Figure 10. Techniques ergonomiques du langage DRAGON à titre d'exemple


Figure 11. Un autre exemple de diagramme en langage DRAGON
En plus des techniques ergonomiques, le langage DRAGON possède des caractéristiques uniques que l'on ne trouve nulle part ailleurs.

Le plus à droite, le pire

DRAGON a un moyen pour l'image chemin heureux, ou alors route royale... La route du tsar est le chemin le plus efficace à travers l'algorithme. Dans certains algorithmes, les concepts de « bon/mauvais », « bon/mauvais » ne sont pas applicables. En eux, la route royale montre le chemin le plus attendu. La route royale s'étend verticalement, située sur le côté gauche du diagramme. Cette verticale s'appelle une brochette. Les scénarios les moins probables et les moins réussis, ainsi que la gestion des erreurs, sont placés sur le côté droit du diagramme. De plus, plus la situation est mauvaise, plus il doit être situé à droite. Il est recommandé de placer le code qui lève une exception ou renvoie un code d'erreur sur le côté droit du diagramme.


Destin commun

Parfois, il arrive que sur différents chemins de l'algorithme, il soit nécessaire d'effectuer des actions différentes, mais liées d'une manière ou d'une autre. Par exemple, mettez différentes valeurs dans une variable. Le destin partagé, c'est lorsque des actions liées se situent sur des lignes verticales différentes, mais sur la même horizontale.


Figure. 12 montre une brochette avec une voie royale, ainsi que l'application de la technique du "destin commun".




Figure 12. Voie royale et destin commun

Silhouette

La silhouette est un vrai diamant DRAGON. Silhouette vous permet de diviser un diagramme en parties logiques. En programmation, la décomposition à l'aide de sous-programmes est généralement utilisée pour cela. Les sous-programmes sont une méthode puissante. Mais parfois, j'aimerais placer le sous-programme visuellement près du programme principal, ainsi qu'éviter le désordre avec le passage des paramètres et le retour des valeurs. Une silhouette est idéale à ces fins. Une autre utilisation de la silhouette est dans les machines à états finis. Mais nous en reparlerons ailleurs.
Il arrive que l'algorithme ne puisse pas être décomposé sur un plan de sorte qu'il n'y ait pas d'intersection de droites. Dans ce cas, selon la situation, soit une décomposition à l'aide de sous-programmes, soit une silhouette est appliquée.


La silhouette se compose de plusieurs petits diagrammes reliés en un seul bloc intégral. Ces petits diagrammes sont appelés branches silhouettes. En haut de chaque branche se trouve l'icône « Tête de la branche », en dessous - l'icône « Adresse ». Le nom de cette succursale est inscrit dans la tête de la succursale et le nom de la succursale suivante est indiqué dans l'adresse. Les noms des branches sont situés sur une seule ligne horizontale en haut du diagramme. Grâce à cela, vous pouvez saisir l'essence de l'algorithme en ne parcourant que les en-têtes de branche. La silhouette répond à trois questions royales :

  1. Quel est le nom du problème ?
  2. De combien de parties se compose-t-il ?
  3. Comment s'appellent ces pièces ?

Considérons l'exemple de la Fig. 13. Voici les réponses aux questions du roi :

  1. Quel est le nom du problème ? Organisez la liste chaînée.
  2. De combien de parties se compose-t-il ? Sur quatre.
  3. Comment s'appellent ces pièces ? Construire une matrice de liens. Vérifiez les cycles. Parcourez la matrice des connexions. Compléter.


Figure 13. DRAGON-schéma "silhouette"

Cycle de silhouette

Les branches de la silhouette doivent être ordonnées de gauche à droite. Dans certains cas, vous devez exécuter une branche ou un groupe de branches plusieurs fois. Cette conception s'appelle une boucle de silhouette. Si l'icône « Adresse » pointe vers sa propre branche ou vers une branche située à gauche, elle doit être marquée d'une étiquette spéciale. La même marque doit être placée sur l'icône correspondante « Tête de branche » (voir fig. 14). Le but de l'étiquette est de rendre visible la boucle de la silhouette.




Figure 14. Boucle de silhouette et étiquettes

Le raccordement des branches silhouette est interdit

Les connexions de deux branches de la silhouette (comme sur la Fig. 15) sont interdites. Chaque branche de la silhouette doit être indépendante.




Figure 15. Le raccordement des branches silhouette est interdit.

Tableaux des tailles

Lors de la programmation en langage DRAGON, la question se pose : quelle doit être la taille des diagrammes ? La réponse est : moins c'est mieux. Moins il y a d'objets dans la scène visuelle, plus elle est claire. Dans la programmation textuelle, il existe un tel point de référence : il est bon que toute la fonction tienne sur l'écran. Des conseils similaires peuvent être donnés pour les schémas DRAGON. Évitez les graphiques énormes. Lorsque l'ensemble de l'algorithme est entièrement visible, il est beaucoup plus facile à comprendre.
Pour la programmation DRAGON, il n'est pas préférable d'avoir un grand moniteur. Au moins 1080 pixels de haut. Alors vous n'avez pas à raccourcir artificiellement les schémas DRAGON.


DRAGON-schéma silhouette doit tenir sur l'écran en hauteur, mais pas nécessairement en largeur. Diagrammes silhouette peut être assez large, beaucoup plus large que 2000 pixels. C'est normal. Il n'est pas nécessaire de voir toutes les branches de la silhouette en même temps. L'essentiel est que la branche avec laquelle vous travaillez soit entièrement visible à l'écran.

Critique de la programmation DRAGON

Considérons les principales directions de critique de la programmation sur le DRAGON et essayons d'y répondre.

  • "Les diagrammes DRAGON occupent plus d'espace à l'écran que les programmes de traitement de texte." C'est vrai. Mais nous devons garder à l'esprit que la tâche du DRAGON est de montrer la complexité telle qu'elle est. Le lecteur du programme ne doit pas déballer dans sa tête des structures complexes. Elles doivent lui être explicitement montrées.
  • "Les algorithmes simples sont plus beaux sous forme de texte." Peut-être. Hello world est élégant dans toutes les langues. Mais dans la vraie vie, tout n'est pas simple. Dès qu'au moins un apparaît si imbriqué dans un autre si, DRAGON gagne.
  • "DRAGON n'a aucune possibilité d'afficher les exceptions." Il y a un tel problème. Des exceptions ont été récemment ajoutées au langage DRAGON, mais toutes les implémentations ne les prennent pas en charge. Jusqu'à ce que les implémentations arrivent à temps, vous pouvez écrire des blocs try / catch dans le langage de programmation approprié.
  • "Les schémas DRAGON prennent beaucoup de temps à dessiner." Il est beaucoup plus facile de dessiner des diagrammes DRAGON dans des éditeurs spécialisés que, par exemple, dans Visio. Et dans certains d'entre eux, le dessin est devenu presque aussi facile que l'écriture.
  • "Il n'y a pas d'outils pour diff et merge." C'est malheureusement le cas. Lorsque vous travaillez avec un système de contrôle de version, vous devez comparer les fichiers sources générés.
  • "Il n'y a pas d'outils de débogage DRAGON-schématiques." C'est vrai. Mais vous pouvez déboguer le code généré. Il a des étiquettes qui indiquent où dans le diagramme appartient un morceau de code donné.

Présentation du langage Dragon

La figure 16 donne un aperçu du langage DRAGON.




Figure 16. Présentation du langage DRAGON

Outils de langage Dragon

La toute première implémentation du langage DRAGON était le système GRAPHITE-FLOKS (Fig. 17). GRAPHITE-FLOX a été créé en 1986-1996. par des spécialistes de la FSUE NPTs AP eux. Pilyugin sous la direction de V.D. Parondjanova. Cet environnement était destiné à la conception de systèmes de contrôle pour lanceurs et engins spatiaux.


GRAPHITE-FLOX est un développement fermé, donc relativement peu est connu à son sujet. La liste des engins spatiaux créés avec l'utilisation de GRAFIT-FLOX peut être consultée.


Au début des années 90, un autre éditeur DRAGON voit le jour. Le développement a été effectué à l'Institut de mathématiques appliquées du nom de M.V. Keldysh sous la direction de L.K. Eisymont. L'éditeur Eisymont (Fig. 18) peut être téléchargé et exécuté, mais il n'est plus pris en charge. L'éditeur est écrit sous MS DOS, donc DOSBox peut être nécessaire pour fonctionner sur des ordinateurs modernes.


En 2008, l'éditeur de IS Dragon de Gennady Tyshov est sorti (Fig. 19). IS Dragon est activement soutenu et développé. IS Dragon implémente la génération de code de programme à partir de diagrammes. L'une des fonctionnalités intéressantes d'IS Dragon est la possibilité de placer un code dans un langage de programmation et une description dans un langage naturel dans une seule icône. Le mérite absolu d'IP Dragon est le soi-disant "calcul des icônes". Le calcul d'icônes est une méthode d'édition qui aide l'utilisateur à dessiner un diagramme et garantit que le diagramme ne viole pas les règles du langage DRAGON. Parmi les inconvénients d'IS Dragon, on peut noter une interface utilisateur non standard et quelques inconvénients lors de la génération de code. IP Dragon est un produit commercial.


DRAKON Editor est un autre éditeur DRAGON moderne (fig. 20). DRAKON Editor a été développé par un groupe de passionnés dirigé par Stepan Mitkin. DRAKON Editor ne prend pas en charge le calcul des icônes. Cela signifie que les schémas DRAGON y sont assemblés manuellement à partir de primitives, comme dans le vecteur éditeurs graphiques... Mais d'un autre côté, l'interface utilisateur de DRAKON Editor est aussi simple que possible. Il est construit selon un schéma plus familier que IS Dragon. Le principal avantage de l'environnement DRAKON Editor est la facilité de programmation et de génération de code. DRAKON Editor prend en charge plusieurs langages de programmation, notamment C, C++, C#, Java, Processing, JavaScript, Lua, Erlang, Python, Tcl, Verilog, AutoHotkey, D et Go. Pour certains langages, il est possible de générer des automates. Les règles du système expert nools sont prises en charge. Implémentation d'un sous-ensemble du langage UTOPIST E. Tyugu. DRAKON Editor est open source.


Une application intéressante pour le langage DRAGON a été inventée par Oleg Garipov dans son projet Integrator CodeView. CodeView vous permet de visualiser le code existant comme un ensemble interconnecté de schémas DRAGON. La particularité de l'intégrateur CodeView est que non pas des méthodes individuelles sont visualisées, mais l'ensemble du projet, y compris le graphe d'appels, la pile, etc. L'intégrateur CodeView est également unique en ce qu'il montre visuellement non seulement les algorithmes, mais aussi les données. Le moteur de visualisation des données du système Integrator fonctionne en conjonction avec DRAGON.


DRAKON Editor Web est une solution cloud commerciale basée sur le langage DRAGON. DRAKON Editor Web est conçu pour les spécifications techniques, les procédures commerciales et les listes de contrôle. DRAKON Editor Web n'est en aucun cas affilié à DRAKON Editor et ne prend pas en charge la génération de code à partir de diagrammes. Parmi les avantages de DRAKON Editor Web, il faut noter un éditeur pratique, travail conjoint et la prise en charge des appareils mobiles.




Figure 17. Schéma DRAGON dans le système GRAPHITE-FLOX


Figure 18. DRAGON Éditeur Eisymont


Figure 19. Programme avec explications en IS Dragon


Figure 20.Éditeur DRAKON

conclusions

Résumons. DRAGON est un langage pratique endurci dans l'espace. Il a apporté structure, ordre et cohérence aux organigrammes. La prévisibilité et la netteté des schémas DRAGON conduisent au fait que la programmation visuelle travaux.


L'expérience de projets réels a montré que vous ne pouvez pas programmer sur le DRAGON. D'une part, DRAGON est plus expressif que le texte. D'autre part, il augmente la lisibilité des programmes. Et en plus, les programmes sous la forme de schémas DRAGON ressemblent, eh bien, à ceux d'un vaisseau spatial extraterrestre (bien que beaucoup dépende du schéma de couleurs). Personnellement, je suis facilement passé à DRAGON. C'est gênant quand, au contraire, il faut parfois programmer dans le style de texte traditionnel.

Ajouter des balises

Développeur de programme Tychov Gennady Nikolaïevitch
Severodvinsk, a travaillé chez JSC SPO Arktika, www.spoarktika.ru.

Le programme IS Dragon est destiné à :
- algorithmisation pratique de vos activités,
- formuler vos tâches,
- la formalisation de vos connaissances.

Le programme est un outil :
- technique visuelle de la pensée et de la communication,
- conception visuelle d'algorithmes pour les activités et les programmes,
- programmation visuelle,
- formation de bases algorithmiques d'activité.

Le programme "IS Dragon" (Integrated Environment Dragon) est un environnement de travail avec les algorithmes de Dragon.
Avec l'aide d'IS Dragon, la culture algorithmique est introduite dans de nombreux types d'activités.

Téléchargez le programme "IS Dragon"

Instructions d'utilisation

    L'utilisateur peut enregistrer le fichier graphique du Dragon-leaf ou du Dragon-scheme. En ouvrant un fichier graphique dans un éditeur graphique, vous pouvez ajouter, par exemple, des attributs graphiques de l'organisation, vous pouvez imprimer une copie papier.

    L'utilisateur peut copier l'image Dragon Leaf ou Dragon Scheme dans le presse-papiers du système. Une image du tampon système peut être collée dans du texte modifiable ou documents graphiques... L'image peut être copiée dans le presse-papiers à partir de l'écran avec des éléments du processus d'édition (avec la sélection du curseur graphique, des points d'insertion d'icônes), cela vous permet de composer des tutoriels sur l'utilisation d'IS Dragon et des manuels pour les utilisateurs d'algorithmes Dragon .

    L'utilisateur, en plus d'une copie papier de l'algorithme Dragon, peut recevoir un fichier texte avec des informations d'accompagnement de A-, B-, P-texts. Ainsi, il est possible de publier des algorithmes Dragon entièrement fonctionnels.

    L'utilisateur peut indiquer des noms de fichiers ou un lien Internet dans les textes des algorithmes Dragon. Lorsque vous mettez le nom du fichier en surbrillance, vous pouvez exécuter le fichier ou ouvrir le fichier ou le lien. L'ouverture s'effectue grâce à l'association des extensions de fichiers et des applications installées sur l'ordinateur. S'il n'y a pas de chemin d'accès dans le nom du fichier, le fichier est sélectionné avec la recherche du fichier dans le dossier du programme. À l'avenir, il est envisagé de rechercher le fichier également dans le sous-dossier " DFichiers". A l'avenir, il est envisagé de pouvoir mettre les noms de fichiers et les liens entre parenthèses " »Pour exécuter par raccourci clavier sans surligner dans le texte.

    L'utilisateur, utilisant la possibilité de spécifier des fichiers, crée un environnement d'information externe et contextuel à l'algorithme, y compris l'espace Internet.

Instructions au programmeur

    L'utilisateur peut avoir un fichier texte avec des modèles de code de programme dans le langage de programmation sélectionné, le copier dans la fenêtre de message. Sélectionnez un modèle dans la fenêtre de message et utilisez le tampon système pour transférer le texte du modèle vers les textes de l'algorithme.

    L'utilisateur peut paramétrer l'utilisation du fichier batch " Dragon.bat»Lors de l'assemblage du code du programme dans des fichiers de programme dans un langage de programmation. Parallèlement, une liste est constituée fichiers de programme, est transmis au fichier de commandes et le fichier de commandes est lancé pour exécution. Cela permet l'intégration de la programmation avec la traduction et le débogage.

    L'utilisateur peut définir le mode de construction du code du programme avec le remplacement du texte P manquant dans les icônes par un commentaire avec le texte " …… Pas de texte". Cela vous permet de bloquer les messages d'erreur et d'effectuer la traduction dès le début du développement de l'algorithme.

    L'utilisateur peut définir le mode de génération du code du programme avec l'inclusion du code de trace de l'exécution des icônes marquées.

    L'utilisateur peut former le texte de la liste de l'algorithme pour la feuille de dragon. Le texte du listing de l'algorithme permettra au logiciel de comparer les versions de l'algorithme, de trouver les lieux des changements.

    L'utilisateur peut définir la propriété du schéma Silhouette. Machine pour effectuer la programmation automatique de machines à états finis en utilisant la technologie CHANGER... L'opportunité a été introduite à la suggestion de S.D. Efanov.

    Il est recommandé de former des listes Dragon avec des algorithmes et des codes de programme et des listes Dragon avec des instructions pour l'utilisation du logiciel pour les utilisateurs. Les instructions sont envoyées aux utilisateurs avec l'IP Dragon. Cette pratique de travail dans IS Dragon par A.A. Araptanov dans le système 1C.

Le programme dispose d'outils de personnalisation pour divers langages de programmation. Le programme permet d'assembler des schémas Dragon en codes sources de programmes dans des langages ayant des opérateurs : commentaire, étiquette, saut inconditionnel (GOTO), saut par condition ; par exemple, les langages des familles 1C, Delphi, C. L'assemblage du code du programme des icônes dans un fichier est effectué par le traducteur interne de Route.

Économiseur d'écran d'IP Dragon


Qu'est-ce qu'une feuille de dragon ?


    La feuille de dragon s'affiche en mode programmation.

    Les points d'entrée de texte (jusqu'à 4 carrés) sont les textes A, B, S, P.

    Les points A, B servent à saisir les informations d'accompagnement, le point P sert à saisir le code de programme, le point S sert à visualiser le code de programme collecté. Lorsqu'il y a du texte, le carré devient sombre.

    Êtes-vous familier? les emplacements requis pour saisir du texte dans les icônes sont marqués.

Modifier le schéma du dragon

L'icône 3 est sélectionnée pour l'édition.
Signe "?" les icônes Adresse et Branche indiquent l'absence de transfert de contrôle. Le transfert de contrôle est indiqué visuellement par une ligne pointillée.


Caractéristiques du

Une caractéristique distinctive du programme est un degré élevé d'automatisation des entrées graphiques.

La deuxième caractéristique est que chaque icône a plusieurs (jusqu'à 4) niveaux de saisie de texte. L'un de ces niveaux est affiché sur le "corps" de l'icône, l'autre peut contenir un fragment du code du programme. Les niveaux restants (texte A, texte B, texte P, texte S) peuvent être utilisés arbitrairement, par exemple, contenir des commentaires détaillés, des liens et des informations d'accompagnement.

Pour afficher les processus métier, les icônes sont complétées par les noms des participants au processus métier.

Tous les textes affichés peuvent être multilignes et volumineux.
Le nombre maximum de lignes dans une icône est défini dans les paramètres du programme, le texte entier est affiché dans éditeur de texte sur l'onglet.

Description du format DRT

Instructions méthodiques pour travailler avec IS Dragon

Pour imprimer de la manière suivante : enregistrez le fichier graphique, imprimez-le dans PAINT. Il existe des possibilités d'impression avec mise à l'échelle et mise en page sur plusieurs feuilles A4, il existe des paramètres d'impression.

Leçons de DRAGON

Pour maîtriser les techniques de travail avec le programme IP Dragon, il est utile de regarder les vidéos. Le processus est montré depuis le premier lancement de l'éditeur jusqu'au chargement du firmware résultant dans le microprocesseur.

Site supplémentaire du programme "IS Dragon"

Options de texte et fichiers du plan de leçon Dragon

Brouillons de Gennady Tyshov

Les informations d'accompagnement peuvent contenir une indication de documents législatifs, organisationnels et administratifs, contenir des fragments de documents.

La présence d'informations d'accompagnement est importante pour les personnes travaillant avec des algorithmes juridiquement significatifs. La présence d'informations d'accompagnement pour l'icône justifie l'origine et la validité de la norme légale affichée dans l'icône. C'est la présence d'informations d'accompagnement qui détermine la pertinence de l'algorithme Dragon significatif sur le plan juridique.

Le programme IS Dragon est développé sur la base des langages algorithmiques visuels Dragon et Gnome créés par V.D. Parondzhanov et la norme d'État GOST 19.701-90 (ISO 5807-85). Les idées et les objectifs du langage Dragon ont été développés pour une utilisation pratique et généralisée.

Connaissances procédurales, algorithme - décrit l'ordre des actions avec l'objet, affiché dans les schémas Dragon du formulaire Primitif et Silhouette.
Connaissance déclarative- répond à la question : "Qu'est-ce que c'est ?", affiché dans le schéma Dragon du formulaire Gnome.

La création et l'édition des schémas Dragon sont effectuées dans IS Dragon.

Algorithmes Dragon sur tablettes
Certains problèmes d'utilisation des algorithmes Dragon créés dans Dragon IS sont traités sur le forum dans la rubrique "Dragon et Android IS".

IS Dragon fonctionne dans d'autres systèmes d'exploitation
Sur les systèmes d'exploitation de type UNIX, il fonctionne avec le programme Wine.
Fonctionne avec Parallels Desktop sur macOS.

Les actions pour les icônes 19 et 21 sont exécutées par les participants au processus métier.
La feuille de dragon s'affiche en mode programmation.
Les points d'entrée de texte (jusqu'à 4 carrés) sont les textes A, B, S, P : A, B pour saisir les informations d'accompagnement, P pour saisir le code du programme, S pour visualiser le code du programme assemblé. S'il y a du texte, le carré est sombre.
La feuille peut être accompagnée d'en-têtes et de pieds de page : en haut au milieu, en bas à gauche, en bas au milieu, en bas à droite.
Le signe "?" Marque les emplacements obligatoires pour la saisie de texte dans les icônes, les emplacements pour la saisie d'icônes dans le bloc d'icônes pour assurer la fonctionnalité du bloc.

L'histoire de la création du langage DRAGON

Le langage DRAGON a été créé principalement comme un outil qui assure une parfaite compréhension mutuelle entre les personnes. Il est né de la généralisation de l'expérience acquise lors de la conception du vaisseau spatial Bourane.

Le langage graphique DRAGON est spécialement conçu pour transformer un algorithme complexe en une image simple (dragon-diagramme), qui permet une compréhension simple et rapide selon le principe « Il a regardé - et a immédiatement compris » ! Partie 1. DRAGON est né dans le berceau spatial
Partie 2. Le langage DRAGON ouvre la porte au royaume des algorithmes clairs
Partie 3. Le chemin de la sagesse. Langue DRAGON et problèmes fondamentaux de civilisation

Partie 1. Le langage "DRAGON" est né dans un berceau spatial, mais est très vite né de "short space pants"


`` Diapositive 1. Le langage graphique DRAGON est spécialement conçu pour transformer un algorithme complexe en une image simple (dragon-diagramme), offrant une compréhension rapide et facile selon le principe de « Il a regardé - et a immédiatement compris » ! ''

Nikolay Pilyugin et son idée originale.

Les origines du "dragon"

Le langage DRAGON a été développé conjointement par l'Agence spatiale russe (Centre scientifique et de production pour l'automatisation et l'instrumentation du nom de l'académicien N.A. Pilyugin, Moscou) et l'Académie russe des sciences (Institut de mathématiques appliquées du nom de l'académicien M.V. Keldysh, Moscou).

L'académicien Nikolai Pilyugin (1908-1982) - le fondateur de systèmes de contrôle autonomes (entièrement automatiques) pour les systèmes de fusées et spatiaux. En tant que l'un des pionniers de la cosmonautique, il a créé le premier institut de notre pays à développer des systèmes de contrôle autonomes pour les lanceurs, les boosters et autres objets spatiaux.

A l'un des anniversaires du chef, les lignes qui lui sont dédiées sonnaient :

La fusée est comme une chèvre aveugle !

Pour qu'il y ait à la fois du sens et de la brillance,

Une fusée a besoin d'yeux

Et le plus important, c'est le cerveau !

Et tu es parmi les soucis et le bruit éternels,

Comme la mère enseigne au premier-né,

Ils ont appris aux fusées à regarder et à penser

Et cela signifie voler!

Le lancement du premier satellite en 1957 a choqué le monde et a surpris les Américains. Le vol de Youri Gagarine en 1961 fut un triomphe pour la science soviétique. Les projets fantastiques du héros national de l'URSS - le légendaire designer Sergueï Korolev - se sont réalisés et se sont réalisés. Le soutien intellectuel de ses projets audacieux a été fourni par le "système nerveux" de la fusée - le système de contrôle embarqué créé par Nikolai Pilyugin.

En phase avec son temps, Pilyugin a transféré le système de contrôle de la technologie analogique au numérique. Cela nécessitait le développement de puissants systèmes informatiques embarqués et de technologies de programmation sophistiquées.

Bientôt, un obstacle inattendu a été découvert - le facteur humain est intervenu. Plus les systèmes spatiaux devenaient complexes, plus le besoin d'une parfaite compréhension mutuelle entre les développeurs était grand. Le manque de compréhension mutuelle a douloureusement affecté l'avancement des grands projets de missiles. Le problème de la compréhension mutuelle a été particulièrement aigu lors de la création du complexe spatial Energia-Buran.

Pour l'avenir, disons que le langage DRAGON a été créé principalement comme un outil qui assure une parfaite compréhension mutuelle entre les personnes. Il est né de la généralisation de l'expérience acquise lors de la conception du vaisseau spatial Bourane.

`Diapositive 2. Navette spatiale américaine et Bourane soviétique - projets spatiaux super complexes. Ils ont stimulé la recherche créative dans de nombreux domaines de la science et des hautes technologies, en particulier dans le domaine de la création de nouveaux langages algorithmiques. Dans notre pays, le résultat final de ces efforts a été la langue DRAGON, qui est très vite née de "short space pants". Aujourd'hui DRAGON est un outil puissant pour améliorer le travail de l'esprit, adapté à la description de la structure de l'activité humaine et des algorithmes. ''

Qu'est-ce qui est intelligent

compréhension?

La civilisation moderne est impensable sans recherche et développement à grande échelle. Les projets deviennent de plus en plus complexes et grandioses. Des exemples de grands projets sont la navette spatiale et le vaisseau spatial Bourane, les centrales nucléaires et les usines chimiques. La recherche scientifique en physique théorique, biologie, médecine, etc. devient de plus en plus compliquée. Dans tout cas similaires la question se pose : comment parvenir à une compréhension mutuelle entre les co-exécuteurs de l'œuvre ?

La difficulté est que chaque chercheur et développeur, chaque participant à une cause commune ne connaît que bien son propre domaine de travail, relativement petit (en taille), bien que très complexe (en termes de profondeur des idées). Et il a une idée assez vague de ce qui se passe avec les voisins. D'où des malentendus mutuels, des divergences et des erreurs au niveau des articulations.

Il est logique de se demander : quelle est la cause du problème ? Est-ce que des ressources trop importantes (humaines, matérielles, financières et de temps) doivent être dépensées pour assurer une interaction efficace des spécialistes participant au travail commun ? Pourquoi les grandes activités de recherche et développement s'éternisent-elles souvent pendant des mois, voire des années ?

Les développeurs de l'orbiteur Bourane ont été confrontés à des problèmes similaires ou à peu près identiques. L'expérience de Bourane montre que la question de la compréhension mutuelle intellectuelle des spécialistes joue souvent un rôle clé, fondamental et détermine en grande partie le succès d'une entreprise. Lors de la création du complexe le plus complexe de programmes embarqués et au sol de Bourane, il faut démêler un enchevêtrement ingénieux de problèmes totalement enchevêtrés. Par conséquent, toute une armée de spécialistes de différentes professions provenant de nombreuses organisations différentes entre dans la bataille. Au stade initial du travail, ces personnes se comprennent très mal. C'est précisément le cas lorsque la complexité prohibitive du problème et la spécialisation étroite qui lui est associée conduisent à un drôle, mais hélas, un vrai paradoxe, lorsque les "spécialistes du lavement" ne comprennent pas les "spécialistes des pourboires".

Néanmoins, les algorithmes qu'ils créent, qui rappellent davantage le chaos algorithmique primitif, déchiré par la foudre de divergences flagrantes, devraient finalement se transformer en un seul motif en filigrane qui contrôle le Bourane avec une précision et une fiabilité fabuleuses.

Ainsi, le problème est aussi vieux que le monde. Pour éviter le triste sort des bâtisseurs de la Tour de Babel, les participants à un projet complexe doivent apprendre à très bien se comprendre. Sinon, de nombreuses erreurs « aux coutures » peuvent entraver le succès du développement.


`` Diapositive 3. La compréhension doit être considérée comme un travail. Il est nécessaire d'augmenter drastiquement la productivité de ce travail (peut-être d'un ordre de grandeur). C'est cette tâche que DRAGON résout. ''

Comment a commencé l'histoire du « dragon » ?

En 1982, Yuri Trunov, chef du département intégré du centre Pilyugin (aujourd'hui - concepteur général) a été nommé responsable du développement intégré du système de contrôle de Bourane. Trunov a bien compris que le développement de Bourane serait impossible sans des langages algorithmiques efficaces de haut niveau.

À son initiative - en collaboration avec l'Institut de mathématiques appliquées de l'Académie des sciences de l'URSS - trois langues ont été créées : PROL2 (pour le développement de programmes Bourane complexes embarqués), DIPOL (pour la création de programmes Bourane au sol) et LAX (pour la modélisation). Le travail a été réalisé par trois équipes de programmeurs sous la direction de Viktor Kryukov, Vladimir Lutsikovich et Konstantin Fedorov. C'était, pour ainsi dire, l'arrière-plan du DRAGON.

Bien que les langues aient réussi à résoudre ces problèmes, il est devenu clair que la spécialisation étroite des langues gênait. À cet égard, en 1986, Yuri Trunov a convoqué le chef du laboratoire de développement complexe. système informatique Burana Vladimir Parondzhanov et lui a demandé de créer un langage universel qui puisse remplacer les trois ci-dessus.

Exigences humanitaires pour la langue Dragon

Cependant, Parondzhanov a décidé de poser le problème différemment. Il pensait que le nouveau langage devrait non seulement satisfaire les besoins pratiques de la technologie spatiale, mais aussi résoudre un très large éventail de problèmes qui dépassent de loin le cadre de la programmation traditionnelle.

A cet égard, lors de la création du langage DRAGON, des impératifs humanitaires, inhabituels pour les programmeurs, les mathématiciens et les « techniciens », ont été mis en avant.

1. Améliorer le fonctionnement de l'esprit humain.

2. Suggérer des moyens efficaces pour décrire la structure de l'activité humaine.

3. Fournir à une personne des moyens linguistiques qui simplifient grandement la perception de problèmes de procédure complexes et la communication avec les collègues, rendent l'incompréhensible compréhensible et, de ce fait, forcent littéralement la personne à penser clairement, profondément et de manière productive. Dans ces conditions, la probabilité d'idées fausses, d'erreurs de calcul et d'erreurs diminue inévitablement et la productivité augmente.

4. Faciliter radicalement la communication intersectorielle et interdisciplinaire entre les représentants des différentes organisations, départements, départements, laboratoires, écoles scientifiques et professions.

5. Éliminer ou réduire les barrières d'incompréhension mutuelle entre les travailleurs de diverses spécialités (médecins et physiciens, mathématiciens et concepteurs, biologistes et économistes, etc.), ainsi que les programmeurs et ceux qui sont allergiques à toute programmation.

6. Obtenir une amélioration radicale de la qualité des logiciels selon le critère de « compréhension des algorithmes et des programmes ».

`` Diapositive 4. De nombreux programmeurs se plaignent de comprendre à peine leur propre programme en six mois, voire en un mois. Et si on parlait du programme de quelqu'un d'autre ? Ensuite, cela devient très difficile. Il est souvent plus facile d'écrire son propre programme que de comprendre ce que fait quelqu'un d'autre. Ainsi, parmi les exigences des langages algorithmiques modernes, la compréhensibilité est de plus en plus mise en avant. Ce dernier est défini comme la propriété d'un programme de minimiser l'effort intellectuel requis pour le comprendre. Le langage DRAGON est conçu pour fournir la meilleure compréhension possible des algorithmes et des programmes. Selon les développeurs, il peut devenir le "champion du monde" parmi les langages algorithmiques selon ce critère. ''

Fondements scientifiques de la langue Dragon

DRAGON a une base scientifique fondamentalement nouvelle. Il s'appuie sur le théorème classique d'Ashcroft-Manna « à l'envers ». Vladimir Parondzhanov a prouvé que la syntaxe graphique du langage DRAGON est un calcul logique graphique ("le calcul des icônes").

Cependant, ce n'est pas le point principal. Toute langue a l'une ou l'autre saveur mathématique. La rigueur mathématique est un must pour les concepteurs de langages. Vous ne surprendrez donc personne avec les mathématiques ces jours-ci.

La caractéristique fondamentale du DRAGON qui le distingue de tous les langages connus est qu'il possède non seulement une base mathématique, mais aussi une base cognitive et ergonomique fiable. Le mérite de Parondzhanov est d'avoir montré pour la première fois :

Pour créer bonne langue les mathématiques seules ne suffisent pas ;

Il faut y ajouter les notions d'ergonomie cognitive ;

La fusion solide des mathématiques et de l'ergonomie permet d'obtenir un niveau de langage algorithmique qualitativement nouveau, auquel on n'aurait jamais pu rêver auparavant.

Partant de ces considérations, Parondzhanov a proposé de fonder le langage DRAGON sur les méthodes de formalisation cognitivo-ergonomie des savoirs professionnels.

`` Diapositive 5. La compréhension des algorithmes et des processus de travail complexes peut être grandement facilitée si vous utilisez le langage DRAGON pour les décrire. L'ergonomie est la science des facteurs humains. L'ergonomie cognitive aide à créer des formes visuelles fondamentalement nouvelles de présentation des connaissances professionnelles qui créent un confort intellectuel maximal pour les yeux et le cerveau. ''

Diapositive 6. Le langage DRAGON offre une clarté exceptionnelle et une clarté sans précédent des algorithmes. Dans ces conditions, la probabilité d'erreurs algorithmiques latentes et les troubles et accidents qu'elles provoquent diminuent de nombreuses fois. Au sens figuré, l'erreur cachée dans l'algorithme semble jaillir du dessin algorithmique (diagramme-dragon), frappe le développeur dans le nez et crie d'une voix tonitruante : « Remarquez-moi !

Qui a développé le logiciel Dragon System ?

Développant les idées de Viktor Kryukov et Vladimir Lutsikovich (Institut de mathématiques appliquées), le personnel du Centre Pilyugin a commencé à développer des traducteurs et d'autres programmes du système DRAGON. Le travail a été effectué dans le département de Konstantin Fedorov. La plus grande contribution créative a été apportée par le chef du laboratoire de programmation système Vladislav Baltrushaitis, ainsi que par Sergey Kashinsky, Alexander Semenov et d'autres.

Le développement s'est déroulé dans une atmosphère de désaccord aigu. Des personnalités créatives exceptionnelles se sont réunies sous un même toit, et chacune avait son propre point de vue sur la nature de la future langue et la voie de son développement. La polémique a fait rage jusqu'à minuit. Bien qu'il ne s'agisse pas d'un assaut, le blasphème a fait trembler le bâtiment. Il est possible que ce fut le développement le plus scandaleux d'un langage algorithmique dans toute l'histoire de telles œuvres.

Heureusement, de violentes escarmouches verbales et des scandales assourdissants n'ont pas entravé le déroulement des travaux. De plus, ils ont paradoxalement contribué à la naissance de nouvelles idées et découvertes. Cependant, ce n'est pas surprenant - la vérité naît dans les conflits !

`` Diapositive 7. Le langage Dragon est universel et peut être utilisé dans n'importe quel domaine de l'activité humaine, par exemple en médecine. La diapositive montre l'algorithme médical "Premiers secours pour une brûlure chimique de l'œil avec un liquide", écrit en langage DRAGON. Cet algorithme est intéressant en ce qu'il ne nécessite pas de diffusion. Devant nous se trouve une instruction pour un médecin de famille (médecin généraliste) qui doit prodiguer les premiers soins pour une brûlure chimique de l'œil. Parler de diffusion dans ce cas n'a pas de sens. Jusqu'à présent, les programmeurs et les mathématiciens ont ignoré de telles instructions - ce ne sont, disent-ils, pas des algorithmes. Du point de vue de la philosophie du langage DRAGON, la situation est différente. Il convient de considérer ces instructions comme des algorithmes non classiques (qui nécessitent une formalisation ergonomique). La nouveauté fondamentale de DRAGON est qu'il fournit des outils de visualisation standard pour les algorithmes classiques (lorsque la diffusion est nécessaire) et les algorithmes non classiques (lorsque la diffusion n'est pas nécessaire). ''

Divisé dans le camp des développeurs "dragons"

Pendant ce temps, la tension montait. Les divergences idéologiques ont atteint une acuité sans précédent et ont conduit à une scission. Le groupe de « dissidents » était dirigé par Gennady Gulenkov (Centre Pilyuginsky) et Leonid Eisymont (Institut de mathématiques appliquées). Avec eux ont travaillé le chef du secteur Vladimir Gora, Lyudmila Vlasova, Sergey Shcherbakov, Larisa Tyurina, Alexander Kopylov, Viktor Mironov, Alexander Rusanov, Sergey Shmakov et d'autres.

Quelle est l'essence du désaccord? Le groupe Fedorov – Baltrushaitis a défendu une version simplifiée du langage DRAGON (qui s'appelait Graphite).

Le groupe « dissident » de Gulenkov-Eisymont (soutenu par l'un des dirigeants du Centre Pilyugin, Vladimir Morozov) a défendu le projet DRAGON grandeur nature. Cette option était sans doute plus prometteuse.

L'effondrement de l'URSS a coupé les ailes du dragon

Malheureusement, les « dissidents » ont subi une catastrophe. C'est à ce moment que l'une des plus grandes puissances du monde (l'URSS) s'effondre. L'économie de la nouvelle Russie était en ruines. Après le premier vol brillant de Bourane, les événements prennent une tournure inattendue. À la veille de la pleine préparation pour le deuxième vol, un ordre tragique est venu d'en haut : « Annulez le vol ! En raison du manque d'argent, tous les travaux sur le projet Bourane-Energia ont d'abord été mis en veilleuse, puis complètement arrêtés. Toujours et à jamais. Toujours.

Le financement de la recherche spatiale dans la nouvelle Russie est tombé à presque zéro. La coopération la plus étroite entre le Centre Pilyugin et l'Institut de mathématiques appliquées de l'Académie des sciences de Russie, qui était en construction depuis des décennies, a été presque complètement détruite. Il convient de rappeler que pendant de nombreuses années, l'entreprise de Pilyugin a été une source de financement fiable pour l'Institut de mathématiques appliquées, recevant en retour des services et des développements intellectuels inestimables.

Mais maintenant c'est fini. Le robinet d'argent était fermé. Le Centre Pilyuginsky a failli faire faillite. Il ne pouvait plus nourrir l'Institut de Mathématiques. En conséquence, un groupe de programmeurs Leonid Eisymont (IPM) s'est retrouvé sans moyens de subsistance. Et elle a été forcée d'arrêter de travailler sur le DRAGON, passant à des clients payants.

`` Slide 8. L'arrêt des travaux sur Bourane a frappé fort
par les développeurs du DRAGON. La situation est devenue critique. ''

Le dragon renaît de ses cendres comme un phénix

Cependant, chaque nuage a une doublure argentée. Au cours de cette période, Vladimir Morozov est devenu le chef de la subdivision intégrée du Centre Pilyugin. Il a nommé le leader énergique German Kostochkin à la tête du département de programmation. Les travaux sur la création du logiciel DRAGON ont rapidement pris de l'ampleur. Laissés sans l'aide de l'Institut de mathématiques appliquées, Vladislav Baltrushaitis et son équipe ont décidé de conquérir le sommet par eux-mêmes. C'était incroyablement difficile. Mais ils ont fait l'impossible.

En 1998, tous les travaux de programmation du système étaient terminés. Sur la base de DRAGON, une technologie de conception automatisée a été construite systèmes logiciels(technologie CASE) sous le titre provisoire "Graphite-Phlox". La technologie DRAGON comprend un vaste complexe outils logiciels: éditeur procédural, éditeur déclaratif, base de données, traducteur, analyseur, générateur de code, etc.

Diapositive 9. L'algorithme "Premiers secours pour une brûlure chimique d'un œil avec un liquide" se compose de trois branches. Une branche est la plus grande construction algorithmique du langage DRAGON. Il n'a pas d'analogues dans d'autres langues. La branche fournit une structuration très pratique et visuelle de l'algorithme.

(Nous continuons d'examiner l'algorithme médical pour démontrer la capacité de DRAGON à décrire des algorithmes et des connaissances procédurales dans n'importe quel domaine professionnel, pas seulement l'astronautique.)





Le baptême du feu du dragon

Le développement du DRAGON a duré une quinzaine d'années. Des éléments séparés de la technologie du dragon étaient déjà utilisés sur Bourane. Mais c'était surtout un DRAGON "de papier". Les algorithmes ont été écrits sur papier sous forme de schémas-dragons, et la programmation a été réalisée dans les langages PROL2, DIPOL et LAX.

Pour la première fois, la technologie du dragon automatique a été testée dans le développement de logiciels pour des tests autonomes et complexes du projet spatial international Sea Launch.

Les États-Unis, la Norvège, la Russie et l'Ukraine ont participé au projet. Les missiles ont été lancés depuis une plate-forme de lancement flottante située à l'équateur dans la partie ouest de l'océan Pacifique dans la région des îles Kiribati. Le lancement a été contrôlé à partir d'un navire d'assemblage et de commandement situé à proximité. Pour chaque lancement, la plate-forme de lancement et le navire d'assemblage et de commandement ont effectué un voyage en mer depuis une base située sur la côte ouest des États-Unis jusqu'aux îles de Kiribati, puis sont revenus.

Les résultats de l'utilisation de la technologie du dragon ont été brillants. Ils ont dépassé toutes les attentes.

Après cela, la technologie du dragon a été utilisée dans le projet spatial russo-français Fregat, ainsi que dans la modernisation du lanceur Proton-M. Étant donné que les résultats étaient constamment élevés, la direction du Centre Pilyugin a décidé d'utiliser la technologie du dragon dans tous les projets ultérieurs.

`` Diapositive 13. Alphabet graphique du langage DRAGON. Il ne contient que vingt-trois éléments graphiques (23 icônes). Cependant, ce montant est tout à fait suffisant pour afficher des connaissances professionnelles procédurales et des algorithmes liés à tout domaine d'activité professionnelle sous la forme d'un dessin visuel. ''

QUEL est le point fort du DRAGON ?

L'inconvénient de l'approche traditionnelle est que les créateurs de langues et systèmes informatiques souvent, ils commencent à travailler du mauvais côté et mettent la charrette devant le cheval. Comme le souligne le psychologue Donald Norman, ils « commencent trop souvent par une voiture, et ne pensent qu'à une personne à la fin, quand il est trop tard ».

Pour éviter de telles erreurs, une approche complètement différente a été choisie lors du développement du langage DRAGON. Un objectif stratégique a été annoncé : créer les conditions les plus confortables pour le travail de l'intelligence humaine, offrir les meilleures opportunités pour accroître l'efficacité de l'intelligence collective des spécialistes.

Conformément à ce paramètre de programme, la tâche a été fixée : créer un langage public extrêmement facile à apprendre et pratique à utiliser, qui permette de résoudre des problèmes algorithmiques au prix d'un effort intellectuel minimal. Un langage qui, de par son orientation initiale vers une personne, pourrait devenir véritablement « populaire », c'est-à-dire « natif » pour les spécialistes de pratiquement tous les profils (et pas seulement les programmeurs).

Grâce à cela, le DRAGON est en mesure de jouer le rôle de "la langue espéranto pour le monde des affaires". La compréhension mutuelle des professionnels peut être considérablement améliorée si des représentants de différentes spécialités affichent leurs connaissances procédurales dans le langage DRAGON.

programmation sans programmeurs

DRAGON - très langue facile... Si facile que le développement de nombreux logiciels d'ordinateur pour les fusées spatiales, en pratique, ce ne sont pas des programmeurs qui le conduisent, mais des spécialistes ordinaires (spécialistes complexes). Ils fonctionnent sur le principe de la "programmation sans programmeurs".

La raison du rejet des programmeurs est simple. Lors de la résolution de problèmes pratiques appliqués, les spécialistes ont une connaissance approfondie du matériel et sont bien conscients de la définition du problème. En revanche, les programmeurs ne connaissent pas la "physique du processus" et deviennent " personnes inutiles", sans quoi il est tout à fait possible de faire.

Cela vous permet de réduire considérablement les coûts, d'améliorer le rapport coût-bénéfice et d'accélérer l'avancement des travaux. Et débarrassez-vous complètement des erreurs "téléphone endommagé" causées par une incompréhension mutuelle entre PROGRAMMEURS et SPÉCIALISTES.

`` Diapositive 14. Nous percevons la figure humaine simultanément, c'est-à-dire instantanément, complètement et très rapidement. Notre cerveau possède des mécanismes neuronaux qui fournissent cette perception. Les mêmes mécanismes sont utilisés dans la perception des schémas du dragon. ''

`` Diapositive 15. Le diagramme du dragon est quelque peu similaire à la figure d'un homme. Elle a également un chapeau sur le dessus et des "bottes" sur le bas. La seule différence est que les "chaussures" ont un nom différent - "adresses" ''

`` Diapositive 16. Le capuchon du dragon-diagramme est un outil extrêmement efficace qui fournit la structuration du dragon-diagramme et la division de l'algorithme en parties sémantiques - branches. Une astuce ergonomique consiste dans le fait que le chapeau, devinant le désir secret du lecteur, lui donne un indice puissant - la réponse à toutes les questions "royales". Voici les réponses pour l'algorithme médical. ''

Quel est le nom de la tâche ? (On lit le titre de l'algorithme). Premiers secours pour les brûlures oculaires chimiques avec du liquide.

De combien de parties se compose-t-il ? (On compte les icônes "Nom de la succursale"). Sur trois.

Quel est le nom de chaque partie ? (Nous lisons le texte dans les icônes "Nom de la succursale"). 1. Rincer les yeux avec de l'eau. 2. Rincer l'œil avec un neutralisant. 3. Traitement médicinal.

Une commodité ergonomique supplémentaire est associée au fait que le capuchon occupe une place «cérémoniale» dans la partie supérieure du dessin et que les noms des parties sémantiques sont placés à l'intérieur de cadres spéciaux de forme unique, faciles à trouver en un coup d'œil. . Grâce à cela, la casquette attire instantanément l'attention du lecteur sans aucun effort de sa part. Ceci est très important, car le lecteur n'a pas à parcourir les recoins sombres de l'algorithme, en essayant de trouver les informations nécessaires.

En conséquence, DRAGON offre au lecteur une méthode en trois étapes ergonomiquement efficace pour apprendre une langue inconnue ou problème oublié... À la première étape, en analysant l'en-tête, le lecteur apprend le but de l'algorithme et sa division en parties sémantiques (branches). Sur le second, il effectue une analyse approfondie de chaque branche. Sur le troisième, il analyse l'interaction des branches.

Le dragon a complètement changé l'interaction des développeurs et programmeurs complexes

Auparavant, le travail était organisé ainsi. L'opérateur du complexe a remis un document papier au service de programmation - les données initiales pour le développement des programmes et l'a coordonné avec le programmeur. Ensuite, le programmeur a développé le programme sur la base de ce document.

Sur le stand complexe, il s'est généralement avéré que le programme ne fonctionnait pas correctement. Qui a fait l'erreur : un ingénieur complexe ou un programmeur ? Pour le savoir, reportez-vous au document - les données initiales pour le développement du programme. C'est là que la scène silencieuse apparaît. Il s'avère que le document ne dit rien à ce sujet. Ou c'est écrit de manière si maladroite et ambiguë qu'il est possible de comprendre ceci et cela.

Ainsi, le document spécifié ne remplit pas sa fonction principale et ne permet pas de répondre à la question : qui est responsable de l'erreur. Un tel système de travail, qui est fondamentalement défectueux, conduit à l'irresponsabilité, à un énorme flux d'erreurs et à une mauvaise qualité du travail.

DRAGON supprime de manière décisive cet outrage. Lors du passage à la technologie dragon, le scientifique complexe met à sa disposition un outil informatique - un éditeur graphique de dragon. Avec son aide, il projette (dessine) un dragon-diagramme sur l'écran de l'ordinateur. Ce dernier est automatiquement converti en un algorithme mathématiquement précis.

Dans ce cas, le document papier (données initiales pour l'élaboration du programme) n'est plus utilisé. Le complexiste envoie au département de programmation non pas un "papier sale et confus", mais une disquette avec un algorithme qu'il (le complexiste) a développé lui-même, de ses propres mains - sans l'aide de programmeurs.

Après avoir reçu une disquette, le service de programmation traduit automatiquement le code et reçoit finalement le module objet du programme. Ce dernier est chargé dans l'ordinateur de bord ou au sol du complexe de missiles.

Grâce au DRAGON, le spécialiste du complexe a reçu une opportunité précieuse, au prix d'un effort minimal, de développer et d'analyser de manière autonome son algorithme dans tous les détails, c'est-à-dire de formaliser ses connaissances professionnelles.

Ainsi, lors de l'utilisation du DRAGON, le principe sage est réalisé : celui qui possède la connaissance doit la formaliser... La connaissance de la physique et du fonctionnement du complexe de missiles est détenue par un spécialiste du complexe, et non par un programmeur. Par conséquent, le complexiste doit formaliser ses connaissances. Dans ce cas, le jeu sans fin du "téléphone gâté" entre l'ingénieur complexe et le programmeur est complètement exclu.

Les résultats de l'introduction de la technologie des dragons ont été immédiats. Auparavant, le complexiste comprenait la partie algorithmique de son travail de manière relativement superficielle, voire superficielle. Maintenant - grâce au travail sur ordinateur avec un éditeur de dragon et une impression instantanée des résultats pour plus Revue complète- il a commencé à la comprendre dans les moindres détails. Parce que le diagramme du dragon lui montre ses propres pensées - l'algorithme développé - sous une forme visuelle, compréhensible et distincte.

En conséquence, la profondeur de l'élaboration intellectuelle de l'algorithme a considérablement augmenté. La qualité du travail s'est améliorée d'un ordre de grandeur. La productivité du travail a augmenté.

De Pascal à Dragon

À un moment donné, Niklaus Wirth, l'auteur du langage Pascal, a déclaré que Pascal devrait être le tout premier langage à partir duquel commencer à apprendre la programmation. Ce point de vue est devenu généralement accepté.

A cette époque, les programmes étaient écrits sous forme de texte. Pour la programmation textuelle, Pascal était en effet le meilleur langage d'enseignement.

Cependant, aujourd'hui, la situation a changé. L'avenir appartient aux langages visuels et graphiques. Dans ces conditions, "le grand-père Pascal" a perdu sa gloire d'antan d'"excellent outil pédagogique".

Aujourd'hui ce rôle est transféré au langage graphique DRAGON. C'est DRAGON qui devient le langage le plus simple et le plus logiquement harmonieux à partir duquel commencer à apprendre les algorithmes et la programmation.

La langue du dragon et le système éducatif

Il a déjà été dit que l'utilité pratique du DRAGON était très appréciée. Le ministère de l'Éducation a inclus l'étude de la langue DRAGON dans le programme d'informatique de l'enseignement supérieur (voir: " Exemple de programme discipline " Informatique ". Édition officielle. - M. : Goskomvuz, 1996".

La préparation des manuels pédagogiques pour les écoles secondaires et supérieures est en cours. Le premier d'entre eux a déjà été publié - un jeu Didacticiel pour les enfants d'âge scolaire primaire et secondaire : voir « V.D. Parondjanov. Informatique divertissante : Le Dragon Magique en visite à Murzik. - M. : Rosmen, 1998, 2000.160s. 200 illustrations".

`` Diapositive 18. Le langage DRAGON utilise deux concepts très pratiques, mais inhabituels. Une brochette est une ligne verticale reliant le début et la fin de l'algorithme (ou branche). La route principale est le chemin du début à la fin de l'algorithme qui mène au plus grand succès. ''

La règle est la suivante : la route principale de l'algorithme doit être sur la brochette. Cela signifie que la route "royale" ne peut pas être quelque part à la périphérie du schéma du dragon, où elle ne peut pas être trouvée avec du feu pendant la journée. Non, il devrait toujours être à la place "la plus honorable" - à l'extrême gauche verticale. Le respect de cette règle rend le diagramme visuellement ordonné, prévisible et intuitivement clair.

`` Diapositive 19. D'un point de vue logique, les deux algorithmes sont équivalents. Mais d'un point de vue ergonomique, le schéma de gauche est meilleur, car la route principale n'a pas de plis. ''

`` Diapositive 20. Le diagramme Dragon est ordonné de gauche à droite.
selon le principe : "Le plus à droite, le pire". ''

Slide 21. Une formule mathématique graphique justifiant l'opération "Castling". Il sert de justification mathématique aux deux règles énoncées ci-dessus : ''

La route principale doit être embrochée (voir diapo 19, à gauche).

Les routes secondaires sont tracées à droite de la principale selon le principe : « Plus à droite, pire » (voir slide 20).

Partie 2

LE LANGAGE DRAGON OUVRE LE GUICHET DANS LE DOMAINE DE LA COMPRÉHENSION DES ALGORITHMES

critère de compréhension ultra-élevé

La principale exigence du langage DRAGON est d'améliorer la compréhension mutuelle entre les personnes, de faciliter le travail mental complexe et d'améliorer la compréhension des algorithmes. Pour indiquer cette exigence, le concept de "critère de très haute compréhension" est introduit.

On considère qu'une langue répond à ce critère si les plans, algorithmes et processus qui y sont écrits ont la plus haute qualité cognitive et ergonomique.

algorithmes ergonomiques

On peut le dire autrement. Le critère de compréhension ultra-élevé exige que la forme d'écriture des algorithmes soit aussi pratique que possible et permette à une personne de lire n'importe quel algorithme avec une « faisance intellectuelle extraordinaire ».

Pour créer une telle facilité, nous avons besoin de nouvelles règles, franchement, inhabituelles pour les mathématiciens, mais compréhensibles "pour les gens" pour écrire des algorithmes.

Algorithme ergonomique - Algorithme qui répond au critère de compréhension ultra-élevé. L'avantage des algorithmes ergonomiques est qu'ils sont beaucoup plus clairs, plus clairs, plus clairs et plus intelligibles que les classiques. Si l'algorithme est incompréhensible, il est difficile voire impossible de remarquer l'erreur cachée qu'il contient. Inversement, plus l'algorithme est clair, plus il est facile de trouver le défaut. Par conséquent, l'algorithme plus compréhensible et ergonomique est bien meilleur que l'habituel. Mieux dans le sens où cela permet de repérer plus facilement les erreurs, ce qui est très important. Après tout, plus les erreurs peuvent être détectées lors de l'inspection visuelle, plus il est probable que l'algorithme nouvellement créé sera correct, sans erreur et fiable. De plus, les algorithmes ergonomiques sont faciles à apprendre et plus faciles à expliquer à une autre personne.

L'ère des algorithmes clairs

La pratique de la conception et de l'exploitation du langage DRAGON suggère que l'objectif stratégique déclaré ci-dessus - la construction d'algorithmes adaptés pour résoudre le problème de la compréhension et de la compréhension mutuelle - est tout à fait réalisable. Si cela est vrai, alors nous sommes à l'aube d'une nouvelle ère - l'ère des algorithmes compréhensibles.

Pour la première fois dans l'histoire, partout dans le monde, des algorithmes complexes deviendront faciles à comprendre ! Cela signifie que le rêve chéri des mathématiciens et des programmeurs les plus clairvoyants sera réalisé. Au lieu de l'actuelle jungle algorithmique « ahurissante » partout, « des descriptions incroyablement visuelles des algorithmes et des processus » brilleront d'une lumière magique. Avant que nos yeux admiratifs ne s'ouvrent nouveau monde- le monde des algorithmes conviviaux, dans lequel règneront une facilité et une profondeur de compréhension extraordinaires.

On espère que le développement ultérieur de la théorie et de la pratique de l'ergonomie des algorithmes aura des conséquences importantes. Il y a lieu de croire que l'utilisation massive du langage DRAGON ouvrira la voie à une alphabétisation algorithmique universelle (dans les limites dans lesquelles une telle tâche peut en principe être résolue).

`` Diapositive 23. Deux formules logiques équivalentes. Sur la gauche se trouve une formule textuelle traditionnelle (schéma OU), compréhensible par un cercle restreint de mathématiciens et de programmeurs. ''

A droite se trouve une formule graphique "démocratique" (schéma graphique "OU"), écrite en langage DRAGON. C'est compréhensible pour un cercle beaucoup plus large de travailleurs. Comme le montre la pratique, la formule de la main droite est disponible même pour les personnes qui rencontrent d'énormes difficultés lorsqu'elles travaillent avec une formule complexe de la main gauche.

Il faut le souligner : le DRAGON n'interdit pas de travailler avec la formule de gauche. Mais pour ceux pour qui c'est difficile, il propose une option plus humaine et plus facile.

`` Diapositive 24. Deux formules logiques équivalentes. A gauche - la formule traditionnelle (schéma « I »), qui n'est pas claire pour tout le monde. '

La formule de droite (graphique "I"), écrite en langage DRAGON, est beaucoup plus facile à comprendre. Cela devient encore plus clair si vous remplacez les lettres abstraites A, B, C, F par des concepts de production spécifiques. Par example:

A = taux d'alimentation en carburant C = taux d'alimentation électrique ;

B = taux d'allumage F = allumer le moteur.

Partie 3

Le chemin de la sagesse

Langue DRAGON et problèmes fondamentaux de civilisation

que nous réserve l'avenir ?

Au cours des cent dernières années, la situation sur la planète a radicalement changé. Les choses vont pire que prévu. Problèmes mondiaux intensifier. Les tentatives pour les surmonter ne mènent pas à un succès tangible. L'incapacité de l'esprit humain à trouver une solution à de nombreux problèmes brûlants de notre temps devient de plus en plus évidente.

Ces derniers incluent les malheurs bien connus de la civilisation terrestre : conflits militaires continus, dépenses militaires énormes, prolifération des armes nucléaires, terrorisme international, crime, surpopulation, pauvreté, explosions sociales et extrémisme religieux. A cela s'ajoutent les atteintes environnementales : pollution, amincissement de la couche d'ozone, épuisement des ressources, processus dangereux dans la biosphère, augmentation des concentrations de gaz à effet de serre, réchauffement climatique et possible élévation du niveau des océans. Et n'oubliez pas le danger des astéroïdes, c'est-à-dire la possibilité d'une collision de la Terre avec un corps cosmique fou.

Pour résoudre ces problèmes, des mesures sans précédent sont nécessaires. Pour la première fois dans l'histoire, l'intellect devient l'outil principal des efforts conscients pour sauver le monde. Sans l'intervention active de l'esprit, il sera difficilement possible de démêler cet enchevêtrement de problèmes dans un délai acceptable. En même temps, force est de constater que l'intelligence actuelle de l'humanité est trop faible et manifestement insuffisante pour résoudre des problèmes aussi complexes.

La faiblesse de l'intellect conduit au fait que la situation devient souvent incontrôlable, provoquant de graves conséquences négatives de nature locale ou globale. Comme des lumières menaçantes qui illuminent le globe, des catastrophes, grandes et petites, des guerres et d'autres catastrophes que l'esprit ne peut pas prévoir et prévenir éclatent partout. Ainsi, le coût des erreurs, de l'inaction et de la faiblesse de l'intellect est devenu inacceptablement élevé. D'où les conclusions :

Il est nécessaire d'améliorer l'intelligence, c'est-à-dire améliorer l'activité intellectuelle dans les domaines de la science, de la technologie, des affaires, de l'éducation, de la politique, de l'économie et d'autres domaines importants.

Nous devons créer de nouveaux moyens et outils intellectuels plus efficaces qui peuvent rendre l'intelligence collective de l'humanité plus puissante et efficace.

En analysant l'histoire de la civilisation, on peut distinguer un long processus de développement intellectuel de l'humanité. Les gens ont longtemps cherché à améliorer leurs outils intellectuels afin d'étendre les limites du pouvoir de la pensée.

Jusqu'à récemment, ce processus était spontané, lent et peu efficace. Mais aujourd'hui, la donne a changé. Il est devenu possible de prendre le contrôle de cet important processus, d'étudier ses caractéristiques, d'en comprendre les modèles et d'apprendre à le gérer. Le but de la gestion est d'augmenter la productivité intellectuelle de l'humanité.

Il sera montré ci-dessous que le langage DRAGON, qui dès le début a été conçu comme un moyen d'améliorer le travail de l'esprit, peut servir d'exemple d'une approche consciente et efficace pour résoudre une tâche donnée - la tâche d'améliorer la créativité productivité cerveau humain.

Qu'est-ce qui est le plus important : un ordinateur ou un cerveau humain ?

Deux époques peuvent être distinguées dans le développement de la technologie informatique et de la programmation. La première est l'ère de l'informatisation grossière, au cours de laquelle l'automatisation du travail mental a été réalisée. Ce fut la plus grande réussite. En quelques années, une coquille informatique de la planète a été formée, qui a pris sur ses puissantes épaules d'innombrables tâches qui ne pouvaient auparavant être effectuées que par le cerveau humain.

Cependant, il est trop tôt pour se reposer sur nos lauriers. Il est devenu clair que cela ne suffisait pas. Pourquoi?

La réponse est évidente. Des centaines de millions d'ordinateurs ont parsemé le globe comme des fleurs magiques et sont devenus une partie intégrante du paysage intellectuel moderne. Cependant, le cerveau humain reste le principal acteur dans le domaine intellectuel. L'ordinateur n'est qu'un outil. Les décisions ne sont pas prises par des ordinateurs, mais par des personnes.

la caractéristique la plus importante de la civilisation?

Notre planète est un gigantesque entrepôt, ou plutôt, un générateur de problèmes non résolus : petits, moyens, grands et mondiaux. Plus tôt ils seront résolus, plus le développement de la société sera réussi, plus les perspectives de l'humanité seront favorables.

Cela signifie que la vitesse du cerveau devient la caractéristique la plus importante de la civilisation. Il est hautement souhaitable que le cerveau fonctionne aussi efficacement que possible, résolvant les problèmes au rythme le plus rapide.

A l'aube d'une nouvelle révolution intellectuelle

Pour affiner le problème, posons une question. Comment fonctionne le cerveau humain après l'automatisation, c'est-à-dire après avoir transféré un certain nombre de tâches intellectuelles sur des ordinateurs ? Avez-vous réussi à créer les meilleures conditions pour que l'esprit fonctionne ? Sinon, comment pouvez-vous maximiser la productivité de votre cerveau ?

Avec une informatisation grossière, ces questions ne sont pas seulement non résolues, mais même pas posées. Pendant ce temps, le monde est aujourd'hui dominé par une informatisation grossière. Cela entraîne des conséquences désagréables. Les scientifiques, les concepteurs, les programmeurs qui déterminent la stratégie d'informatisation de la planète, étant en captivité de vues dépassées, ne remarquent pas quelque chose de très important - l'idée qui appartient au futur (je n'ai pas remarqué l'éléphant !). En se concentrant sur la conception d'ordinateurs, de programmes, de réseaux et d'interfaces utilisateur primitives, ils négligent complètement le problème de faciliter le travail du cerveau et d'augmenter sa productivité créative.

En conséquence, les capacités du cerveau sont sous-utilisées. Des réserves géantes d'intelligence humaine à tous les niveaux de gestion et de prise de décision restent non réclamées. De plus, c'est précisément à ce moment-là que le besoin de décisions plus sages, intellectuellement fondées et équilibrées a atteint une acuité mondiale sans précédent, pourrait-on dire.

Qu'est-ce qui en découle ? Aujourd'hui, nous sommes à l'aube d'une nouvelle ère informatique - l'ère de l'informatique fine. Son but est d'améliorer le travail de l'esprit, c'est-à-dire pour assurer la performance maximale (du cerveau) des travailleurs intellectuels et des étudiants.

Nous parlons d'une nouvelle révolution informatique, qui doit résoudre une tâche beaucoup plus difficile et vraiment intimidante - envahir les secrets du cerveau et le faire fonctionner mieux, plus rapidement et plus efficacement.

Le langage DRAGON est la première étape scientifiquement fondée dans cette direction. On peut le dire autrement. Le DRAGON est la première hirondelle qui montre la manière correcte - cognitive-ergonomique - d'augmenter la productivité créative du cerveau. (Une argumentation plus détaillée sur ce sujet peut être trouvée dans la monographie "VD Parondzhanov. Comment améliorer le travail de l'esprit: Algorithmes sans programmeurs - c'est très simple! M.: Delo, 2001. 360p.").

Histoire intellectuelle de l'humanité et super langues

L'histoire intellectuelle de l'humanité est inextricablement liée à l'amélioration du langage. Il y a quatre étapes qui se chevauchent partiellement dans l'histoire de la langue :

Langues sonores (orales) de l'ère pré-lettrée ;

Langues écrites (cunéiforme, hiéroglyphes, écriture alphabétique);

Langages artificiels (dessins, graphiques, formules chimiques et mathématiques, calcul logique et mathématique, langages de programmation);

Super langages ergonomiques.

L'apparition des langages sonores de l'ère pré-lettrée a distingué l'homme du monde animal, marquant un énorme bond dans le développement de l'intelligence des animaux. Dans le même temps, l'esprit d'une personne « analphabète » était à un stade de développement extrêmement bas. C'était l'intellect d'un sauvage plutôt que d'un homme.

L'invention des langues écrites symbolisait le deuxième pas de géant dans l'évolution de l'intelligence. Cet événement peut être décrit comme la transformation d'un sauvage en une personne. L'écriture a donné aux gens le pouvoir sur l'information. La naissance de l'écriture est le début de l'histoire écrite, la conception de la civilisation.

Le troisième saut puissant dans le développement de l'intelligence est associé au développement intensif des langages artificiels, parmi lesquels le calcul logique et mathématique et des milliers de langages de programmation occupent une place particulière.

Rappelons-nous les mots de Nikolai Lobatchevsky :

« A quoi la science a-t-elle prêté par ses brillants succès - la gloire des temps présents, le triomphe de l'esprit humain ? Sans aucun doute, son langage artificiel !"

Nous sommes arrivés à l'endroit le plus intéressant. De nos jours, l'augmentation de la puissance intellectuelle de l'humanité s'effectue en grande partie par la création et l'utilisation d'une grande variété de langues artificielles. Cependant, une difficulté inattendue survient en cours de route. Elle réside dans l'imperfection ergonomique des langages existants. Ils sont trop difficiles. Difficile pour la perception humaine. Les langues actuelles ne sont disponibles que pour quelques privilégiés et ne conviennent pas à une utilisation de masse. Cette circonstance entrave sérieusement la croissance future des capacités intellectuelles des personnes.

Défaut fondamental dans les langages de programmation

Considérons l'un des problèmes intellectuels les plus importants - le problème de la programmation. Rappelons les paroles de l'académicien Andrey Ershov :

"Une personne augmentera infiniment son intellect s'il fait partie de sa nature la capacité de planifier ses actions ... en un mot, il devient un programmeur."

L'académicien respecté a-t-il raison ? Il n'y a aucun doute : la capacité de bien programmer étend considérablement les capacités mentales des spécialistes, leur permettant d'optimiser le travail de l'esprit et d'utiliser l'ordinateur beaucoup plus efficacement. Cependant, il y a un "mais" ici. En pratique, le moyen d'améliorer l'intelligence proposé par Ershov est hélas ! - ne marche pas. Il est simplement fermé à l'écrasante majorité de ceux qui le souhaitent. Pourquoi?

Le problème est que tous les langages de programmation connus, sans exception, sont trop complexes et inaccessibles "pour les gens". Ils sont destinés à une caste étroite de connaisseurs et à personne d'autre. Les coûts de main-d'œuvre intellectuelle pour maîtriser la programmation sont inacceptablement élevés.

Par conséquent, les langages de programmation ne sont pas en mesure de fournir l'effet ennoblissant nécessaire sur la vie intellectuelle de la société. Ils ne peuvent surmonter la fragmentation des intelligences individuelles et fournir le renforcement nécessaire de la puissance de l'esprit collectif global, qui répond aux exigences modernes.

Parallèlement à la classe des langages de programmation et autres langages artificiels (qui, bien sûr, doivent continuer à fonctionner dans la culture), il est nécessaire de créer une classe de langages fondamentalement nouveaux, pour lesquels le terme "superlangages de communication intellectuelle" (en abrégé - superlangages) est proposé.

dragon - le tout premier superlangage

(et pas le dernier)

L'une des contradictions les plus dramatiques dans la phase actuelle du développement de la civilisation est la suivante. D'une part, la faiblesse de l'esprit planétaire menace le sort de la civilisation, et la science n'a pas de réponse à la question : comment obtenir l'augmentation d'intelligence nécessaire au salut ?

D'autre part, les énormes réserves intellectuelles du cerveau humain sont encore sous-utilisées. Parce que les gens « exploitent » très mal leur cerveau, de manière illettrée, pas du tout de la façon dont ses caractéristiques de « conception » (ergonomie et neurobiologie) l'exigent.

Alors pourquoi avons-nous besoin de super langages ? Pour éliminer cette contradiction, sortir de l'impasse intellectuelle actuelle en identifiant et en utilisant scientifiquement les réserves cachées du cerveau.

Le succès social de toute langue artificielle, son enracinement dans la culture, la possibilité d'une extension à grande échelle de son champ d'application et sa reconnaissance internationale dépendent de la disponibilité et de l'utilité générales de la langue. L'utilité des superlangues est déterminée par le fait qu'elles devraient faciliter la compréhension et la compréhension mutuelle, fournir une percée intellectuelle stratégique qui augmentera qualitativement le pouvoir mental de la civilisation.

Le langage DRAGON peut être décrit comme le tout premier superlangage ergonomique, car il a été développé à l'aide de méthodes de conception ergonomique fondées sur des bases scientifiques.

On peut le dire autrement. DRAGON est la première étape ergonomique consciemment conçue dans la construction du langage. Ergonomique signifie, d'une part, visant à améliorer le travail de l'esprit, et d'autre part, basé sur toute la puissance de la science des facteurs humains - l'ergonomie et les sciences cognitives. Ce qui vient d'être dit peut se résumer sous la forme d'une courte thèse : DRAGON est une révolution ergonomique dans la « construction du langage ».

Le fait même de l'existence et du fonctionnement réussi du DRAGON dans un certain nombre de grands projets de fusées et d'espace montre que la mise en œuvre pratique de superlangages est tout à fait possible. Ce n'est pas un fantasme, pas une utopie, pas un rêve rose - c'est déjà une réalité. On espère que les superlangages, en tant que nouvelle génération de langages artificiels, optimiseront le travail de l'esprit et augmenteront considérablement les capacités intellectuelles de la société.

En regardant vers l'avenir, nous pouvons probablement supposer qu'avec l'apparition des superlangages, une nouvelle voie de la connaissance s'ouvre pour l'humanité - la voie menant à la vraie sagesse.
(soigneusement sélectionné sur le site transhumanism-russia.ru)

Le langage DRAGON est utilisé pour :

  • les descriptions des processus métiers de l'entreprise et leur audit,
  • développement de solutions basées sur 1C pour leur automatisation,
  • stocker le code de ces solutions,
  • organisation de formations pour les salariés à travailler dans le cadre des processus métiers,
  • enregistrement et stockage des instructions d'utilisation - comment travailler dans le processus métier.

Son principal point fort est que nous obtenons ainsi un modèle commercial complet, qui ne se limite pas uniquement au schéma et aux instructions pour l'utilisateur. Dans ce modèle d'affaires, nous, avec la logique de développement nous pouvons également stocker son code- cela nous donne l'opportunité de :

  • l'auditer,
  • souviens-toi de toi - ce que tu as fait,
  • transfert à une autre équipe de programmeurs,
  • former et accompagner le personnel du Client.

Pourquoi le langage DRAGON pour décrire un processus métier est-il meilleur que les autres notations ?

  • Il compréhensible- facilement perçu visuellement dans la pratique.
  • Il plaine- il n'y a que trois types de schémas et environ cinq icônes réellement utilisées qui permettent de décrire toute cette logique sans produire de schémas réguliers.
  • Eh bien, plus à tout - les autres notations n'ont pas les moyens que peut stocker le code de développement.

Et aujourd'hui, nous allons parler de la technologie d'utilisation du langage DRAGON dans la mise en œuvre et le fonctionnement ultérieur des produits 1C à l'aide d'un exemple spécifique.

Les bases théoriques pour construire un business model

Lors de la préparation de la présentation, j'ai contacté des personnes professionnellement engagées dans le développement de modèles commerciaux, en particulier avec Mikhail Anatolyevich Kuznetsov. Il dirige le développement de la conception dans ARIS (c'est la notation qui est principalement utilisée dans la mise en œuvre du système SAP).

D'après son travail, le modèle économique se compose des éléments suivants:

  • Niveau sémantique qui montre les buts et objectifs de l'entreprise.
  • Ces objectifs se déclinent sous la forme de documents de contrôle qui caractérisent les processus (ce bloc est noté ici « Modèle de processus»).
  • Ces processus impliquent objets métier(en d'autres termes, des ressources);
  • Et tout cela converge dans des rapports (trimestriels ou pour une autre période), selon lesquels la direction générale comprend s'ils ont atteint certains de leurs objectifs ou non (ici ce bloc est désigné comme " Panneau de commande»)

Cette représentation du modèle commercial est principalement utilisée pour la mise en œuvre de systèmes KPI, mais peut également être utilisée à d'autres fins - dans les systèmes de gestion de la qualité, etc.

Un exemple d'utilisation d'IS Dragon pour choisir une solution pour automatiser les processus métier du client

Passons de la théorie à la pratique. Par exemple, j'ai pris conception détaillée pour l'automatisation d'une usine de meubles dans notre ville. Le projet implique deux parties - le client et l'entrepreneur. Le client est le propriétaire de l'usine de meubles et l'entrepreneur est moi. Nous avons rencontré le client et discuté de ses tâches. En conséquence, j'ai élaboré un "Dragon Diagram" pour son modèle économique.

Voyons ce qui se passe.

Sur la gauche se trouve le soi-disant schéma "Gnome"(ce type de circuit est principalement utilisé pour les notes), qui décrit catalogue des objectifs de l'entreprise:

  • Le tout premier élément est le titre du schéma.
  • De plus, la mission de l'entreprise sur le marché est surlignée en jaune.
  • Et encore plus bas est un élément de type "Insert", qui permet de naviguer dans ces diagrammes.

Les schémas eux-mêmes sont interactifs : par exemple, sur un élément de type "Insertion", vous pouvez appuyer sur la flèche "gauche" et accéder immédiatement au schéma souhaité. Voici comment ça se passe décomposition... Cela permet à une logique complexe d'être décomposée en blocs plus simples.

Du catalogue des buts, on passe au schéma de type "Silhouette", dans lequel on écrit objectifs de l'entreprise(type de circuits "Silhouette" appliqué pour les algorithmes composé de plusieurs parties sémantiques). Chaque en-tête (ils sont surlignés dans un ovale rouge) désigne une chaîne d'actions conviviales qui sont décryptées dans ce fil.

Pour chaque Objectif du Client, un Concept est développé- un processus commercial élargi qui vous permet d'y parvenir Objectifs la façon dont la direction le voit. Dans la première branche de ce circuit, nous travaillerons avec Le but essayer de renforcer Intégration verticale: selon le schéma "Insertion", on passe au schéma notions intégration verticale - notre grand plan pour y parvenir Objectifs.

Dans le schéma Concepts d'intégration verticale sous la forme de la structure "Cycle POUR" est affiché Cycle de vie des ventes(le début du cycle - icône #5 et la fin - icône # 7).

  • Veuillez noter qu'il y a des zones non colorées dans ce diagramme - éléments de type "Sortie"(elles sont entre les actions, ombrées en vert) est documents constitutifs qui baissent (par exemple, pour le service commercial, il peut s'agir d'un plan de vente pour l'année, etc.).
  • Respectivement, le processus suivant est guidé par ce document constitutif etc.
  • La couleur jaune est là l'étape la plus importante du cycle de vente- c'est ce qu'on appelle le « pilote », la tâche principale qui est entraînée par toutes les autres tâches. Grâce à cet "insert", nous pouvons accéder à un diagramme séparé détaillant cette tâche de conducteur cycle de vie de la production de meubles.

Voici donc un schéma du cycle de vie de la production de meubles :

  • Tout d'abord, vous venez dans une salle d'exposition de meubles et commandez une cuisine.
  • Là ils trichent pour toi,
  • Puis ils font
  • Apporté à vous
  • Vous payez le prix
  • Vous signez l'acte de travail accepté (que vous soyez d'accord ou non), et c'est tout.

Après avoir décrit le principal processus commercial que le client souhaite automatiser, nous pouvons commencer à choisir la configuration appropriée - celle qui possède le maximum de fonctionnalités répondant à nos exigences. Il est souhaitable qu'il n'ait pas besoin d'être finalisé - il peut y avoir des changements, mais ils doivent être minimes.

Comme tu peux le voir au début du travail sur un projet, Le langage DRAGON permet de se faire une idée du modèle économique du Client afin de il est optimal de choisir un produit en boîte pour une solution complexe de ses problèmes, bien que vous n'ayez jamais vendu ou assemblé de meubles auparavant.

Résumons les premières étapes de notre exemple de projet :

  • Nous discutons du processus commercial directement avec le client (pas un programmeur, pas un implémenteur) - il sait mieux comment ses meubles sont vendus et assemblés. Et nous obtenons des informations - quelles sont ses affaires.
  • Et alors, maquillage sur la base de ses informations schéma détaillé déjà facile à analyser ce que nous pouvons automatiser et quoi pas.
  • Et sur cette base, nous sommes ensemble choisissez une solution en boîte pour le projet.

En conséquence, le langage DRAGON est nécessaire au début de tout projet pour la mise en œuvre de produits logiciels 1C.

Un exemple d'utilisation d'IS Dragon pour prendre en charge et mettre à jour des produits logiciels basés sur 1C

Quels sont les avantages d'utiliser le langage DRAGON au stade de posséder un système d'information basé sur 1C, à sa mise à jour et révision?

  • Si nous avons un modèle économique, nous pouvons le changer et le développer davantage..
  • Diminue la dépendance vis-à-vis du personnel... Parce que si une personne nous quitte soudainement et n'a pas le temps de transférer des cas, nous pouvons prendre le "schéma Dragon" de ses actions et le transférer à un nouvel employé afin qu'il puisse travailler avec et l'apprendre. Après cela, la personne est prête à rejoindre nos rangs élancés et à continuer à travailler.
  • « Les schémas-dragons "permettent de décrire les "vraies" tâches techniques, quand les comptables ont déjà discuté de ce dont ils ont besoin, et ont eux-mêmes élaboré le schéma définitif pour le programmeur : « on veut que ça se fasse comme ça ».
  • Plus à tout, puisque magasins de schémas en même temps à la fois le code et la logique de développement, vous pouvez facilement changer d'équipe de programmeurs, de développeurs - transférez-leur ces schémas.
  • Et comme il existe déjà un code prêt à l'emploi et une liste de métadonnées créées pour cette révision, alors vous passez beaucoup moins de temps sur d'autres mises à jour.

Examinons de plus près le sujet de la mise à jour de la configuration 1C.

Imaginez, vous avez mis en place une configuration type, y avez apporté quelques modifications selon les termes de référence, puis une mise à jour a été effectuée et certaines de vos modifications ont été effacées. Cela se produit si l'entreprise, par exemple, n'a pas son propre programmeur, ou s'il tombe malade, démissionne. Vous devez afficher l'ancienne sauvegarde, voir ce qu'elle a changé dans les métadonnées, restaurer ces modifications, etc. C'est aussi bien si les données ne sont pas disponibles.

Pour faciliter la mise à jour de mes modifications, j'établis généralement un "Dragon Scheme", par exemple, celui montré sur la diapositive. Il y a des transitions spéciales (éléments de type "Insert") qui m'amènent interactivement à fiches de développement... Ce sont des schémas de dragon, où sont décrits :

  • métadonnées qui ont été créés ;
  • logique de développement- pourquoi ils ont été créés ;
  • et le code qui y est exécuté.

En conséquence, lorsque je mets à jour la configuration, je peux déjà parcourir ce schéma dragon dans la base de données de test et vérifier si toutes les fonctionnalités que j'ai introduites fonctionnent. Peut-être qu'une partie de cela a déjà été implémentée par 1C lui-même, ce qui signifie que je dois abandonner certaines de mes améliorations, et là, je dois réfléchir à certains mécanismes de migration, faire quelque chose ...

Un exemple d'utilisation d'IP Dragon dans le processus de développement

Passons à la troisième partie. Pourquoi le langage DRAGON est-il nécessaire dans le processus de développement ?

  • je Je peux voir la logique du code généré et l'auditer... Avec l'aide de "Dragon Schemes", nous pouvons comprendre ce qui fonctionne et ce qui ne fonctionne pas, voir que quelque part, il est nécessaire de supprimer le code inutile, etc.
  • J'ai déjà mentionné le transfert sémantique vers une autre équipe de développement - la dépendance vis-à-vis des programmeurs diminue.

Comment élaborer un schéma de dragon? Papier, règle, crayon et gomme ?

Les schémas que je vous ai montré ont été réalisés dans le programme " Dragon IP". C'est, à mon avis, maintenant l'outil le plus avancé pour travailler avec ce langage. Simple et pas cher.

Il y a aussi Éditeur DRAKON et Fable.

Comment le dragon-diagramme stocke le code et comment l'utiliser lors de la programmation en 1C.

Traducteur de code de Dragon IS vers le configurateur 1Utilise la méthode de programmation GOTO. Je n'entrerai pas dans les discussions sur l'opportunité de l'utiliser correctement ou non. Il y a assez d'articles sur Internet sur ce sujet. Arrêtons-nous sur ce que c'est. Et c'est comme ça que ça marche.

Pour plus de clarté, je vais vous parler un peu des modifications que nous avons apportées au programme 1C pour le client en utilisant l'exemple de la passation de commande pour la production de meubles.

Comme vous pouvez le voir, dans ce "Dragon Scheme" du processus de paiement, les rôles d'interprètes spécifiques sont attribués pour chaque action. Par exemple, il est indiqué que le comptable saisit dans un premier temps la commande de l'acheteur dans la configuration UNF, puis, sur la base de cette commande, le fournisseur émet une commande de fabrication.

Et ici un "goulot d'étranglement" apparaît dans le processus métier, je l'ai mis en évidence avec un ovale rouge. À quoi ça sert? Chez le client deux entreprises différentes travaillent dans une base de données, et les matériaux peuvent venir aux deux, et lorsque nous assemblons la cuisine, nous besoin de celles-ci les matériaux se sont retrouvés dans l'entrepôt d'une entreprise... Si cela est fait manuellement, alors le magasinier doit s'asseoir avec nous, combler les coûts des matériaux manquants d'une entreprise à l'autre. C'est pourquoi nous a proposé au client de créer un « bouton magique » qui automatise ce processus.

La capture d'écran montre termes de référence pour le développement de ce "bouton magique".

Ce qu'elle fait? Recherche les marchandises manquantes de la société vendeuse, génère des documents de dépenses et de réception pour les postes trouvés. De plus, il existe déjà un "insert" pour la transition vers le développement lui-même avec le code.

Ici l'ensemble de ces schémas:

Chaque schéma est une procédure ou une fonction pour le module de document de commande fournisseur. Ce sont eux qui automatisent ce "Bouton Magique".

Les points noirs dans l'en-tête du graphique indiquent que le graphique est une procédure et contient du code.À ces points, des blancs sont automatiquement formés, dans lesquels le début et la fin de la procédure sont décrits (leur texte est affiché dans la capture d'écran ci-dessous).

Le code exécutable est écrit dans les "points noirs" des actions spécifiques, dans ce cas, les paramètres de métadonnées sont définis.

Ça ressemble à ça type d'élément "Cycle"(constructions du langage 1C "Pour chaque... Cycle..."), ses limites (début et fin) sont indiquées en vert. Entre eux se trouve le code exécutable de cette boucle.

Et voilà à quoi ça ressemble type d'élément "Si". Ici, vous écrivez simplement une condition: pour "Oui" une telle branche, pour "Non" - une autre. Et le programme lui-même, lors de la génération du code, ajoute au module la structure "Si ... Alors" et les étiquettes vers lesquelles se produit la transition.

Pour plusieurs « If », un autre type d'élément « Dragon-schema » est utilisé : « Switch ».

Dans le schéma, nous pouvons également décrire les changements de métadonnées... Par exemple, dans la capture d'écran de gauche, le diagramme de type "Gnome" indique quels registres d'informations doivent être créés pour que cette fonctionnalité fonctionne.

et enfin l'élément mis en évidence est les modifications résultantes du module... Dans son troisième "point noir", j'écris généralement les coordonnées et l'essentiel du développement.

Et le quatrième "point noir" est le code final lui-même... Il collecté automatiquement, puis je le copie simplement à partir de cette fenêtre et le colle dans le configurateur.

Comme vous pouvez le voir, des notes sont également incluses ici sous forme de commentaires indiquant le numéro de ce code dans le schéma.

Comment déboguer un tel code ? Chaque régime a numéro unique, qui ne se répète nulle part. Par exemple, la capture d'écran montre la condition "Si" avec le nombre 26.

Et vous pouvez trouver ce code dans les commentaires dans le configurateur. Comme vous pouvez le voir, voici Aller opérateur, qui est analogue à GOTO dans 1C. Selon lui sauter à l'étiquette... Cela n'a pas besoin d'être écrit manuellement, tout est généré automatiquement.

Comme vous pouvez le voir, à l'étiquette 41, nous allons à un message à l'utilisateur, qui renvoie un texte d'erreur, et après cela, la fin de la procédure se produit. C'est ainsi que la logique de développement est vérifiée.

Travailler avec GOTO ("Go" - en 1C) est une question d'habitude. Je l'aime parce qu'il permet d'analyser plus clairement le code dans le schéma après un peu de pratique.

Si vous ne voulez pas travailler avec GOTO, insérez simplement le texte de la condition dans les actions, et il formera le code dans la procédure comme vous l'avez écrit ici.

Les éléments de schéma peuvent être utilisés simplement comme conteneurs pour stocker des informations textuelles du code..

Bien entendu, je fais le développement préliminaire non pas dans l'environnement IP Dragon, mais dans le configurateur. J'ai un configurateur ouvert, où je lance, par exemple, la logique de la requête que je dois développer. Il existe un assistant de syntaxe, l'auto-substitution de code, en mode utilisateur, vous pouvez démarrer la console de requête, tester tout cela, voir ce que j'obtiens, quels paramètres substituer. Et après avoir formé des blancs préliminaires pour chaque action, je copie et colle ce code du configurateur aux endroits nécessaires dans le diagramme. Ceci est particulièrement utile si vous travaillez sur deux écrans.

Programmer dans IS Dragon - comme assembler un puzzle... En conséquence, vous collectez l'intégralité de la mosaïque, qui affiche l'intégralité du code de développement. De plus, le code du module, obtenu automatiquement en sortie, peut être simplement copié et placé dans le configurateur. Testez, bien sûr, vérifiez que la logique n'est cassée nulle part.

Conclusion

Le langage DRAGON est pratique à utiliser à la fois pour la formation du personnel et pour la communication avec le client, ainsi que pour le développement et le support des configurations sur 1C.

En ce qui concerne le développement, je travaille sur de nombreux projets où je dois périodiquement restaurer certaines fonctionnalités, terminer quelque chose, désassembler des codes complexes d'autres personnes, etc. Et, combien de temps j'ai travaillé, je n'ai pas rencontré de code écrit par un programmeur que je ne pourrais pas décrire dans le langage DRAGON.

IS Dragon est un produit en boîte avec prise en charge de différentes langues... Je travaille avec 1C, mais il prend également en charge C ++, le langage du microcontrôleur et quelques autres langages. Le produit lui-même est vendu par l'auteur. Le sien la version complète pèse très peu et est peu coûteuse. Version de démonstration gratuite disponible qui peut être utilisé comme visionneuse.

Par conséquent, si vous devez mettre en œuvre rapidement 1C, former le personnel à travailler dans le système et soutenir le fonctionnement ultérieur de l'entreprise sans frais inutiles, je vous conseille d'utiliser cette technologie en tout ou en partie.

Cet article a été écrit sur la base des résultats du rapport lu lors de l'INFOSTART EVENT 2015 CONNECTION du 15 au 17 octobre 2015

Nous vous invitons à une nouvelle conférence.

Quelle est la force motrice derrière le programme? Qu'est-ce qui génère un résultat bénéfique ? Bien sûr, l'algorithme. L'algorithme crée l'effet pour lequel le programme a été écrit. L'algorithme ne fonctionne pas seul. Il fonctionne en conjonction avec des structures de données. Mais ce sont les algorithmes qui constituent la plus grande partie du programme.


Historiquement, les algorithmes des programmes sont écrits sous forme de code source. Presque personne ne doute que le texte est la meilleure façon de représenter les algorithmes. Un algorithme est codé au sein de fonctions dans un langage de programmation tel que C ou JavaScript. Pour ceux qui veulent comprendre l'algorithme à vol d'oiseau, un pseudocode est fourni. Cependant, il y a de sérieux problèmes avec le texte. Le fait est qu'une personne n'est pas optimisée pour le texte solide. L'humain est optimisé pour la perception des graphiques. Le texte est une invention relativement nouvelle, mais les organismes traitent des informations graphiques depuis des millions d'années.


Sur cette base, il serait logique d'élaborer des algorithmes sous forme graphique. Regardez les ingénieurs. Ils utilisent des plans partout. Pourquoi les programmeurs sont-ils pires ? Ils pourraient également élaborer des plans pour les algorithmes. Certains diront ici : la programmation visuelle est soi-disant inefficace. L'UML est maladroit et les organigrammes sont faciles à confondre. Il est préférable de programmer de manière traditionnelle - avec du texte. Dans la programmation structurée, il y a au moins une structure, et elle donne ordre et cohérence. Et en plus, dessiner des schémas est long et difficile. Taper est plus rapide que dessiner.


Les programmeurs sont-ils donc condamnés à travailler uniquement avec du texte toute leur vie ?
Ce n'est peut-être pas si mal que ça. Il existe des langages visuels pour représenter des algorithmes qui ont également un ordre et une structure, tels que DRAGON, BPMN et LML Action Diagrams. Ici, nous allons examiner le langage algorithmique visuel DRAGON.

Comment programmer en langage DRAGON

DRAGON n'est pas un langage de programmation indépendant. Il fonctionne en tandem avec un langage textuel tel que JavaScript, Python ou C ++. Avec le langage textuel, DRAGON forme un langage hybride : DRAGON-JavaScript, DRAGON-Python ou DRAGON-C++.


La programmation hybride se fait comme suit :

  1. Nous dessinons un diagramme DRAGON.
  2. Placez de petits morceaux de code dans le langage de programmation correspondant à l'intérieur des icônes.
  3. Le traducteur convertit le schéma DRAGON en un fichier texte avec le code source.
  4. Ce fichier texte est inclus dans le projet de la manière habituelle.
    Plusieurs éditeurs prennent actuellement en charge la génération de code à partir de diagrammes. Les exemples de cet article ont été créés dans l'éditeur DRAKON.

Générer du code à partir d'un diagramme

Dans le schéma, le DRAGON prend le contrôle du flux d'exécution. Par conséquent, les morceaux de code source dans les icônes ne doivent pas contenir de mots-clés tels que si, autre, changer, Cas, pour, tandis que etc.


Les icônes ne doivent contenir qu'un code simple et sans ambiguïté : expressions arithmétiques, affectations de valeurs, appels de fonction, comparaisons. Mais les branchements et les boucles sont implémentés par des constructions du langage DRAGON.



La génération de code est la suivante :

  • Une fonction est créée à partir de chaque diagramme.
  • Le nom du graphe devient le nom de la fonction.
  • Les paramètres de la fonction sont extraits de l'icône "Paramètres formels", qui se trouve à droite du nom du schéma.
  • Le corps de la fonction est généré en fonction de la structure du diagramme et du contenu des icônes.

En figue. 1 montre un exemple de petit diagramme dans le langage hybride DRAGON-JavaScript et le code JavaScript généré :


Rectangle avec texte console.log (chat, chien) En figue. 1 est l'icône Action. Combien de code peut contenir une icône d'action ? On devrait s'efforcer de s'assurer qu'une icône contient une pensée. Parfois c'est une ligne de code, parfois plusieurs.
Le code généré est fourni avec des commentaires qui indiquent les numéros des icônes. Dans l'éditeur, vous pouvez accéder rapidement à n'importe quelle icône en appuyant sur Ctrl + I.

Fig. 1. Le diagramme DRAGON-JavaScript et le code généré à partir de celui-ci.

Icône "Question"

Les icônes « Question » et « Choix » sont utilisées pour le branchement.


L'icône "Question" (Fig. 2) correspond au dessin si-alors-sinon.


Notez qu'au lieu de mots vrai et faux les mots sont utilisés Oui et Pas(peut être commuté sur Oui et Non.).


"Vérité" et "faux" - cela semble spectaculaire, d'une manière scientifique. Cependant, une personne est plus familière avec le « oui » et le « non » depuis la petite enfance.


Caractères Oui et Pas peut être échangé. L'emplacement des sorties de l'icône « Question » reste inchangé. Une sortie descend et l'autre va à droite. Le branchement dans le langage DRAGON est toujours dirigé vers la droite, par conséquent, la sortie par le côté gauche de l'icône est interdite. Cette prévisibilité rend le diagramme plus facile à lire car le lecteur sait à l'avance où chercher les sorties.


Une autre caractéristique du langage DRAGON est qu'un losange complet n'est pas utilisé pour le branchement, mais un tronqué. Cela permet d'économiser de l'espace sur le diagramme.




Figure 2. Icône "Question"

Formules logiques visuelles

Le langage DRAGON rend les opérateurs logiques inutiles ET, OU ALORS et NE PAS ainsi que l'opérateur non égal. Les opérations logiques elles-mêmes sont bien entendu nécessaires. Mais au lieu d'opérateurs de texte, DRAGON introduit des formules logiques visuelles.


Pour obtenir une formule logique visuelle, vous devez connecter plusieurs icônes « Question » (comme dans la Fig. 3).


Il est particulièrement agréable de se débarrasser du déni. Le déni n'est pas intuitif, il apporte des erreurs et des inconvénients. Négation (opérateur logique NE PAS) est réalisé dans le langage DRAGON par permutation d'étiquettes Oui et Pas.


La notation textuelle des expressions logiques est certainement plus compacte. Cependant, les formules visuelles sont plus faciles à lire. Chacune des combinaisons possibles de valeurs d'opérande peut être tracée avec un doigt.




Figure 3. Formules logiques visuelles

Boucle avec flèche

Pour indiquer l'ordre d'exécution habituel dans le langage DRAGON, les flèches ne sont pas nécessaires. L'icône suivante est toujours en bas. La flèche n'est requise que lorsque le fil d'exécution doit sauter dans le diagramme. Un tel saut vers le haut signifie un cycle. Par conséquent, une flèche dans le langage DRAGON est le signe d'un cycle. D'un coup d'œil rapide sur le diagramme DRAGON, les flèches sont immédiatement perceptibles. Cela signifie que les cycles sont immédiatement visibles. C'est un sérieux avantage de DRAGON par rapport aux autres langages graphiques. Vous n'avez pas à trouver les boucles.


Ainsi, si vous connectez l'icône "Question" avec une flèche, vous obtenez un cycle. Ceci est un analogue des constructions tandis que et faire pendant... La figure 4 montre plusieurs types de boucles de flèches.
L'icône "Question" dans une boucle avec une flèche vérifie la condition de sortie de la boucle. Bien sûr, au lieu d'une icône « Question », il peut y en avoir plusieurs. Ensuite, la formule logique visuelle est responsable de la sortie de la boucle.




Figure 4. Boucles de flèches

Icône "Choix"

L'icône "Question" contient une expression logique, c'est-à-dire qu'elle peut prendre deux valeurs : Oui et Pas... Un exemple typique consiste à comparer deux objets. Si vous devez comparer une certaine expression avec plusieurs valeurs, l'icône Sélectionner est utilisée (Fig. 5). Ceci est conforme à la conception cas de sorcière.


Les valeurs avec lesquelles l'expression dans l'icône "Choix" sera comparée sont placées dans les icônes "Variante". S'il n'y a pas de texte dans la version la plus à droite, cela signifie "toutes les autres valeurs". Une telle option vide est similaire au mot-clé défaut opérateur à l'intérieur changer.
L'option la plus à droite peut se terminer par une flèche qui mène vers le haut. Dans ce cas, nous avons à nouveau affaire à un cycle de flèches. Dans un tel cycle, l'icône « Choix » sera responsable de la condition de sortie, pas la « Question ».




Figure 5. Icône "Choix" et icônes "Option"

Icône "Cycle POUR"

Au lieu de boucles pour et pour chaque DRAGON-JavaScript utilise l'icône "Loop FOR". L'icône "Cycle FOR" (Fig. 6) peut être de plusieurs types.


Si après le mot-clé pour chaque et il y a une variable avant le point-virgule, puis le code est généré pour itérer sur le tableau. Les éléments du tableau (mais pas leurs indices) seront placés dans la variable.


Si après le mot-clé pour chaque il y a deux variables, DRAKON Editor comprendra que l'itération sur les propriétés de l'objet (enregistrements de table de hachage) est requise. Seules les propriétés propres des objets entreront dans l'énumération.


La troisième version de la boucle implique la présence de trois expressions, séparées par des points-virgules. C'est un cycle traditionnel pour, spécifique aux langages C et Java.


Une sortie anticipée du cycle sous le contrôle de l'icône « Cycle POUR » est possible à l'aide de l'icône « Question » ou « Choix ». Cette sortie correspond approximativement au mot-clé Pause.




Figure 6. Différents types d'icône "Loop FOR" dans DRAGON-JavaScript

Une seule entrée dans la boucle

Dans le langage DRAGON, une restriction est imposée sur les cycles. Chaque cycle ne peut avoir qu'une seule entrée. Le but de cette limitation est d'assurer la lisibilité. Cette limitation maintient DRAGON dans le cadre de la programmation structurée, comme Dijkstra l'a décrit.


Plusieurs sorties de la boucle sont acceptables, mais il ne devrait y avoir qu'une seule entrée. En figue. 7 montre des cycles qui ont deux sorties. C'est permis. En figue. 8 montre des exemples de cycles interdits. Interdit car vous pouvez les saisir de différentes manières.
Cependant, ne mémorisez pas l'apparition de ces cycles interdits. L'éditeur DRAKON détectera automatiquement de telles boucles et générera une erreur.




Figure 7. Cycles autorisés avec deux sorties


Figure 8. Cycles interdits avec deux entrées

Différences avec la programmation structurée basée sur du texte

Comme vous pouvez le voir, les icônes et macro-icônes du langage DRAGON correspondent aux constructions standard de la programmation structurée textuelle. Cependant, il existe aussi des différences. Le texte, même avec indentation, est un objet unidimensionnel. Et le diagramme est en deux dimensions. Un degré de liberté supplémentaire apparaît dans le schéma, ce qui augmente l'expressivité. Essayez, par exemple, dans un langage de programmation textuel sans répétitions et aller à représentent un algorithme comme dans la Fig. neuf.


Malgré la liberté supplémentaire par rapport au texte, le DRAGON ne permet toujours pas de tomber dans l'anarchie. Ses règles sont suffisamment strictes pour éviter toute confusion. DRAGON offre un compromis raisonnable entre souplesse et rigueur.



Figure 9. Un algorithme difficile à représenter avec du texte seul

Avantages du langage graphique

Le langage DRAGON a un destin intéressant. Ses principes de base ont été établis par Dijkstroy lui-même. DRAGON a acquis sa forme actuelle dans les profondeurs de l'industrie spatiale russe. Il est à noter que les règles du langage DRAGON ne sont pas apparues par hasard. Ils ont d'abord été testés dans des groupes de discussion, puis affinés dans de vrais projets spatiaux.
Alors, quels sont exactement les points forts du DRAGON ?


Commençons par le fait que DRAGON est un langage graphique. Et le langage graphique a des avantages fondamentaux par rapport au texte.


Premièrement, les pensées ne sont pas réparties au hasard sur les lignes, mais sont enfermées dans des carrés ou des icônes. Une pensée - un carré. Différentes pensées ne collent pas ensemble.


Deuxièmement, le chemin à travers l'algorithme peut être tracé avec un doigt (ou un coup d'œil). Après si pas besoin de chercher autre... Suivez la ligne et vous vous retrouverez dans la case désirée. Vous n'avez pas besoin de parcourir le code source des yeux à la recherche d'une réponse à la question : que s'est-il passé ensuite ?


Et les graphiques ont aussi une propriété presque magique. Il arrive qu'une personne regarde un diagramme, et soudain une compréhension supplémentaire vient. Des connexions auparavant invisibles deviennent apparentes. Cela arrive rarement avec le texte.

Règles ergonomiques particulières

Mais DRAGON ne sont pas que des diagrammes, ce sont des diagrammes élaborés. Les diagrammes DRAGON sont plus faciles à lire que les diagrammes de flux réguliers. Ceci est assuré par des astuces ergonomiques spéciales. Voici quelques-uns d'entre eux.

  • Les franchissements de lignes sont interdits. Du tout. Les intersections font suspecter à notre analyseur visuel que les lignes se touchent, et donc connectées d'une certaine manière. Ces soupçons créent un travail mental supplémentaire. Les travaux inutiles doivent être éliminés.
  • Le début contient le nom de l'algorithme et est toujours situé dans le coin supérieur gauche du diagramme. Par conséquent, il n'est même pas nécessaire de chercher le début. C'est où il est habituellement.
  • Le schéma n'a qu'une extrémité. Quoi qu'il arrive en cours de route (sauf exceptions), nous arriverons toujours à la fin.
  • Seules les lignes droites sont autorisées. Pas de courbes, pas de virages ou de plis inutiles.
  • Seules les lignes strictement verticales et strictement horizontales sont autorisées. Les lignes obliques sont interdites. Explication pour les amateurs de maths : Le diagramme DRAGON est un graphe rectangulaire plat (graphe de Manhattan). L'appareil visuel humain saisit instantanément des objets reliés par des lignes orthogonales droites. Garder une trace de l'endroit où la courbe du rêve américain mènera, cependant, nécessite une concentration supplémentaire de la part du lecteur.
  • Le schéma DRAGON est exécuté de haut en bas. Cette règle évite d'avoir à parcourir frénétiquement le schéma des yeux à la recherche de la prochaine icône. L'icône suivante est toujours en bas. L'entrée est en haut et la sortie en bas. Puisque nous savons où se trouve la prochaine icône, les flèches ne sont pas nécessaires. Des lignes simples suffisent. Les flèches à côté de chaque icône représentent le bruit visuel. Après avoir supprimé la tâche de connexion des icônes des flèches, vous pouvez leur attribuer une mission spéciale. Dans le DRAGON, une flèche signifie un cycle.
  • La ramification ne se produit que vers la droite. C'est une aide précieuse en termes de prévisibilité et de cohérence.
  • Les icônes situées sur la même verticale doivent avoir la même largeur. Cela donne le sentiment que les icônes appartiennent à un seul tout. Lorsque tout le monde a la même largeur et qu'il n'y a pas d'icônes parvenues, l'œil glisse facilement et librement sur le diagramme.

Les règles ci-dessus sont d'une immense valeur pratique. D'une part, elles sont conçues pour freiner la folie de l'artiste. Il est plus difficile de créer un schéma confus avec eux. D'autre part, ils font prendre conscience des graphiques. Les diagrammes deviennent compréhensibles non seulement pour leurs auteurs.


Les diagrammes de la Fig. 10 et 11 démontrent les techniques ergonomiques du langage DRAGON à l'aide d'exemples réels.




Figure 10. Techniques ergonomiques du langage DRAGON à titre d'exemple


Figure 11. Un autre exemple de diagramme en langage DRAGON
En plus des techniques ergonomiques, le langage DRAGON possède des caractéristiques uniques que l'on ne trouve nulle part ailleurs.

Le plus à droite, le pire

DRAGON a un moyen pour l'image chemin heureux, ou alors route royale... La route du tsar est le chemin le plus efficace à travers l'algorithme. Dans certains algorithmes, les concepts de « bon/mauvais », « bon/mauvais » ne sont pas applicables. En eux, la route royale montre le chemin le plus attendu. La route royale s'étend verticalement, située sur le côté gauche du diagramme. Cette verticale s'appelle une brochette. Les scénarios les moins probables et les moins réussis, ainsi que la gestion des erreurs, sont placés sur le côté droit du diagramme. De plus, plus la situation est mauvaise, plus il doit être situé à droite. Il est recommandé de placer le code qui lève une exception ou renvoie un code d'erreur sur le côté droit du diagramme.


Destin commun

Parfois, il arrive que sur différents chemins de l'algorithme, il soit nécessaire d'effectuer des actions différentes, mais liées d'une manière ou d'une autre. Par exemple, mettez différentes valeurs dans une variable. Le destin partagé, c'est lorsque des actions liées se situent sur des lignes verticales différentes, mais sur la même horizontale.


Figure. 12 montre une brochette avec une voie royale, ainsi que l'application de la technique du "destin commun".




Figure 12. Voie royale et destin commun

Silhouette

La silhouette est un vrai diamant DRAGON. Silhouette vous permet de diviser un diagramme en parties logiques. En programmation, la décomposition à l'aide de sous-programmes est généralement utilisée pour cela. Les sous-programmes sont une méthode puissante. Mais parfois, j'aimerais placer le sous-programme visuellement près du programme principal, ainsi qu'éviter le désordre avec le passage des paramètres et le retour des valeurs. Une silhouette est idéale à ces fins. Une autre utilisation de la silhouette est dans les machines à états finis. Mais nous en reparlerons ailleurs.
Il arrive que l'algorithme ne puisse pas être décomposé sur un plan de sorte qu'il n'y ait pas d'intersection de droites. Dans ce cas, selon la situation, soit une décomposition à l'aide de sous-programmes, soit une silhouette est appliquée.


La silhouette se compose de plusieurs petits diagrammes reliés en un seul bloc intégral. Ces petits diagrammes sont appelés branches silhouettes. En haut de chaque branche se trouve l'icône « Tête de la branche », en dessous - l'icône « Adresse ». Le nom de cette succursale est inscrit dans la tête de la succursale et le nom de la succursale suivante est indiqué dans l'adresse. Les noms des branches sont situés sur une seule ligne horizontale en haut du diagramme. Grâce à cela, vous pouvez saisir l'essence de l'algorithme en ne parcourant que les en-têtes de branche. La silhouette répond à trois questions royales :

  1. Quel est le nom du problème ?
  2. De combien de parties se compose-t-il ?
  3. Comment s'appellent ces pièces ?

Considérons l'exemple de la Fig. 13. Voici les réponses aux questions du roi :

  1. Quel est le nom du problème ? Organisez la liste chaînée.
  2. De combien de parties se compose-t-il ? Sur quatre.
  3. Comment s'appellent ces pièces ? Construire une matrice de liens. Vérifiez les cycles. Parcourez la matrice des connexions. Compléter.


Figure 13. DRAGON-schéma "silhouette"

Cycle de silhouette

Les branches de la silhouette doivent être ordonnées de gauche à droite. Dans certains cas, vous devez exécuter une branche ou un groupe de branches plusieurs fois. Cette conception s'appelle une boucle de silhouette. Si l'icône « Adresse » pointe vers sa propre branche ou vers une branche située à gauche, elle doit être marquée d'une étiquette spéciale. La même marque doit être placée sur l'icône correspondante « Tête de branche » (voir fig. 14). Le but de l'étiquette est de rendre visible la boucle de la silhouette.




Figure 14. Boucle de silhouette et étiquettes

Le raccordement des branches silhouette est interdit

Les connexions de deux branches de la silhouette (comme sur la Fig. 15) sont interdites. Chaque branche de la silhouette doit être indépendante.




Figure 15. Le raccordement des branches silhouette est interdit.

Tableaux des tailles

Lors de la programmation en langage DRAGON, la question se pose : quelle doit être la taille des diagrammes ? La réponse est : moins c'est mieux. Moins il y a d'objets dans la scène visuelle, plus elle est claire. Dans la programmation textuelle, il existe un tel point de référence : il est bon que toute la fonction tienne sur l'écran. Des conseils similaires peuvent être donnés pour les schémas DRAGON. Évitez les graphiques énormes. Lorsque l'ensemble de l'algorithme est entièrement visible, il est beaucoup plus facile à comprendre.
Pour la programmation DRAGON, il n'est pas préférable d'avoir un grand moniteur. Au moins 1080 pixels de haut. Alors vous n'avez pas à raccourcir artificiellement les schémas DRAGON.


DRAGON-schéma silhouette doit tenir sur l'écran en hauteur, mais pas nécessairement en largeur. Diagrammes silhouette peut être assez large, beaucoup plus large que 2000 pixels. C'est normal. Il n'est pas nécessaire de voir toutes les branches de la silhouette en même temps. L'essentiel est que la branche avec laquelle vous travaillez soit entièrement visible à l'écran.

Critique de la programmation DRAGON

Considérons les principales directions de critique de la programmation sur le DRAGON et essayons d'y répondre.

  • "Les diagrammes DRAGON occupent plus d'espace à l'écran que les programmes de traitement de texte." C'est vrai. Mais nous devons garder à l'esprit que la tâche du DRAGON est de montrer la complexité telle qu'elle est. Le lecteur du programme ne doit pas déballer dans sa tête des structures complexes. Elles doivent lui être explicitement montrées.
  • "Les algorithmes simples sont plus beaux sous forme de texte." Peut-être. Hello world est élégant dans toutes les langues. Mais dans la vraie vie, tout n'est pas simple. Dès qu'au moins un apparaît si imbriqué dans un autre si, DRAGON gagne.
  • "DRAGON n'a aucune possibilité d'afficher les exceptions." Il y a un tel problème. Des exceptions ont été récemment ajoutées au langage DRAGON, mais toutes les implémentations ne les prennent pas en charge. Jusqu'à ce que les implémentations arrivent à temps, vous pouvez écrire des blocs try / catch dans le langage de programmation approprié.
  • "Les schémas DRAGON prennent beaucoup de temps à dessiner." Il est beaucoup plus facile de dessiner des diagrammes DRAGON dans des éditeurs spécialisés que, par exemple, dans Visio. Et dans certains d'entre eux, le dessin est devenu presque aussi facile que l'écriture.
  • "Il n'y a pas d'outils pour diff et merge." C'est malheureusement le cas. Lorsque vous travaillez avec un système de contrôle de version, vous devez comparer les fichiers sources générés.
  • "Il n'y a pas d'outils de débogage DRAGON-schématiques." C'est vrai. Mais vous pouvez déboguer le code généré. Il a des étiquettes qui indiquent où dans le diagramme appartient un morceau de code donné.

Présentation du langage Dragon

La figure 16 donne un aperçu du langage DRAGON.




Figure 16. Présentation du langage DRAGON

Outils de langage Dragon

La toute première implémentation du langage DRAGON était le système GRAPHITE-FLOKS (Fig. 17). GRAPHITE-FLOX a été créé en 1986-1996. par des spécialistes de la FSUE NPTs AP eux. Pilyugin sous la direction de V.D. Parondjanova. Cet environnement était destiné à la conception de systèmes de contrôle pour lanceurs et engins spatiaux.


GRAPHITE-FLOX est un développement fermé, donc relativement peu est connu à son sujet. La liste des engins spatiaux créés avec l'utilisation de GRAFIT-FLOX peut être consultée.


Au début des années 90, un autre éditeur DRAGON voit le jour. Le développement a été effectué à l'Institut de mathématiques appliquées du nom de M.V. Keldysh sous la direction de L.K. Eisymont. L'éditeur Eisymont (Fig. 18) peut être téléchargé et exécuté, mais il n'est plus pris en charge. L'éditeur est écrit sous MS DOS, donc DOSBox peut être nécessaire pour fonctionner sur des ordinateurs modernes.


En 2008, l'éditeur de IS Dragon de Gennady Tyshov est sorti (Fig. 19). IS Dragon est activement soutenu et développé. IS Dragon implémente la génération de code de programme à partir de diagrammes. L'une des fonctionnalités intéressantes d'IS Dragon est la possibilité de placer un code dans un langage de programmation et une description dans un langage naturel dans une seule icône. Le mérite absolu d'IP Dragon est le soi-disant "calcul des icônes". Le calcul d'icônes est une méthode d'édition qui aide l'utilisateur à dessiner un diagramme et garantit que le diagramme ne viole pas les règles du langage DRAGON. Parmi les inconvénients d'IS Dragon, on peut noter une interface utilisateur non standard et quelques inconvénients lors de la génération de code. IP Dragon est un produit commercial.


DRAKON Editor est un autre éditeur DRAGON moderne (fig. 20). DRAKON Editor a été développé par un groupe de passionnés dirigé par Stepan Mitkin. DRAKON Editor ne prend pas en charge le calcul des icônes. Cela signifie que les schémas DRAGON y sont assemblés manuellement à partir de primitives, comme dans les éditeurs de graphiques vectoriels. Mais d'un autre côté, l'interface utilisateur de DRAKON Editor est aussi simple que possible. Il est construit selon un schéma plus familier que IS Dragon. Le principal avantage de l'environnement DRAKON Editor est la facilité de programmation et de génération de code. DRAKON Editor prend en charge plusieurs langages de programmation, notamment C, C++, C#, Java, Processing, JavaScript, Lua, Erlang, Python, Tcl, Verilog, AutoHotkey, D et Go. Pour certains langages, il est possible de générer des automates. Les règles du système expert nools sont prises en charge. Implémentation d'un sous-ensemble du langage UTOPIST E. Tyugu. DRAKON Editor est open source.


Une application intéressante pour le langage DRAGON a été inventée par Oleg Garipov dans son projet Integrator CodeView. CodeView vous permet de visualiser le code existant comme un ensemble interconnecté de schémas DRAGON. La particularité de l'intégrateur CodeView est que non pas des méthodes individuelles sont visualisées, mais l'ensemble du projet, y compris le graphe d'appels, la pile, etc. L'intégrateur CodeView est également unique en ce qu'il montre visuellement non seulement les algorithmes, mais aussi les données. Le moteur de visualisation des données du système Integrator fonctionne en conjonction avec DRAGON.


DRAKON Editor Web est une solution cloud commerciale basée sur le langage DRAGON. DRAKON Editor Web est conçu pour les spécifications techniques, les procédures commerciales et les listes de contrôle. DRAKON Editor Web n'est en aucun cas affilié à DRAKON Editor et ne prend pas en charge la génération de code à partir de diagrammes. Parmi les avantages de DRAKON Editor Web figurent un éditeur pratique, la collaboration et la prise en charge des appareils mobiles.




Figure 17. Schéma DRAGON dans le système GRAPHITE-FLOX


Figure 18. DRAGON Éditeur Eisymont


Figure 19. Programme avec explications en IS Dragon


Figure 20.Éditeur DRAKON

conclusions

Résumons. DRAGON est un langage pratique endurci dans l'espace. Il a apporté structure, ordre et cohérence aux organigrammes. La prévisibilité et la netteté des schémas DRAGON conduisent au fait que la programmation visuelle travaux.


L'expérience de projets réels a montré que vous ne pouvez pas programmer sur le DRAGON. D'une part, DRAGON est plus expressif que le texte. D'autre part, il augmente la lisibilité des programmes. Et en plus, les programmes sous la forme de schémas DRAGON ressemblent, eh bien, à ceux d'un vaisseau spatial extraterrestre (bien que beaucoup dépende du schéma de couleurs). Personnellement, je suis facilement passé à DRAGON. C'est gênant quand, au contraire, il faut parfois programmer dans le style de texte traditionnel.

Ajouter des balises
Vous avez aimé l'article ? A partager entre amis :