Langage Dragon - tutoriels. Boucle avec flèche. La langue du dragon et le système éducatif

Dernière modification par PBworks il y a 12 ans et 3 mois

ESPÈCES DE LA LANGUE DRAGON

CRITIQUE DES SCHÉMAS EN BLOC

La visualisation de la programmation est un outil efficace pour améliorer la compréhension des algorithmes, et un peu plus tôt, des organigrammes étaient utilisés à cette fin. Récemment, cependant, les schémas fonctionnels ont été critiqués. Les opposants aux schémas fonctionnels soutiennent qu'ils ne conviennent pas à une programmation structurée, ne se prêtent pas à la formalisation, de sorte qu'ils "ne peuvent pas être utilisés comme un programme pour une entrée directe dans une machine". Ils occupent de nombreuses pages et "des informations très limitées peuvent être saisies dans les cellules des organigrammes". Les schémas fonctionnels « rendent l'apprentissage difficile et réduisent les performances de compréhension ». De plus, ils ne conviennent pas à tout le monde - le travail avec des organigrammes n'est préféré que par "les individus avec l'hémisphère principal droit, orientés vers l'information visuelle, intuitifs, reconnaissant les images", mais ils sont évités par "les individus avec un hémisphère principal gauche, orientés à l'information verbale, enclin au raisonnement déductif », etc.

Si avant 1980 les organigrammes étaient l'outil le plus utilisé, aujourd'hui ils ne sont « plus considérés comme nécessaires et leur popularité diminue ». Bien qu'il y ait quelques tentatives pour adapter les diagrammes aux besoins modernes (langage SDL, etc.), dans l'ensemble, les diagrammes se sont clairement retrouvés en marge du processus en développement rapide de la visualisation de programmation, et leur énorme potentiel n'est pas réellement utilisé. . Le langage DRAGON permet d'éliminer ou d'affaiblir significativement les défauts constatés des schémas fonctionnels.

Le terme « dragon-schema » est utilisé pour désigner les organigrammes construits selon les règles du langage DRAGON.

AVANTAGES DES SCHÉMAS DRAGON

En quoi les diagrammes de dragon diffèrent-ils des organigrammes ? Les schémas fonctionnels ne convertissent pas automatiquement un algorithme en code machine. Les schémas Dragon, en revanche, conviennent à la notation formalisée, réception automatique code et son exécution sur l'ordinateur. Cependant, la seconde différence (cognitive) est plus importante. Alors que les schémas fonctionnels améliorent parfois la compréhension du programme, ce n'est pas toujours le cas, et il y a peu d'amélioration. En outre, il existe de nombreux cas où les organigrammes infructueux sont déroutants et difficiles à comprendre. En revanche, les schémas de dragon satisfont au critère de l'ultra-haute intelligibilité.

Grâce à l'utilisation de techniques cognitives formelles et informelles spéciales, les schémas-dragons permettent de représenter une solution à n'importe quel problème technologique, aussi complexe soit-il, sous une forme extrêmement claire, visuelle et intelligible, ce qui peut réduire considérablement les efforts intellectuels de personnel requis pour la perception visuelle, la compréhension, la vérification et les solutions sans erreur.

ICNES ET MACROICNES

Les éléments graphiques (lettres graphiques) du langage DRAGON sont appelés icônes (Fig. 1). Tout comme les lettres se combinent en mots, les icônes se combinent en icônes composites - macroicônes(fig. 2).

En connectant des icônes et des macro-icônes selon certaines règles, vous pouvez créer une variété d'algorithmes, dont des exemples sont illustrés à la Fig. 3, 4, 6, 8-11.

Bloc à brochettes- une partie du schéma du dragon, qui a une entrée par le haut et une sortie par le bas, située sur la même verticale. Des exemples de blocs-brochettes sont les icônes I3 - I10, I12 - I16, I18, I20, I21 (Fig. 1) et les icônes macro 2-20 (Fig. 2).

POURQUOI AVEZ-VOUS BESOIN D'UNE BRANCHE ?

Lorsque la princesse Anne a divorcé du marquis de Le Chatelier, un différend a éclaté sur le partage des biens. Le juge a demandé d'indiquer quels achats la princesse avait effectués avant le mariage et lesquels - après.

Oublions maintenant ce drame familial et comparons le riz. 3a et 3b. Il est facile de voir que la première ne permet pas de répondre à la question du juge. Quant au second, il contient au contraire les informations nécessaires. De plus, l'algorithme de la Fig. 3b est délibérément dessiné pour que les achats effectués avant et après le mariage soient clairement divisés en deux listes. Ces listes sont visuellement et spatialement séparées, donc diviser l'algorithme en deux parties, quelle que soit la volonté du lecteur, est littéralement frappant. Cette technique s'appelle diviser l'algorithme en parties sémantiques selon le principe "J'ai regardé - et c'est devenu clair tout de suite!" Et les blocs sémantiques eux-mêmes sont appelés branches.

Le mot "branche" a deux sens. D'une part, il s'agit d'un « morceau » sémantique de l'algorithme. Par exemple, l'algorithme de la Fig. 3b a deux branches (« Achats avant mariage » et « Achats après mariage »). En figue. 4 - quatre branches ("Préparation à la pêche", "En attente d'une bouchée", "Travaux de pêche", "Route de retour"). D'autre part, une branche est un opérateur composé du langage DRAGON, qui n'a pas d'analogue dans les langages connus. L'exploitant d'agence comprend trois parties : début de branche(icône "nom de l'agence"), organes de la branche(qui peut contenir grand nombre icônes) et fin de branche(qui contient une ou plusieurs icônes « adresse » ou « fin »).

Alors pourquoi avez-vous besoin d'une succursale? Pour aider le travailleur du savoir, le programmeur et le développeur de technologie à formaliser la division sémantique d'un problème, d'un programme ou d'un processus en parties et de donner aux parties des noms sémantiques pratiques. En même temps, la division du problème en N les parties sémantiques sont réalisées en divisant l'algorithme en N branches.

COMMENT FONCTIONNE LA BRANCHE ?

La succursale a une entrée et une ou plusieurs sorties. L'entrée est l'icône "nom de branche" contenant l'identifiant de la branche. L'opérateur visuel « nom de branche » n'effectue aucune action, il s'agit simplement d'une étiquette annonçant le nom de la partie sémantique du programme. L'exécution de l'algorithme dragon commence toujours à partir de la branche la plus à gauche (Fig. 3, 4).

La sortie de la branche est l'icône "adresse", dans laquelle est écrit le nom de la branche suivante dans l'ordre d'exécution. L'icône « adresse » est un opérateur de branche déguisé (goto), mais il ne transfère le contrôle nulle part, mais uniquement au début de la branche sélectionnée. L'entrée dans une branche n'est possible que par son commencement. La sortie de la dernière branche se fait par l'icône "fin".

COMMENT PLACER LES BRANCHES DANS LE CHAMP DU DESSIN ?

Les branches sont ordonnées de deux manières : logiquement et spatialement. Logique la séquence d'exécution des branches est déterminée par les étiquettes enregistrées dans les icônes « adresse ». Cependant, l'ordre logique n'est pas tout. En figue. 5 montre trois différentes façons spatial emplacements des branches qui ont le même ordre logique. Pour éliminer l'ambiguïté spatiale et faciliter la compréhension de la signification du schéma du dragon, la règle «le plus à droite, le plus tard» est introduite. Cela signifie : la branche dessinée à droite travaille plus tard que toutes les branches à gauche.

L'algorithme dessiné selon la règle «le plus à droite - le plus tard» est considéré comme bon et ergonomique (Fig. 5c). Les schémas où cette règle est violée sont déclarés mauvais (Fig. 5a, b) et leur utilisation est interdite.

Dans les algorithmes (ergonomiques) autorisés, la procédure opératoire suivante a lieu (Fig. 3, 4, 5c, 6a) :

  • la branche la plus à gauche fonctionne en premier, la branche la plus à droite fonctionne en dernier ;
  • le reste des branches se transfère le contrôle de gauche à droite (dans ce cas, il peut arriver que certaines branches soient ignorées) ;
  • parfois un soi-disant "cycle de branche" est formé. Cela se produit lorsque le nom de son propre nom ou celui de l'une des branches de gauche est spécifié dans l'icône « adresse ». En figue. 4 et 6a, le cycle de branchement est marqué par des triangles noirs.

QU'EST-CE QU'UN CHAPEAU ?

Du point de vue du lecteur, tout algorithme non trivial inconnu ou oublié est un problème extrêmement difficile qu'il essaie désespérément de comprendre, surmontant une puissante "résistance matérielle". Pour simplifier les choses et faciliter la tâche de compréhension, il est nécessaire pour le lecteur de « voir clair » et, après avoir divisé le problème en parties, de voir sa structure sémantique en termes de domaine. Et il n'a pas vu au sens figuré du mot, pas avec l'aide de l'imagination, pas avec un œil spirituel, mais avec mes propres yeux - sur papier ou sur écran.

Mais comment faire ça ? La difficulté est qu'aucun des langages existants ne fournit au lecteur étudiant un programme ou une technologie complexe une aide efficace, qui lui permet d'en comprendre instantanément (en quelques secondes) sa structure, c'est-à-dire la division en blocs sémantiques. Dans le langage DRAGON, il existe des outils spéciaux qui fournissent une solution au problème.

La tête est la partie supérieure du dragon-diagramme (Fig. 4), qui comprend l'en-tête de l'algorithme et un ensemble d'icônes « nom de branche ». Le but de l'en-tête est d'aider le lecteur instantanément (en quelques secondes pas plus) à naviguer dans le problème et à obtenir un indice puissant - la réponse aux trois questions les plus importantes :

  1. comment s'appelle le problème ?
  2. de combien de parties se compose-t-il ?
  3. comment s'appelle chaque partie ?

Après tout, c'est avec ces questions que notre connaissance de toute tâche commence par une approche rationnelle des affaires.

Voici les réponses pour la photo. quatre.

  • Quel est le nom du problème ? Pêche.
  • Combien de parties y a-t-il dans le problème ? Sur quatre.
  • Quel est le nom de chaque partie ? 1. Préparation pour la pêche. 2. En attente d'une bouchée. 3. Travaux de pêche. 4. Le chemin du retour.

Des commodités supplémentaires sont associées au fait que l'en-tête prend une place «cérémoniale» dans le champ de dessin et que les noms des parties sémantiques sont placés dans des cadres spéciaux d'une forme unique et, de ce fait, attirent instantanément l'attention du lecteur sans aucun effort. de sa part.

Ainsi, le DRAGON fournit au lecteur une méthode efficace en trois étapes d'apprentissage sur un problème inconnu ou 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, une analyse approfondie de chaque branche est réalisée. Sur le troisième, l'interaction des branches est analysée.

QU'EST-CE QUI EST MIEUX : PRIMITIF OU SILHOUETTE ?

Le diagramme du dragon avec des branches s'appelle silhouette, sans branches - primitif. La silhouette représentée sur la fig. 6a peut être représenté comme une primitive (Fig. 6b). La primitive est une connexion séquentielle de l'icône « en-tête » des blocs-brochettes et de l'icône « fin ». Dans la primitive, les icônes « titre » et « fin » se trouvent nécessairement sur la même verticale, qui s'appelle brochette. Les principales verticales des blocs-brochettes se situent sur la même ligne. Au sens figuré, une brochette imprègne les icônes des primitifs (peut-être pas toutes) tout comme une vraie brochette imprègne les morceaux d'un shish kebab.

Il est recommandé d'utiliser la primitive si le schéma du dragon est très simple (primitif) et ne contient pas plus de 5 ... 15 icônes. Sinon, pour améliorer la lisibilité du programme, il est plus rentable d'utiliser une silhouette. La violation de cette règle est généralement source de problèmes, car elle empêche le lecteur d'identifier l'essence du problème à résoudre et, par conséquent, complique et ralentit la compréhension du sens du programme.

Par exemple, l'algorithme de la Fig. 6b semble encombrant et déraisonnablement difficile à comprendre. Cela est dû au fait qu'il contient 19 icônes, mais est représenté comme une primitive. Le crime est que le diagramme de la fig. 6b ne permet pas au lecteur de reconnaître instantanément (en quelques secondes) la structure visuo-sémantique de l'algorithme. En effet, de combien de parties se compose le problème à résoudre ? En regardant la fig. 6b, il est assez difficile de répondre à cette question, mais il est impossible de répondre rapidement. La situation change radicalement quand on regarde la fig. 6a, où le même algorithme est représenté en silhouette. Ici, comme on dit, et une évidence : l'algorithme se compose de quatre parties : « trouver un bus », « attendre l'embarquement », « monter à bord d'un bus », « voyager ». Cependant, ce n'est pas tout : non moins important est le fait que la confusion du motif visuel a disparu et que le schéma a acquis une nouvelle qualité esthétique (ergonomie) : élégance, clarté et transparence.

Ainsi, dans les cas difficiles, la silhouette peut réduire considérablement l'effort intellectuel consacré à la compréhension de l'algorithme. Dans la silhouette, les grandes parties structurelles du programme (branches) sont clairement distinguées, elles sont spatialement séparées dans le champ du dessin, formant en même temps une image visuelle facilement reconnaissable, stable, prévisible et intégrale. Et dans le primitif, les parties structurelles ne sont pas sélectionnées et mélangées (« tout en un seul tas »), ce qui rend difficile la lecture et l'analyse d'algorithmes complexes. Cependant, pour les cas simples (moins de 5 ... 15 icônes), la primitive est généralement plus préférable.

COMMENT DÉCRIRE UNE SILHOUETTE EN LANGUE TEXTE ?

Figure. La figure 7 montre qu'un certain nombre de modifications ont dû être apportées pour décrire les branches dans le langage textuel. En particulier, il y a deux nouveaux opérateurs de texte qui manquent dans les langues traditionnelles :

BRANCHE< идентификатор ветки >

ADRESSE< идентификатор ветки >

L'opérateur du langage texte BRANCH déclare le nom de la branche (écrit en langage visuel à l'intérieur de l'icône « nom de branche »). L'opérateur ADDRESS transfère inconditionnellement le contrôle à l'opérateur de texte BRANCH, dont le nom est inscrit à droite de l'opérateur ADDRESS.

Considérons le problème. Dans un labyrinthe enchevêtré reliant le début et la fin d'un algorithme complexe, vous devez distinguer un seul itinéraire - un "fil conducteur" avec lequel vous pouvez comparer visuellement tous les autres itinéraires afin de naviguer facilement dans le problème et de ne pas vous perdre dans le confusion des fourchettes. Ce fil conducteur (appelons-le " itinéraire principal”) Doit être visuellement facilement distinguable. En d'autres termes, après avoir jeté un coup d'œil rapide sur le schéma du dragon, nous devrions trouver des points de repère clairs, grâce auxquels nous pouvons voir immédiatement et avec précision la route «royale» et le reste des routes ordonnées par rapport à elle.

Pour cela, une règle est introduite : "La route principale du primitif doit passer en brochette." En interchangeant les mots « oui » et « non » dans les fourches et les options dans les interrupteurs (ainsi que les guirlandes d'icônes qui y sont attachées), il faut s'assurer que la sortie de la fourche ou de l'interrupteur qui mène au le plus grand succès apparaît sur la voie royale (Fig. 8)... Et les chemins secondaires doivent être aménagés selon la règle : "Le plus à droite, le pire"(fig. 9). Si ces règles sont violées, le schéma du dragon est considéré comme mauvais (Figure 10a). Cependant, il peut toujours être transformé en un bon (Fig. 10b).

Dans les cas où la fonction "mieux ou pire" ne fonctionne pas, un autre critère raisonnable doit être choisi à la place, de sorte que le décalage vers la droite de la route principale ne soit toujours pas arbitraire et chaotique, mais réfléchi et ordonné. Par exemple, lors de la résolution de problèmes mathématiques, les sorties de la fourchette et les options de commutation peuvent être disposées de gauche à droite dans l'ordre d'augmenter ou de diminuer la valeur mathématique (caractéristique) correspondant à ces sorties (Fig. 11, 12).

ROUTE PRINCIPALE DE LA SILHOUETTE

Dans le paragraphe précédent, nous avons appris à organiser les routes d'une primitive. C'est maintenant au tour de la silhouette.

Brochettes de branches la verticale est appelée, reliant l'icône "nom de la branche" à l'icône "adresse", et si la branche a plusieurs sorties - avec celle de gauche. Pour la branche, les deux règles « royales » restent en vigueur :

  • la route principale de la branche doit longer la brochette;
  • Les routes secondaires des embranchements doivent être ordonnées de gauche à droite en fonction de certains critères.

Supposons que le principe « le plus à droite, le pire » soit choisi comme critère. Dans ce cas, chaque branche de la silhouette doit être construite selon une seule règle: plus la verticale suivante est située à droite (plus la brochette d'une branche donnée est éloignée), moins elle réussit.

Par exemple, dans la Fig. 6a, la branche « embarquement dans le bus » comporte trois verticales. La verticale gauche (itinéraire principal) décrit le plus grand succès, car vous serez assis dans le bus. La verticale de droite indique le moins de succès car vous êtes descendu du bus et le voyage est retardé. La verticale médiane (située au dessus de l'icône « Voulez-vous rouler debout ? ») Prend une position intermédiaire, car - selon la réponse - il peut y avoir soit un succès partiel (vous roulerez, mais pas assis, mais debout), ou l'échec, puisque vous descendez du bus sans dormir.

Route de la silhouette principale- connexion séquentielle des routes principales des branches fonctionnant alternativement. Ainsi, DRAGON permet au lecteur de voir instantanément la route principale de n'importe quel algorithme, quelle que soit sa complexité et sa ramification, et, de plus, rend le déplacement de toutes les routes secondaires par rapport à la « royale » non aléatoire, mais significatif et prévisible, qui est, facile à comprendre.

PASSAGE DE LIGNE ? - DIEU DIT !

Certains experts avec un penchant pour les expressions dures appellent les organigrammes traditionnels des « organigrammes de poubelles » parce que les complexités des blocs reliés par le chaos des lignes déchiquetées qui marchent partout ressemblent plus à un tas d'ordures qu'à une structure ordinaire. DRAGON se distingue favorablement par le fait que son motif graphique a une justification mathématique et cognitivo-ergonomie stricte et obéit à des règles strictes et soigneusement pensées. Parmi eux, une place particulière est occupée par la règle : « Les intersections et les ruptures de lignes de raccordement sont interdites ».

Lors du dessin de schémas fonctionnels classiques, deux types d'intersections de lignes sont autorisées : explicites, représentées par une croix de lignes, et masquées, réalisées à l'aide de connecteurs. Comme vous le savez, un connecteur « sert à rompre une ligne et à la prolonger ailleurs... pour éviter des intersections inutiles ».

Dans le langage DRAGON, toutes les astuces ci-dessus (intersections, ruptures, connecteurs) sont considérées comme nuisibles pour des raisons ergonomiques et sont strictement interdites, car elles obstruent le champ de dessin avec des détails inutiles, créent des obstacles visuels pour les yeux et détournent l'attention du principal chose.

Puisque l'interdiction des intersections est une contrainte topologique sérieuse, la question se pose : un algorithme arbitraire peut-il être représenté sous la forme d'un diagramme dragon ?

Théorème 1. Tout programme structuré peut être représenté dans le langage DRAGON de deux manières : en tant que primitive et en tant que silhouette.

Théorème 2. Un programme arbitraire (non structurel) dans certains cas ne peut pas être décrit comme une primitive ; mais avec l'aide transformations équivalentes permettant l'introduction de variables supplémentaires (identifiants de branche), il peut toujours être représenté sous forme de silhouette.

Pour clarifier la question, tournons-nous vers des exemples. En figue. 13a montre un schéma-dragon interdit : une primitive dans laquelle il y a une intersection inamovible (sans introduire de variables supplémentaires). En figue. 13b montre une silhouette qui, comme il est facile à voir, est équivalente à la primitive de la Fig. 13a et en même temps ne contient pas une seule intersection. Ainsi, l'exemple de la Fig. 13 confirme la validité du théorème 2 1.

SYNTAXE VISUELLE ET TEXTE DU DRAGON

DRAGON est un langage visuel qui utilise deux types d'éléments : des formes graphiques ( graphoéléments) et des étiquettes de texte situées à l'intérieur ou à l'extérieur des formes graphiques ( éléments de texte). Par conséquent, la syntaxe DRAGON se divise en deux parties. La syntaxe visuelle couvre l'alphabet des éléments graphiques, les règles de leur placement dans le champ de dessin et les règles de liaison des éléments graphiques à l'aide de lignes de liaison. Syntaxe du texte définit l'alphabet des symboles, les règles pour leur combinaison et leur liaison aux éléments graphiques (la liaison est nécessaire car différents types d'expressions sont utilisés à l'intérieur de différentes formes graphiques). Opérateur de langage DRAGON est un graphoélément ou une combinaison de graphoéléments, associés à des étiquettes de texte.

L'utilisation simultanée de graphiques et de texte suggère que le DRAGON aborde non seulement la pensée logique verbale de l'auteur et du lecteur du programme, mais active en outre la pensée intuitive, figurative, du cerveau droit, la stimulant non pas avec un écrit, mais avec un programme dessiné, c'est-à-dire avec un programme -image.

FAMILLE DE LANGUES DRAGON

DRAGON n'est pas une langue, mais une famille entière, dont toutes les langues ont la même syntaxe visuelle (ce qui rend visuellement les langues de la famille presque jumelles) et diffèrent par la syntaxe du texte.

DRAGON-1- pseudo-langage visuel, analogue visuel du pseudocode de texte ordinaire. Il sert à décrire la structure des activités, à créer des technologies, des algorithmes et des projets de programme, est utilisé dans la méthode de détailler pas à pas, ainsi que dans la formalisation des connaissances professionnelles.

DRAGON-2- langage de programmation visuel en temps réel. Il est un élément CAS-technologies pour le développement de logiciels pour les systèmes de contrôle de missiles et d'objets spatiaux, ainsi que pour les centrales nucléaires, les usines pétrochimiques et métallurgiques, les industries biotechnologiques, etc.

De plus, la famille comprend des langages de programmation visuels hybrides : DRAGON-BASIC, DRAGON-PASKAL, DRAGON-SI, etc. Pour obtenir un langage hybride, par exemple DRAGON-SI, vous devez prendre la syntaxe visuelle de DRAGON et l'attacher à il selon certaines les règles sont la syntaxe textuelle du langage C.

La délimitation stricte de la syntaxe visuelle et textuelle vous permet de maximiser la portée du langage, garantissant sa flexibilité et sa polyvalence. Dans le même temps, l'uniformité des règles de la syntaxe visuelle de la famille des langues DRAGON garantit leur unité conceptuelle, et la variété des règles de texte (c'est-à-dire la possibilité de choisir n'importe quelle syntaxe textuelle) détermine la flexibilité du langue et personnalisation facile à divers problèmes et domaines.

Ce livre se concentre sur le pseudo-langage visuel de DRAGON-1. Comme pour le reste des langues de la famille DRAGON, seules de brèves explications sont données.

CONCLUSIONS

Voici un résumé des règles ergonomiques pour améliorer la qualité cognitive des circuits dragons et rendre les algorithmes, les programmes et les technologies plus compréhensibles.

  1. Un algorithme complexe doit être dessiné comme une silhouette, un simple comme une primitive.
  2. Il est interdit d'écrire le mot « début » dans l'icône « titre » ; à la place, un nom clair et précis pour l'algorithme doit être fourni.
  3. Divisez l'algorithme complexe en parties, décrivez chaque partie comme une branche. Donnez aux pièces un nom significatif et clair et notez-les dans les icônes « nom de branche ».
  4. L'entrée dans une branche n'est possible que par son commencement.
  5. Il est permis d'écrire le nom de l'une des branches dans l'icône « adresse », les autres inscriptions sont interdites.
  6. Les branches doivent être placées dans l'espace selon la règle : le plus à droite, le plus tard. La présence d'un cycle de branche modifie cette règle.
  7. Le primitif doit avoir une brochette. Cela signifie que pour la primitive, les icônes « titre » et « fin » se trouvent toujours sur la même verticale, qui est appelée « brochette ».
  8. Chaque branche doit avoir une brochette. Sur la branche de droite, la brochette est la verticale reliant les icônes « nom de branche » et « fin ». Pour le reste des branches, la brochette est une ligne verticale reliant les icônes "nom de branche" et "adresse", et s'il y a plusieurs adresses - avec celle de gauche.
  9. L'algorithme a toujours une route principale qui doit être embrochée.
  10. Les itinéraires secondaires doivent être ordonnés de gauche à droite selon l'un des critères sélectionnés, par exemple : plus à droite, moins bon.
  11. Dans l'icône "fin", le mot "fin" doit être écrit.
  12. Les lignes de connexion peuvent fonctionner horizontalement ou verticalement. Les lignes obliques ne sont pas autorisées.
  13. Les franchissements de lignes sont interdits.
  14. Les sauts de ligne sont interdits.
  15. L'utilisation de connecteurs est interdite.

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 ? N'est-il pas nécessaire de consacrer des ressources trop importantes (humaines, matérielles, financières et de temps) pour assurer une interaction efficace des spécialistes impliqués dans travailler ensemble? 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 pour le développement intégré du système informatique de Bourane, Vladimir Parondzhanov, et lui a demandé de créer un langage universel qui pourrait remplacer les trois ci-dessus.

Exigences humanitaires pour la langue Dragon

Cependant, Parondzhanov a décidé de poser le problème différemment. Il croyait que 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. Offrir 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 que leurs propre programme ils comprennent à peine après six mois, voire après 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 automatisée pour la conception de systèmes logiciels (technologie CASE) a été construite sous le titre de travail "Graphite-Phlox". La technologie DRAGON comprend un ensemble complet d'outils logiciels : un éditeur procédural, un éditeur déclaratif, une base de données, un traducteur, un analyseur, un 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 langages et de systèmes informatiques partent souvent du mauvais côté et mettent la charrue avant les bœufs. 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 est un langage très léger. Si facile que le développement de nombreux programmes informatiques pour les fusées spatiales est en pratique réalisé non par des programmeurs, mais par 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, le DRAGON fournit au lecteur une méthode en trois étapes ergonomiquement efficace pour comprendre un problème inconnu ou 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 l'éditeur dragon et à l'impression instantanée des résultats pour un aperçu plus complet - il a commencé à le 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 passe à langage graphique LE 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 inscrit l'étude de la langue DRAGON dans le programme d'études du cours d'informatique de l'enseignement supérieur (voir : « Le programme approximatif de la discipline « Informatique ».

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 livre de jeu 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. Un nouveau monde s'ouvrira sous nos yeux admiratifs - 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. Les problèmes mondiaux s'aggravent. 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 la tâche à accomplir - la tâche d'améliorer la productivité créative du 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 caractéristique essentielle 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)

Dernière modification par PBworks il y a 12 ans et 2 mois

PROGRAMMATION CONVIVIALE

LANGAGE DE PROGRAMMATION HYBRIDE DRAGON-SE

Supposons que vous ayez besoin de créer un système de programmation visuelle dans le langage hybride DRAGON-SI. Le problème peut être résolu, par exemple, en utilisant trois programmes : un éditeur dragon, un convertisseur dragon et un compilateur en langage C. A l'aide de l'éditeur dragon, l'utilisateur dessine sur l'écran de l'ordinateur un programme en langage DRAGON-SI (Fig. 90, colonne de droite). Ensuite, le convertisseur dragon convertit la représentation interne des codes graphiques dans le texte source du langage C (Fig. 90, colonne du milieu), après quoi le compilateur C standard convertit le texte source en code objet.

Ainsi, pour construire le langage DRAGON-SI, il faut, selon certaines règles, combiner la syntaxe visuelle du DRAGON avec la syntaxe textuelle du langage SI, en supprimant de ce dernier tous les éléments dont les fonctions sont implémentées par le opérateurs visuels DRAGON. Une paire de langages SI et DRAGON-SI est équivalente dans le sens où un convertisseur peut être construit qui effectue à la fois une conversion directe et inverse. Un tel convertisseur peut convertir le code source d'un programme en langage DRAGON-SI (Fig. 90, colonne de droite) en un programme SI équivalent (Fig. 90, colonne du milieu), et vice versa.

La création d'un langage hybride (par exemple, DRAGON-SI) peut difficilement être considérée comme un développement original, car ce dernier conserve presque complètement le concept, la structure, les types de données et d'autres caractéristiques du langage d'origine (SI). Il est plus juste de dire que la construction d'un langage hybride (DRAGON-SI) est une technique dans laquelle, dans un nombre de cas strictement défini, la notation textuelle de la langue source est remplacée par une notation visuelle. Cependant, cette technique peut améliorer considérablement l'aspect ergonomique de la langue d'origine.

LANGAGE DE PROGRAMMATION HYBRIDE

DRAGON-MODULE

Regardons l'exemple du haut de la Fig. 91. Dans la colonne du milieu, il y a un programme en langage MODULA-2, à droite - un programme équivalent en langage DRAGON-MODULA. La colonne de gauche contient une liste de mots-clés qui sont utilisés dans le programme-module et sont « vitaux » pour le langage MODULA, mais qui sont totalement inutiles dans le programme-dragon.

D'un point de vue ergonomique, ceux-ci et bien d'autres mots clés présentes dans les langues de texte ne sont rien de plus que des interférences visuelles qui attirent l'attention du lecteur et détournent son attention du côté substantiel de la question. L'avantage ergonomique du DRAGON est qu'au lieu de mots-clés, une image visuelle est utilisée, qui est perçue par le lecteur inconsciemment, à un niveau intuitif, tandis que le canal de l'attention consciente est plus productif - pour la perception des aspects les plus importants et significatifs de la tâche.

EXEMPLE D'OPTIMISATION ERGONOMIQUE

PROGRAMMES

En figue. 91 (ci-dessous, dans la colonne du milieu) un programme est écrit en langage PASKAL. Par analogie avec les exemples précédents, il peut être facilement converti en un programme en langage DRAGON-PASKAL. Pour ce faire, dessinez un opérateur visuel « fourchette » et placez un enregistrement dans l'icône « question »

K = 1 OU K = 2

Nous marquons la sortie inférieure de l'icône "question" avec le mot "oui" et y attachons un commutateur avec deux icônes "option", et connectons la bonne sortie (la réponse est "non") à l'icône "sortie", dans lequel nous écrivons WRITELN en haut, et ERROR en dessous. En conséquence, nous obtenons un schéma de dragon, qui est sans aucun doute la solution absolument correcte à la tâche. (Pour plus de clarté, nous conseillons au lecteur de compléter les constructions décrites sur papier.)

Changeons maintenant l'état du problème. Essayons de créer un programme qui n'est pas seulement équivalent au programme pascal de la Fig. 91, mais aussi ergonomiquement optimale pour le lecteur russophone. Le programme requis, écrit en langage DRAGON-2, est représenté sur la même figure en bas à droite.

La différence structurelle entre les programmes est frappante. Le programme Pascal contient deux constructions : si-alors-sinon et cas de... L'optimisation ergonomique consiste dans le fait que le programme dragon n'utilise qu'un seul opérateur visuel (un interrupteur à trois options), qui pourtant remplit « seul » les mêmes fonctions que deux opérateurs texte du langage PASCAL. En conséquence, la condition complexe K = 1 OU K = 2 et les autres excès du programme Pascal sont éliminés, et le schéma du dragon est sensiblement simplifié et devient laconique, transparent et élégant.

PROGRAMMES DE DIALOGUE

Continuons la présentation d'une des approches possibles de la construction du langage de programmation DRAGON-2. Rappelons-le encore une fois : le lecteur ne trouvera pas ici de description de la langue. Notre objectif est beaucoup plus modeste : montrer que la formalisation de la syntaxe du texte pour le langage DRAGON est tout à fait réalisable, et donner plusieurs exemples confirmant cette idée.

Considérez les programmes de dialogue de la Fig. 92 et 93, qui ont amélioré les caractéristiques didactiques (pédagogiques). Pour cela, un vaste ensemble d'outils ergonomiques est utilisé. En particulier, lorsque vous remplissez l'icône de commentaire, utilisez zonage de texte... Pour faciliter la perception, le texte du commentaire est spatialement divisé en deux zones qui, d'une part, ont des limites clairement définies et facilement distinguables, et d'autre part, elles diffèrent par la couleur de fond (blanc et gris). La zone grise contient le texte qui apparaît sur l'écran de l'ordinateur, dans la zone blanche - des explications à celui-ci. Séparer le texte à l'écran des explications rend les commentaires plus faciles à lire et à comprendre.

La technique ergonomique du "text zoning" est utile non seulement dans les commentaires, mais aussi dans d'autres cas, par exemple dans les déclarations d'E/S.

Opérateur "Message"

L'opérateur "Message" permet d'afficher des informations sur l'écran de l'ordinateur. Il contient une icône "sortie", au dernier étage de laquelle le mot-clé "Message" est placé, en bas - les informations de sortie. Lors de la description de ces derniers, le zonage de texte est utilisé : dans la zone grise, ils écrivent les noms de variables ou d'expressions (dont les valeurs doivent être affichées à l'écran), dans la zone blanche - informations permanentes (qui s'affichent inchangées ). Un cercle noir sert de signe d'une nouvelle ligne. Par exemple, dans la Fig. 92 à l'aide de l'opérateur « Message » la phrase « La somme des nombres est égale » et la valeur de l'expression m + n sont affichées à l'écran.

Opérateur "Demande"

L'opérateur « Requête » saisit les valeurs des variables dans l'ordinateur, affiche les informations permanentes, les noms des variables et les valeurs saisies. Dans la partie supérieure de l'icône "entrée", ils écrivent le mot-clé "Demande", dans la partie inférieure - les informations d'entrée et de sortie. Il y a aussi un zonage du texte : dans la zone grise, les noms des variables à saisir dans l'ordinateur sont indiqués, dans la zone blanche, l'information permanente est placée.

Supposons que vous vouliez saisir les valeurs m = 23 et n = 45 (Figure 92). Cela se fait par exemple de la manière suivante : déplacez le curseur sur la zone m, tapez le chiffre 23 au clavier et appuyez sur la touche "retour chariot". Dans ce cas, la zone m de l'écran s'éteint et à la place s'allume le chiffre 23. La valeur de n est saisie de la même manière. Ainsi, l'opérateur « Requête » demande à l'utilisateur les valeurs des variables, les écrit en mémoire et les affiche simultanément à l'écran avec des informations permanentes (si cette dernière est indiquée à l'étage inférieur de l'opérateur « Requête » dans la zone blanche).

Description des données

L'icône « étagère » est utilisée pour décrire les données. Au dernier étage, ils écrivent le mot-clé "Données", en bas - une description des données. Par exemple, dans la Fig. 92, l'icône « étagère » indique que les variables m et n sont de type « entier ».

Une autre voie peut être proposée : la description des données est extraite du schéma-dragon et placée dans un tableau séparé.

IDENTIFIANTS

Voici les règles d'écriture des identifiants.

  • La longueur de l'identifiant est de 1 ... 32 caractères.
  • Il est permis d'utiliser des lettres russes et latines, des chiffres, des points et, éventuellement, des caractères spéciaux.
  • Le premier caractère doit être une lettre (pas un chiffre ou un point).
  • Les espaces ne sont pas autorisés à l'intérieur de l'identifiant.
  • Séparez les mots par des points pour les rendre plus faciles à lire.
  • Il est interdit d'utiliser des abréviations de mots si la longueur de l'identifiant est inférieure à 32 caractères.
  • Si la longueur de l'identifiant est supérieure à 32 caractères, vous devez remplacer certains mots par des abréviations ou réduire le nombre de mots.
  • Il faut s'efforcer de trouver des identificateurs intelligibles qui permettent de comprendre facilement le sens du concept, afin que le lecteur comprenne rapidement l'essence du sujet.

Exemples d'identifiants corrects

Numéro.du.wagon.du.train.rapide

Numéro.wagon.train de voyageurs

Prix ​​d'un billet de train pour Magadan

Prix ​​du billet d'avion pour Magadan

Exemples d'identifiants non valides

Un exemple de raccourcissement de la longueur d'un concept complexe

Supposons que vous souhaitiez créer un identifiant pour le concept suivant : "Vecteur de rayon du centre de la Terre au centre de la piste dans le système de coordonnées d'atterrissage." La description verbale du concept contient 92 symboles. Le défi est de réduire la description de 92 caractères à une description de 32 caractères, tout en gardant le sens du concept aussi clair que possible.

La réduction s'effectuera selon le plan suivant :

  • « Rayon vecteur du centre de la Terre » sera remplacé par « Rayon de la terre ».
  • Au lieu de « Au centre de la piste », nous écrirons « sur la piste ».
  • Nous remplacerons « Dans le système de coordonnées d'atterrissage » par UCS, car une telle abréviation est couramment utilisée dans l'équipe de développeurs de ce système.

En conséquence, nous obtenons un identifiant de 26 caractères

qui conserve presque tous les mots clés du concept original et permet une compréhension assez élevée.

Règles d'écriture des expressions arithmétiques

dans les opérateurs d'affectation

Une distinction doit être faite entre deux cas. Si l'expression est simple, il est recommandé d'utiliser des identifiants à 32 caractères et une notation "verticale" des formules mathématiques, comme le montre la Fig. 94 et 95.

Cependant, lorsqu'il s'agit de calculs mathématiques complexes, la méthode décrite n'est pas adaptée, car les formules « verticales » avec des identifiants de 32 caractères ne permettent pas au lecteur de voir la structure mathématique des calculs, détournant son attention vers la lecture d'identifiants longs, qui paradoxalement passer d'un indice utile à leur contraire et commencer à jouer un rôle négatif d'interférence visuelle. Ainsi, une impasse ergonomique se présente : les identifiants courts ne permettent pas de comprendre rapidement le sens des concepts, et les longs obscurcissent la structure des formules complexes.

Comme l'une des approches possibles pour défaire ce nœud gordien, un plan en trois points peut être proposé.

  • Pour chaque concept mathématique, deux identifiants sont fournis : long (32 caractères) et court (alias).
  • Dans les expressions arithmétiques, seuls des alias sont utilisés, ce qui rend la structure des formules transparente.
  •  Au début du programme, une icône « commentaire » est fournie, qui contient une table de correspondances entre les alias et les identifiants longs. Cette table joue le rôle d'une aide-mémoire, qui est dans le même champ de vision que les opérateurs d'affectation et permet de se rappeler rapidement ce que signifie tel ou tel alias.

TRAITEMENT DE LA TABLEAU

En figue. 94 et 95 sont des exemples de programmes dans lesquels il y a des opérations avec des tableaux.

La description des données est placée à l'étage inférieur de l'icône « étagère ».

signifie qu'il existe un tableau à une dimension nommé « Poids du lapin » contenant 100 éléments, dont chacun est un nombre réel.

L'élément central des deux programmes est la boucle FOR. Considérons les règles de conception d'un cycle. Dans l'icône "le début du cycle POUR" en ligne du hautécrivez le mot "Cycle" et après un espace un alias à un caractère désignant une variable de cycle (lettre k sur les Fig. 94, 95). La ligne du bas indique la plage de son changement, par exemple,

Le signe d'identité indique qu'il est suivi d'un nom-commentaire, c'est-à-dire d'un commentaire rédigé selon les règles d'écriture des identifiants.

La « graisse » ergonomique du commentaire formalisé présente deux avantages. Premièrement, cela vous permet d'éliminer le traditionnel "oubli" des programmeurs et d'expliquer humainement au lecteur la signification d'un identifiant abstrait : disons, k est le numéro d'une cage à lapin. Deuxièmement, et c'est important, l'explication est placée sur le champ de dessin exactement où elle est nécessaire (dans l'icône « le début du cycle POUR »), selon le principe « cher testicule pour le jour du Christ ». Cela signifie que le lecteur obtient une réponse instantanément - à la seconde où il a vu pour la première fois l'alias k et la question a germé dans sa tête : qu'est-ce que k ?

Dans l'icône « fin de cycle POUR », ils notent

La signification des opérateurs organisant le traitement des tableaux ressort clairement de la Fig. 94 et 95 et est explicite.

SCHÉMAS DE DRAGON ABSTRAITS

Dans cette section, nous considérerons la transformation d'un programme visuel dans le langage DRAGON-2 en programme de texte sur BASIC. Cette transformation est utile de deux manières : elle vous permettra d'acquérir une compréhension plus profonde de l'essence de la visualisation et de vous familiariser avec le concept important du schéma abstrait du dragon.

A titre d'exemple, prenons un programme scolaire appelé "Jeu de devinettes" et écrivons-le dans le langage DRAGON-2 (Fig. 96). Ensuite, nous en retirons complètement le texte et obtenons un rat-taupe en dessin, appelé «schéma de dragon abstrait» (Fig. 97). Ce schéma est un invariant de programme qui peut être converti en un programme dans n'importe quel langage de programmation en deux étapes.

Choisissons le langage BASIC comme objectif et mettons-nous au travail. A la première étape, remplissez les icônes vides du schéma abstrait avec du texte BASIC. Le résultat sera un programme équivalent en langage DRAGON-BASIC (Fig. 98). À la deuxième étape, nous nous tournons vers le programme BASIC habituel (nous avons délibérément choisi la version à l'ancienne de BASIC afin de démontrer l'utilisation des instructions goto lors de la description de l'équivalent d'un programme dragon pour changer) - voir fig. 99.

LA PHILOSOPHIE DU LANGAGE DRAGON

Tout langage impératif (SI, PASCAL, ADA, MODULA, BASIC, etc.) peut être divisé en trois parties, trois langages relativement indépendants : route, commande et déclaratif.

Langue de routage- un ensemble d'opérateurs gestionnaires. Langage de commande contient tous les opérateurs de non-contrôle, tels que l'opérateur d'affectation, les règles d'écriture d'expressions arithmétiques et logiques, les identifiants, les mots-clés, etc. Langage déclaratif sert à décrire des données, des classes, etc.

Expliquons ce qui a été dit avec un exemple. Le diagramme abstrait du dragon illustré à la Fig. 97, il y a une "phrase" du langage de routage. Pour le rendre significatif, le texte doit être placé à l'intérieur des icônes. Ce texte est écrit en langage de commande. Cependant, il est parfois conseillé de déplacer les descriptions de données et de classes en dehors du schéma dragon et de les placer ailleurs, par exemple, sous la forme d'un enregistrement ou d'une table séparé.

De là découle le principe de différenciation des trois sous-langues. Le langage de routage est le langage des "images" (des schémas de dragon abstraits dans lesquels il n'y a pas de texte du tout). Le langage de commande est utilisé pour écrire du texte à l'intérieur du schéma du dragon, déclaratif - pour les enregistrements qui peuvent en être extraits.

Lors de la construction de la prochaine langue de la famille des dragons, vous pouvez choisir la commande et les sous-langues déclaratives de n'importe quelle manière (emprunter à d'autres langues ou inventer à nouveau). Cela fournit une multitude de capacités DRAGON et une personnalisation flexible pour diverses applications. Ainsi, la famille dragon n'a qu'un seul lien rigide - le langage de routage, qui n'est rien de plus que les composants visuels du DRAGON (syntaxe visuelle et sémantique).

Le langage de routage est un standard visuel pour la famille dragon, maintenu par l'éditeur visuel de dragon (voir chapitre 14), qui est petit et facile à retenir. Il est la marque invariable du DRAGON, son image visuelle standardisée (Fig. 97).

CLASSIFICATION DES CONNAISSANCES

Tout programme est une certaine somme de connaissances qui peut être divisée en une partie impérative et une partie déclarative. Les considérations ci-dessus permettent de clarifier cette thèse. Un nouveau regard sur le problème est présenté dans la Fig. 100 et se résume à ceci :

  •  Pour analyser les connaissances contenues dans le texte source d'un programme informatique écrit dans un langage impératif, il est conseillé d'utiliser deux classifications : basique et alternative. /Li>
  • Classement de base consiste dans le fait que toutes les connaissances contenues dans le programme original sont divisées en impératif et déclaratif.
  • À son tour, les connaissances impératives sont divisées en connaissances de gestion et de commandement.
  • Comme critère pour une classification alternative, la question suivante est proposée : quel moyen est préférable d'utiliser pour représenter la connaissance - graphique ou texte ?
  • La réponse est la suivante. Il est préférable d'utiliser des graphiques (langage de routage) pour représenter les connaissances de contrôle et du texte pour les connaissances de commande et déclaratives.
  • Ainsi, dans la classification alternative, la connaissance est divisée en visuel (contrôle) et en texte (commande et déclaratif).

Enfin, nous ajoutons : utiliser du texte pour représenter des connaissances de contrôle complexes semble aussi ridicule que d'essayer de décrire une carte géographique avec des mots. Le fait que le texte soit encore utilisé à cette fin ne peut s'expliquer que par une chose : la programmation est bien plus jeune que la géographie !

CONCLUSIONS

  1. Si nous disposons d'une syntaxe visuelle formelle, alors pour construire un langage de programmation visuel, il suffit de construire une syntaxe de texte formelle. Nous nous sommes assurés que ce problème est complètement soluble, et de plusieurs manières. En conséquence, une famille de langages de programmation est formée, à la fois originale (DRAGON-2) et hybride (DRAGON-SI, DRAGON-MODULA, DRAGON-PASKAL, DRAGON-BASIC, etc.).
  2. On peut affirmer que la compréhensibilité des langages visuels est nettement supérieure à la compréhensibilité de leurs homologues textuels. Par conséquent, dans tous les cas où la compréhensibilité est considérée comme le critère principal de la qualité des programmes (et les cas sont nombreux), les langages visuels sont hors compétition. Une mise en garde s'impose ici : le terme « visuel » en lui-même ne garantit rien. Le succès de l'entreprise passe par l'application minutieuse et scrupuleuse des méthodes de la science des facteurs humains (ergonomie). Plus précisément, nous parlons de la synthèse des méthodes informatiques et ergonomiques, de la formation d'une nouvelle direction interdisciplinaire - l'infoergonomie, de la restructuration de l'ensemble du bâtiment de la programmation moderne sur une base ergonomique.
  3. La création de tout langage de programmation de nouvelle génération doit commencer par une analyse des exigences ergonomiques et se terminer par une évaluation des caractéristiques ergonomiques résultantes du langage. L'un des principaux obstacles à la mise en œuvre de ce plan est l'inertie de réflexion de nombreux spécialistes, la sous-estimation de l'importance des méthodes ergonomiques. Pour changer les stéréotypes de pensée dominants, il est nécessaire d'apporter de sérieux changements au programme et aux méthodes d'enseignement de l'informatique dans les écoles et les universités.

Avez-vous entendu parler du langage de programmation DRAGON ? Nous ne sommes pas. Mais notre lecteur prétend que le DRAGON a déjà été inclus dans le programme du cours d'informatique de l'enseignement supérieur.

Avez-vous entendu parler du langage de programmation DRAGON ? Nous ne sommes pas. Mais notre lecteur prétend que le DRAGON a déjà été inclus dans le programme du cours d'informatique de l'enseignement supérieur. L'orthographe et la ponctuation de l'auteur sont conservées. - environ. éd.

En 1976 en URSS, dans le plus grand secret, le développement du vaisseau spatial de transport réutilisable Bourane débute dans le cadre du projet Bourane-Energia. C'était un énorme projet. 86 ministères et départements et 1286 entreprises de l'URSS (soit un total d'environ 2,5 millions de personnes) ont participé à sa création.

« Bourane » a effectué son premier et unique vol spatial le 15 novembre 1988. L'orbiteur a été lancé depuis le cosmodrome de Baïkonour à l'aide du lanceur Energia. Après avoir fait le tour de la Terre, Bourane a atterri sur l'aérodrome de Yubileiny spécialement équipé à Baïkonour. Le vol s'est déroulé sans équipage, entièrement en mode automatique. Contrairement à la navette américaine, qui ne peut atterrir que manuellement. Dans le cadre de l'effondrement de l'URSS et des difficultés de la période de transition en 1990, les travaux sur le programme Energia-Buran ont été suspendus et en 1993 le programme a finalement été clôturé.

Développement de langages de programmation pour Bourane

Lors du développement de Bourane, le problème du développement et du développement de logiciels était considéré comme l'un des plus difficiles. Initialement, on supposait qu'il faudrait plusieurs milliers de programmeurs pour résoudre le problème. A noter que nos programmeurs sont habitués à écrire des programmes en assembleur, la capacité mémoire de l'ordinateur de bord Biser-4 étant à cette époque très limitée.

Dans les matériaux de l'Institut de Mathématiques Appliquées. M.V. Keldysh Institute de l'Académie des sciences de Russie sur les difficultés et les réalisations de cette période est dit comme suit :

"En 1983, les développeurs du vaisseau spatial Bourane ont approché l'Institut [de mathématiques appliquées] avec une demande d'aide pour développer le logiciel embarqué et le logiciel pour les tests au sol du vaisseau spatial. Selon leurs estimations, plusieurs milliers de programmeurs étaient nécessaires pour ce travail. Après avoir étudié le problème, il a été décidé de développer des langages orientés problèmes basés sur les termes, les concepts et la forme de présentation des algorithmes de contrôle et de test utilisés par les développeurs de navires. La mise en œuvre de ces langages a permis aux développeurs de navires eux-mêmes - les auteurs des algorithmes de contrôle et de test pour participer à la création de logiciels embarqués et de test.une équipe de programmeurs hautement qualifiés de l'Institut de Mathématiques Appliquées dans un délai extrêmement court.Pour le développement de logiciels embarqués, un spécialiste temps réel langage PROL2 a été créé et basé sur C'est le système d'automatisation de programmation et de débogage SAPO PROL2 ... Pour développer le logiciel pour les tests au sol du navire, le langage DIPOL orienté problème et le système d'automatisation de programmation et de débogage basé sur celui-ci ont été créés "...

Ainsi, afin de résoudre le problème du manque de programmeurs lors de la création de Bourane, à notre demande, l'Institut de mathématiques appliquées de l'Académie des sciences de Russie a créé deux langues en russe :

  • Langage temps réel PROL2 pour le développement de programmes intégrés embarqués (par Viktor Kryukov)
  • un langage orienté problèmes pour le développement de programmes d'essais au sol DIPOL (par Vladimir Lutsikovich)

De plus, le langage LAX pour la modélisation a été développé au Centre Pilyugin sous la direction de Konstantin Fedorov. Ainsi, trois nouveaux langages sont apparus : PROL2, DIPOL et LAX.

DRAGON Tongue est né dans le berceau de l'espace

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. Cette idée a été exprimée en 1986 par le chef du département complexe, Yuri Trunov (plus tard concepteur général et directeur général du centre Pilyuginsky). Trunov a convoqué le chef du laboratoire pour le développement intégré du système informatique de Bourane, Vladimir Parondzhanov, et lui a demandé de créer un langage universel qui pourrait remplacer les trois ci-dessus. 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. Offrir des moyens efficaces pour décrire la structure de l'activité humaine.
3. Fournir à une personne de tels outils linguistiques qui simplifient considérablement la perception des 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 de 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. Pour obtenir une amélioration radicale de la qualité des logiciels selon le critère « compréhension des algorithmes et des programmes ».

Développement du langage DRAGON et de son logiciel

Le développement d'un nouveau langage et système de programmation a commencé en 1986. 11 ans plus tard, sur la base de DRAGON, une technologie automatisée pour la conception d'algorithmes et de programmes (technologie CASE) appelée "GRAPHITE-FLOX" a été construite.

Tous les travaux ont été achevés en 1996. Puis le langage DRAGON et le système GRAPHITE-FLOX ont été mis en service. Avec leur aide, des algorithmes et des programmes ont été développés pour le module de pré-accélération du vaisseau spatial du projet international de lancement en mer. Au total, il a fallu trois ans pour développer et tester le logiciel et d'autres éléments du système de contrôle. En 1999, tous les travaux étaient terminés. Le système était prêt à démarrer.

Le premier lancement du système de missile Sea Launch a eu lieu le 28 mars 1999. C'est arrivé à 5 heures. 30 minutes. Heure de Moscou (27 mars 1999 à 18h30 heure du Pacifique) depuis la plate-forme de lancement Odyssey dans l'océan Pacifique à proximité des îles Kiribati.

Ce lancement a été le baptême du feu du langage DRAGON et de la technologie de création de programmes « Graphite-Phlox ». Il a démontré de manière convaincante leur efficacité et leur fiabilité. Depuis lors, 29 lancements de missiles ont été effectués dans le cadre du programme Sea Launch. Le dernier lancement a eu lieu le 24 septembre 2008. Le langage DRAGON est utilisé avec succès dans de nombreux autres programmes spatiaux :

  • l'étage supérieur de la sonde Fregat ;
  • le lanceur amélioré Proton-M ;
  • module de pré-accélération du vaisseau spatial DM-SL-B (projet "Start in the Desert", ou "Ground Launch"), etc.

Étant donné que les résultats de l'utilisation du Dragon étaient constamment élevés, la direction du Centre Pilyugin a décidé d'utiliser la technologie du dragon dans tous les projets ultérieurs.

Programmation sans programmeurs

DRAGON est un langage très léger. Si facile que le développement de nombreux programmes informatiques pour les fusées spatiales n'est pas réalisé par des programmeurs, mais par des ingénieurs - selon 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 ingénieurs ont une connaissance approfondie du matériau et sont bien conscients de l'énoncé du problème. Contrairement à eux, les programmeurs ne connaissent pas la "physique du processus" et deviennent des "personnes superflues", sans lesquelles dans certains cas (mais pas toujours) il est tout à fait possible de s'en passer.

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 éliminez complètement les erreurs de "téléphone endommagé" causées par une incompréhension mutuelle entre les programmeurs et les ingénieurs.

Les secrets du développement spatial - à l'économie nationale

DRAGON est polyvalent. Il peut être utilisé pour la présentation visuelle et le développement rapide d'algorithmes non seulement dans "l'espace", mais aussi dans les types "terrestres" d'activité humaine. L'utilité pratique du DRAGON a été très appréciée. On peut supposer que la langue DRAGON se généralisera dans divers domaines, y compris le système éducatif. À un moment donné, Niklaus Wirth, l'auteur du langage Pascal, pensait que Pascal devrait être le tout premier langage à partir duquel commencer à apprendre la programmation. Ce point de vue est devenu presque universellement 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 ergonomiques. Dans ces conditions, le grand-père Pascal a perdu sa gloire d'antan d'excellent outil pédagogique.

Aujourd'hui, ce rôle se déplace vers le langage visuel DRAGON. C'est DRAGON qui devient le langage le plus simple, le plus facile, le plus pratique et le plus logiquement harmonieux à partir duquel commencer à apprendre les algorithmes et la programmation.

Dragon dans le système éducatif

En 1996, le Comité d'État pour l'enseignement supérieur Fédération Russe inclus l'étude de la langue DRAGON dans le programme du cours d'informatique de l'école supérieure. Ce fait est reflété dans le document du Comité d'État pour l'enseignement supérieur sous le titre :

Actuellement, la préparation de manuels pédagogiques pour les écoles secondaires et supérieures est en cours. Le premier d'entre eux a déjà été publié - un livre de jeu pour les enfants d'âge scolaire.

Des algorithmes sans programmeurs - c'est très simple !

A L'APPROCHE D'UNE NOUVELLE LANGUE

Dans certaines sections de mon livre, je suis allé au-delà des théories dans lesquelles je peux prétendre être
toute connaissance professionnelle. Je demande à ceux dont j'ai envahi les zones protégées, de me pardonner ma témérité. Et si les trophées individuels sur lesquels j'écris n'existent que dans mon imagination, alors au moins un tel braconnage ne cause aucun préjudice aux propriétaires légitimes, alors qu'un visiteur occasionnel peut parfois voir quelque chose d'inattendu et de réel.

George Padget Thomson

POURQUOI AVEZ-VOUS BESOIN D'UNE LANGUE DRAGON ?

DRAGON est un langage algorithmique avec une propriété inhabituelle : en même temps c'est un langage pour décrire la structure de l'activité, un langage de compréhension et de compréhension mutuelle, un langage pour le développement de l'intelligence. En tant que langage de programmation, il répond aux exigences de rigueur mathématique, qui permet d'obtenir sans ambiguïté un code objet (code machine pour un ordinateur) à partir d'un texte source. Mais ce n'est pas l'essentiel. Lors de la création du DRAGON, l'attention principale a été portée sur le facteur humain, en améliorant la visibilité et la clarté des projets et technologies techniques et sociaux, en améliorant les caractéristiques ergonomiques des algorithmes, afin non pas en mots, mais en actes pour transformer le DRAGON en un langage pour améliorer le travail de l'esprit, un langage de compréhension et de compréhension.

Bien que le DRAGON ressemble beaucoup aux schémas fonctionnels habituels des algorithmes et des programmes, il s'agit en fait d'un développement original. L'analogue fonctionnel le plus proche du DRAGON doit être considéré comme des diagrammes d'action et des diagrammes d'activité.

Pour les lecteurs méticuleux qui aiment les détails, des "parents" plus éloignés peuvent être appelés des analogues du DRAGON - à un degré ou à un autre. Ceux-ci incluent : diagrammes Nessie-Schneiderman, diagrammes HOS, diagrammes greenprint, diagrammes NEC SPD, diagrammes Hitachi PAD, arbres et tableaux de décision, diagrammes de décomposition, diagrammes de dépendances, langage SDL et ses dérivés, système BLS, créé par A. Smolyaninov du St Université électrotechnique de Saint-Pétersbourg, le circuit R de I. Vel'bitsky, le circuit de V. Prokhorov, etc.

QUEL EST LE SECRET DU DRAGON ? - DANS UNE APPROCHE COGNITIVE

Cependant, la comparaison avec des analogues dans ce cas est improductive, car elle ne permet pas de révéler le plus caractéristique essentielle DRAGON, que l'on appelle « l'approche cognitive ». Le terme "cognitif" (cognitif) n'est pas encore répandu parmi les concepteurs, développeurs, ingénieurs et programmeurs, mais c'est le mot de passe secret d'un nouvel ordre scientifique puissant, ou plutôt, la bannière de deux nouvelles directions en développement rapide en psychologie et la science de l'intelligence, connue sous le nom de psychologie cognitive et science cognitive.

L'un des objectifs de ces disciplines est de révéler les réserves cachées du cerveau humain, d'augmenter la productivité créative des travailleurs intellectuels.
L'essence de la question est la suivante. Développeurs de projets techniques et sociaux, les travailleurs intellectuels sont des êtres vivants dotés d'un cerveau dont les possibilités, bien que grandes, sont pourtant loin d'être illimitées. Ainsi, le problème de conception n'est pas seulement un problème technique, mais aussi humain, cognitif, c'est-à-dire un problème cognitif.

Le facteur cognitif dans ce livre fait référence aux aspects cognitifs, intellectuels, mentaux et créatifs des activités des scientifiques, des spécialistes et des étudiants. Plus l'objet de la conception technique et sociale est complexe, plus il est important de souligner la nécessité d'examiner attentivement les caractéristiques cognitives de l'activité humaine. L'académicien P. Simonov souligne : pour les développeurs de systèmes « il est extrêmement important de connaître les règles selon lesquelles le cerveau vivant perçoit, traite, corrige et utilise les informations nouvellement reçues. La psychologie cognitive fournit des informations sur ces règles, révélées dans l'expérience ».
L'utilisation de ces règles vous permet d'obtenir un résultat pratique - augmenter la productivité du travail mental.

POURQUOI LES GENS NE SONT-ILS PAS INTÉRESSÉS PAR PROPRE CERVEAU ?

Au cours des deux dernières décennies, des informations nouvelles et extrêmement importantes sur le travail du cerveau ont été obtenues dans le cadre de la recherche neurobiologique et psychologique. Ils ouvrent la voie à des transformations révolutionnaires du travail intellectuel, créant les conditions préalables à une augmentation cardinale de sa productivité créatrice génératrice de connaissances. En fait, nous sommes à la veille d'une réforme stratégique du travail intellectuel, promettant l'inclusion dans le travail créatif de nouvelles réserves puissantes du cerveau et de l'intellect humains. Mais ces résultats, en raison des barrières interdisciplinaires bien connues, ne sont pas encore devenus la propriété des concepteurs, ingénieurs et programmeurs développant des systèmes techniques et sociaux complexes. En conséquence, une situation paradoxale s'est créée. Expliquons la situation avec un exemple.

La programmation est faite par des gens avec des cerveaux. Jusqu'à présent, cependant, les langages de programmation, les méthodes et les théories ont été construits sans tenir compte de la construction du cerveau. Il est impossible de maximiser la productivité créative du cerveau d'un programmeur sans considérer sa construction. D'où, manières traditionnelles les langages de programmation et les technologies qui ignorent la construction du cerveau sont obsolètes et inefficaces.

Il semble que cette conclusion soit également valable dans d'autres cas. Ignorant les lois du cerveau, une attention insuffisante aux problèmes cognitifs entraîne des conséquences désagréables : incompréhension mutuelle entre co-auteurs de projets complexes, délires sérieux dans les connaissances scientifiques, erreurs scientifiques et techniques majeures dont l'élimination nécessite des coûts matériels importants (associés aux des améliorations de conception coûteuses et des modifications logicielles chronophages), ainsi qu'une diminution tangible de la productivité résultante des développeurs et des autres participants aux projets techniques et sociaux.

La science des facteurs humains s'appelle l'ergonomie. Les problèmes cognitifs sont une partie importante de l'ergonomie. Pour isoler le groupe cognitif des autres problèmes ergonomiques, les termes « ergonomie cognitive » et « problèmes cognitifs-ergonomiques » sont parfois utilisés.

LE DRAGON DEVIENDRA-T-IL CHAMPION DU MONDE PAR LE CRITÈRE « ACCEPTATION DES ALGORITHMES » ?

Ce livre est de nature purement pratique. On montrera ci-dessous que l'approche cognitive est une méthode de travail qui porte des fruits utiles : améliorer la compréhension des algorithmes et des programmes, des projets et des technologies, et augmenter la productivité de travaux intellectuels complexes. Nous essaierons d'étayer cette thèse, en révélant progressivement les caractéristiques du langage DRAGON.

Comme tous les autres langages, DRAGON est basé sur les mathématiques et la logique. En plus de cela, cependant, il prend en compte les problèmes cognitifs de la manière la plus prudente. Grâce à l'utilisation systématique de méthodes cognitivo-ergonomiques, DRAGON a acquis des caractéristiques ergonomiques uniques. On peut supposer qu'à l'avenir DRAGON pourra prétendre au titre de champion selon le critère de "compréhensibilité des algorithmes et des programmes" (dans la classe des langages impératifs).

DRAGON peut être défini comme un langage visuel accessible au public conçu pour décrire la structure des activités, pour systématiser, structurer, visualiser et formaliser des connaissances impératives, ainsi que pour la conception, la programmation, la modélisation et l'apprentissage. C'est un langage universel intersectoriel du monde des affaires qui sert à décrire des tâches scientifiques, techniques, médicales, biologiques, économiques, sociales, éducatives et autres. DRAGON vous permet de rationaliser et de présenter une solution à tout problème, aussi complexe soit-il, impératif (procédural, activité, technologique, recette, algorithmique) sous la forme de dessins visuels réalisés selon le principe " regardé - et tout de suite compris !”.

L'humanité du langage DRAGON, le désir de créer un maximum de confort pour le travail du cerveau humain, le souci global d'augmenter la productivité créative du personnel nous permet d'espérer que le DRAGON sera largement utilisé dans l'économie nationale, les affaires , la défense, la science et le système éducatif. Utilisant non seulement des formes visuelles, mais extrêmement visuelles de représentation des connaissances, facilitant le travail du cerveau, le DRAGON fournit une augmentation notable de la productivité du travail intellectuel.
Le langage DRAGON est basé sur l'idée de formalisation cognitive des connaissances, qui permet de combiner la rigueur de la formalisation logique et mathématique avec un compte rendu précis des caractéristiques cognitives (cognitives) d'une personne. De ce fait, il a été possible de simplifier et de faciliter radicalement la procédure de description de la structure des activités, de formaliser les connaissances professionnelles des spécialistes, de les standardiser et de les rendre adaptées au grand public. utilisation pratique... Cela s'applique aussi bien aux activités intellectuelles informatiques qu'aux activités intellectuelles « sans ordinateur » des personnes.

Ainsi, l'objectif principal de la création du langage DRAGON est de fournir un saut qualitatif dans l'augmentation de la productivité du travail intellectuel complexe en augmentant la productivité intellectuelle du cerveau humain, en identifiant et plus pleine utilisation réserves d'intelligence humaine, la création de prérequis cognitifs pour une augmentation significative de l'efficacité des technologies de l'information.

EN QUI LA LANGUE DRAGON EST-ELLE CALCULEE ?

Le langage est également conçu pour quatre catégories de personnes :
- les personnes peu familiarisées (ou peu familiarisées) avec la programmation et l'informatique : mécaniciens, électriciens, ingénieurs complexes, instrumentistes, testeurs, physiciens, chimistes, géologues, biologistes, médecins, agronomes, économistes, juristes, psychologues, etc. ;
- pour les programmeurs professionnels, les mathématiciens et les développeurs informatiques, y compris les spécialistes des systèmes d'exploitation, de la programmation système et appliquée, ainsi que de la microprogrammation (pour ordinateurs personnels, universels, de contrôle et de bord) ;
- pour les élèves et étudiants ;
- pour les gestionnaires de plusieurs niveaux qui veulent comprendre l'essence de problèmes complexes dans les plus brefs délais.

LISTE DES TÂCHES À RÉSOUDRE AVEC LE LANGAGE DRAGON

Le langage DRAGON peut être utilisé pour résoudre les tâches suivantes :

Description de la structure de l'activité humaine;
- présentation visuelle des connaissances impératives dans tous les domaines de l'économie nationale, de la science et de l'éducation ;
- description des solutions conceptuelles et des modèles impératifs ;
- concevoir des algorithmes et des programmes ;
- développement d'algorithmes et de programmes ;
- conception de procédés technologiques ;
- une description de toutes les technologies (industrielles, agricoles, médicales, pédagogiques, de gestion, etc.) ;
- une description du processus de conception ;
- description des processus de fonctionnement des systèmes et dispositifs discrets, y compris les systèmes intelligents ;
- description des données initiales pour le développement de systèmes de conception assistée par ordinateur et de systèmes d'automatisation de la recherche scientifique ;
- une description du processus de résolution de problèmes mathématiques ;
- une description du dialogue et de l'interaction entre l'opérateur humain et la machine (panneau de commande) ;
- une description du processus de vérification et de dépannage ;
- résoudre des problèmes de diagnostic dans tous les domaines;
- développement de microprogrammes ;
- description du processus de fonctionnement des organisations et des entreprises ;
- la formalisation automatique des connaissances professionnelles des scientifiques, designers, mathématiciens, médecins, juristes, agronomes, psychologues, opérateurs, etc. ;
- résoudre des problèmes pédagogiques : enseigner les compétences d'algorithmique, de programmation et de formalisation automatique des connaissances dans les plus brefs délais.

Comme déjà mentionné, l'analogue fonctionnel du DRAGON est les modèles d'action et les modèles d'action. Le DRAGON est capable de remplir toutes les fonctions de ce dernier (le contraire n'est pas vrai). Par conséquent, la liste peut être poursuivie en incluant les tâches résolues par les schémas d'action. Cela vous permettra de décrire certaines des fonctions du DRAGON en utilisant des termes propres à la littérature américaine :

Aperçu stratégique des fonctions corporatives;
- une description de la relation logique entre les processus ;
- description de la structure globale du programme ;
- une description de la logique détaillée du programme ;
- décomposition complète des programmes (décomposition ultime), à ​​partir de la logique élargie et se terminant par les détails du code, ce qui est également utile lors de la conception à la fois de haut en bas (design top-down) et de bas en haut (bottom-up conception);
- la conception des programmes jusqu'au dernier moment peut être réalisée indépendamment de la langue, et ce n'est qu'à la dernière étape que s'effectue le passage à la langue souhaitée ;
- former les utilisateurs finaux, les encourager à analyser et à concevoir une logique de processus détaillée ;
- une description des procédures de gestion ;
- description des méthodologies informatiques ;
- description des méthodologies de l'ingénierie de l'information.

Comme vous pouvez le voir sur cette liste, DRAGON a la propriété de polyvalence, étant utile pour résoudre un large éventail de tâches diverses. Grâce à cela, DRAGON remplit la fonction de langage universel de communication commerciale et de compréhension mutuelle pour les spécialistes de diverses spécialités. De plus, DRAGON facilite grandement le processus de formalisation des connaissances, ouvrant de nouvelles opportunités pour augmenter le niveau d'automatisation dans la conception et l'exploitation d'objets complexes.

CONCLUSIONS

1. Les objectifs et méthodes traditionnels de création de langages artificiels, en particulier les langages de programmation, doivent être considérés comme largement dépassés.

2. Des recherches récentes dans le domaine de la neurobiologie, de la psychologie, des sciences cognitives et de l'ergonomie ont fourni des informations nouvelles et extrêmement précieuses sur le travail du cerveau, qui peuvent et doivent être utilisées dans le développement d'une nouvelle génération de langages afin de augmenter la productivité du cerveau humain.

3. Actuellement, il n'existe pas de stratégie bien pensée visant à supprimer les barrières interdisciplinaires visant à doter les développeurs de langages artificiels de la nouvelle génération de connaissances approfondies dans le domaine des sciences humaines, des facteurs humains et de l'intelligence humaine. Cette carence doit être éliminée dans les plus brefs délais.

4. Le concept de langues artificielles d'une nouvelle génération repose sur une approche interdisciplinaire et change radicalement les idées traditionnelles sur la finalité des langues artificielles et un ensemble d'exigences prioritaires pour celles-ci. Les questions et les exigences humanitaires sont mises au premier plan, qui doivent être correctement détaillées.

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