Dračí jazyk. hybridný programovací jazyk Dragon-si. Vizuálne logické vzorce

  • 14.06.2019

Naposledy upravil PBworks pred 12 rokmi, 2 mesiacmi

PRIATEĽSKÉ PROGRAMOVANIE

HYBRIDNÝ PROGRAMOVACÍ JAZYK DRAGON-SE

Predpokladajme, že potrebujete vybudovať vizuálny programovací systém v hybridnom jazyku DRAGON-SI. Problém je možné vyriešiť napríklad pomocou troch programov: dragon editor, dragon converter a kompilátor jazyka C. Používateľ pomocou editora drakov nakreslí na obrazovku počítača program v jazyku DRAGON-SI (obr. 90, pravý stĺpec). Potom dragon converter prevedie internú reprezentáciu grafických kódov do zdrojového textu jazyka C (obr. 90, stredný stĺpec), po čom štandardný kompilátor C prevedie zdrojový text na objektový kód.

Aby bolo možné zostaviť jazyk DRAGON-SI, je potrebné podľa určitých pravidiel spojiť vizuálnu syntax DRAGON s textovou syntaxou jazyka SI, pričom sa z neho odstránia všetky prvky, ktorých funkcie sú implementované vizuálnych operátorov DRAGON. Dvojica jazykov SI a DRAGON-SI je ekvivalentná v tom zmysle, že je možné zostaviť prevodník, ktorý vykonáva priamu aj inverznú konverziu. Takýto konvertor dokáže previesť zdrojový kód programu v jazyku DRAGON-SI (obr. 90, pravý stĺpec) na ekvivalentný SI program (obr. 90, stredný stĺpec) a naopak.

Vytvorenie akéhokoľvek hybridného jazyka (napríklad DRAGON-SI) možno len ťažko považovať za originálny vývoj, pretože tento takmer úplne zachováva koncept, štruktúru, dátové typy a ďalšie vlastnosti pôvodného jazyka (SI). Správnejšie je povedať, že konštrukcia hybridného jazyka (DRAGON-SI) je technika, pri ktorej sa v presne definovanom počte prípadov nahrádza textový zápis zdrojového jazyka vizuálnym. Táto technika však môže výrazne zlepšiť ergonomický vzhľad pôvodného jazyka.

HYBRIDNÝ PROGRAMOVACÍ JAZYK

DRAK-MODULA

Pozrime sa na vrchný príklad na obr. 91. V strednom stĺpci je program v jazyku MODULA-2, vpravo ekvivalentný program v jazyku DRAGON-MODULA. Ľavý stĺpec obsahuje zoznam kľúčových slov, ktoré sa používajú v module-programe a sú „životne dôležité“ pre jazyk MODULA, ale ktoré sú v programe dragon úplne zbytočné.

Z ergonomického hľadiska nie sú tieto a mnohé ďalšie kľúčové slová prítomné v textových jazykoch ničím iným ako vizuálnymi poruchami, ktoré priťahujú pozornosť čitateľa a odvádzajú jeho pozornosť od vecnej stránky veci. Ergonomická výhoda DRAKA spočíva v tom, že namiesto kľúčových slov je použitý vizuálny obraz, ktorý čitateľ vníma nevedome, na intuitívnej úrovni, pričom kanál vedomej pozornosti je produktívnejší - pre vnímanie najdôležitejších, zmysluplných aspektov úloha.

PRÍKLAD ERGONOMICKEJ OPTIMALIZÁCIE

PROGRAMY

Na obr. 91 (dole, v strednom stĺpci) je program napísaný v jazyku PASKAL. Analogicky s predchádzajúcimi príkladmi ho možno ľahko previesť na program v jazyku DRAGON-PASKAL. Ak to chcete urobiť, nakreslite vizuálny operátor „vidlice“ a vložte záznam do ikony „otázka“.

K = 1 ALEBO K = 2

Označte spodný východ ikony „otázka“ slovom „áno“ a pripevnite k nemu prepínač s dvomi ikonami „možnosť“ a pravý východ (odpovedajte „nie“) prepojte s ikonou „výstup“, v ktorej hore napíšte WRITELN a dole ERROR. V dôsledku toho dostaneme dračiu schému, ktorá je nepochybne absolútne správnym riešením problému. (Pre prehľadnosť odporúčame čitateľovi dokončiť opísané konštrukcie na papieri.)

Teraz zmeňme stav problému. Skúsme vytvoriť program, ktorý nie je ekvivalentný len programu pascal na obr. 91, ale aj ergonomicky optimálne pre rusky hovoriaceho čitateľa. Požadovaný program napísaný v jazyku DRAGON-2 je zobrazený na rovnakom obrázku vpravo dole.

Štrukturálny rozdiel medzi programami je markantný. Program Pascal obsahuje dve konštrukcie: ak-tak-inak a prípad... Ergonomická optimalizácia spočíva v tom, že program dragon používa iba jeden vizuálny operátor (prepínač s tromi možnosťami), ktorý však „sám“ vykonáva rovnaké funkcie ako dva textové operátory jazyka PASCAL. Výsledkom je, že komplexná podmienka K = 1 ALEBO K = 2 a ďalšie excesy programu Pascal sú odstránené a schéma draka je výrazne zjednodušená a stáva sa lakonickou, transparentnou a elegantnou.

DIALÓGOVÉ PROGRAMY

Pokračujme v predstavení jedného z možných prístupov ku konštrukcii programovacieho jazyka DRAGON-2. Pripomeňme ešte raz: popis jazyka tu čitateľ nenájde. Náš cieľ je oveľa skromnejší: ukázať, že formalizácia textovej syntaxe pre jazyk DRAGON je celkom realizovateľná, a uviesť niekoľko príkladov potvrdzujúcich túto myšlienku.

Zvážte dialógové programy na obr. 92 a 93, ktoré majú zlepšené didaktické (pedagogické) charakteristiky. Na tento účel sa používa rozsiahla sada ergonomických nástrojov. Najmä pri vypĺňaní ikony komentára použite zónovanie textu... Pre uľahčenie vnímania je text komentára priestorovo rozdelený do dvoch zón, ktoré majú jednak jasne definované a ľahko odlíšiteľné hranice, jednak sa líšia farbou pozadia (biela a sivá). Sivá oblasť obsahuje text, ktorý sa zobrazuje na obrazovke počítača, v bielej oblasti - vysvetlivky k nemu. Oddelenie textu na obrazovke od vysvetlení uľahčuje čítanie a pochopenie komentárov.

Ergonomická technika „zónovania textu“ je užitočná nielen v komentároch, ale aj v iných prípadoch, napríklad v I / O vyhláseniach.

Operátor "Správa"

Operátor „Message“ sa používa na zobrazenie informácií na obrazovke počítača. Obsahuje ikonu „výstup“, na ktorej hornom poschodí je umiestnené kľúčové slovo „Správa“, na spodnej strane výstupné informácie. Pri popise druhého sa používa zónovanie textu: v sivej zóne píšu názvy premenných alebo výrazov (ktorých hodnoty by sa mali zobrazovať na obrazovke), v bielej zóne - trvalé informácie (ktoré sa zobrazujú nezmenené). ). Čierny kruh slúži ako znak nového riadku. Napríklad na obr. 92 pomocou operátora „Správa“ sa na obrazovke zobrazí fráza „Súčet čísel sa rovná“ a hodnota výrazu m + n.

Operátor "Žiadosť"

Operátor „Požiadavka“ zadá hodnoty premenných do počítača, zobrazí trvalé informácie, názvy premenných a zadané hodnoty. V hornej časti ikony "vstup" píšu kľúčové slovo "Požiadavka", v dolnej časti - vstupné a výstupné informácie. K dispozícii je tiež zónovanie textu: názvy premenných, ktoré sa majú zadať do počítača, sú uvedené v sivej zóne a trvalé informácie sú umiestnené v bielej zóne.

Predpokladajme, že chcete zadať hodnoty m = 23 an = 45 (obrázok 92). Urobíte to napríklad takto: presuňte kurzor do zóny m, napíšte na klávesnici číslo 23 a stlačte kláves „carriage return“. V tomto prípade zóna m na obrazovke zhasne a namiesto nej sa rozsvieti číslo 23. Hodnota n sa zadáva rovnakým spôsobom. Operátor „Žiadosť“ teda požiada používateľa o hodnoty premenných, zapíše ich do pamäte a súčasne ich zobrazí na obrazovke spolu s trvalou informáciou (ak je táto uvedená na spodnom poschodí operátora „Žiadosť“ v bielej zóne).

Popis údajov

Ikona „polica“ sa používa na popis údajov. Na hornom poschodí napíšu kľúčové slovo "Údaje", na spodku - popis údajov. Napríklad na obr. 92 ikona „polica“ označuje, že premenné m a n sú typu „celé číslo“.

Môže byť navrhnutý iný spôsob: popis údajov sa vyberie z drakovej schémy a umiestni sa do samostatnej tabuľky.

IDENTIFIKÁTORY

Tu sú pravidlá pre písanie identifikátorov.

  • Dĺžka identifikátora je 1 ... 32 znakov.
  • Je povolené používať akékoľvek ruské a latinské písmená, čísla, bodku a prípadne aj špeciálne znaky.
  • Prvý znak musí byť písmeno (nie číslo ani bodka).
  • V rámci identifikátora nie sú povolené medzery.
  • Slová oddeľte bodkami, aby sa ľahšie čítali.
  • Je zakázané používať slovnú skratku, ak je dĺžka identifikátora menšia ako 32 znakov.
  • Ak je dĺžka identifikátora viac ako 32 znakov, je potrebné nahradiť niektoré slová skratkami alebo znížiť počet slov.
  • Človek by sa mal snažiť prísť so zrozumiteľnými identifikátormi, ktoré uľahčia pochopenie významu pojmu, aby čitateľ rýchlo pochopil podstatu veci.

Príklady správnych identifikátorov

Číslo.vozňa.rýchlika

Číslo.vozeň.osobný vlak

Cena lístka na vlak do Magadanu

Cena letenky do Magadanu

Príklady neplatných ID

Príklad skrátenia dĺžky zložitého konceptu

Predpokladajme, že chcete vytvoriť identifikátor pre nasledujúci koncept: "Vektor polomeru stredu Zeme v strede dráhy v súradnicovom systéme pristátia." Slovný popis pojmu obsahuje 92 symbolov. Výzvou je zredukovať 92-znakový popis na 32 znakov a zároveň zachovať čo najjasnejší význam pojmu.

Zníženie sa uskutoční podľa nasledujúceho plánu:

  • „Vektor polomeru stredu Zeme“ bude nahradený „Polomer zeme“.
  • Namiesto „V strede dráhy“ napíšeme „na dráhe“.
  • „V systéme súradníc pristátia“ nahradíme UCS, keďže takáto skratka sa bežne používa v tíme vývojárov tohto systému.

Výsledkom je 26-znakový identifikátor

ktorý zachováva takmer všetky kľúčové slová pôvodného konceptu a poskytuje pomerne vysoké porozumenie.

Pravidlá písania aritmetických výrazov

v operátoroch priraďovania

Treba rozlišovať medzi dvoma prípadmi. Ak je výraz jednoduchý, odporúča sa použiť 32-znakové identifikátory a „vertikálny“ zápis matematických vzorcov, ako je znázornené na obr. 94 a 95.

Pokiaľ však ide o zložité matematické výpočty, opísaná metóda nie je vhodná, keďže „vertikálne“ vzorce s 32-znakovými identifikátormi neumožňujú čitateľovi vidieť matematickú štruktúru výpočtov, čo odvádza jeho pozornosť na čítanie dlhých identifikátorov, ktoré paradoxne premeniť z užitočného náznaku na svoj opak a začať hrať negatívnu úlohu vizuálneho rušenia. Vzniká tak ergonomická slepá ulička: krátke identifikátory vám neumožňujú rýchlo pochopiť význam pojmov a dlhé zakrývajú štruktúru zložitých vzorcov.

Ako jeden z možných prístupov k zrušeniu tohto gordického uzla možno navrhnúť trojbodový plán.

  • Každý matematický koncept má dva identifikátory: dlhý (32-znakový) a krátky (alias).
  • V aritmetických výrazoch sa používajú iba aliasy, vďaka čomu je štruktúra vzorcov transparentná.
  •  Na začiatku programu je k dispozícii ikona „komentár“, ktorá obsahuje tabuľku zhody medzi aliasmi a dlhými identifikátormi. Táto tabuľka hrá rolu cheat sheetu, ktorý je v rovnakom zornom poli s operátormi priradenia a umožňuje vám rýchlo si zapamätať, čo ten či onen alias znamená.

SPRACOVANIE POLIA

Na obr. 94 a 95 sú príklady programov, v ktorých sú operácie s poľami.

Popis údajov je umiestnený na spodnom poschodí ikony „police“.

znamená, že existuje jednorozmerné pole s názvom „Hmotnosť králika“ obsahujúce 100 prvkov, z ktorých každý je skutočné číslo.

Základným prvkom oboch programov je slučka FOR. Uvažujme o pravidlách navrhovania cyklu. Do ikony „začiatok cyklu PRE“ v hornom riadku napíšu slovo „Cyklus“ a za medzeru jednoznakový alias označujúci premennú cyklu (písmeno k na obr. 94, 95). Spodný riadok označuje rozsah jeho zmeny, napr.

Identifikačný znak ≡ ukazuje, že za ním nasleduje meno-komentár, teda komentár napísaný podľa pravidiel pre písanie identifikátorov.

Ergonomický „tuk“ formalizovaného komentára má dve výhody. Po prvé, umožňuje odstrániť tradičnú „zábudlivosť“ programátorov a ľudsky vysvetliť čitateľovi význam abstraktného identifikátora: povedzme k je číslo králičej klietky. Po druhé, a čo je dôležité, vysvetlenie je umiestnené na kresliacom poli presne tam, kde je to potrebné (v ikone „začiatok cyklu PRE“), podľa princípu „drahé vajce na Kristov deň“. To znamená, že čitateľ dostane odpoveď okamžite – hneď v momente, keď prvýkrát uvidel prezývku k a v hlave mu svitla otázka: čo je k?

V ikone „koniec cyklu PRE“ urobia záznam

Význam operátorov organizujúcich spracovanie polí je zrejmý z obr. 94 a 95 a je samovysvetľujúce.

ABSTRAKTNÉ SCHÉMY DRAKA

V tejto časti sa budeme zaoberať transformáciou vizuálneho programu v jazyku DRAGON-2 na textový program v BASICu. Táto transformácia je užitočná v dvoch smeroch: umožní vám hlbšie pochopiť podstatu vizualizácie a zoznámiť sa s dôležitým konceptom schémy abstraktného draka.

Ako príklad si zoberme školský vzdelávací program s názvom „Hádanie hry“ a napíšme ho v jazyku DRAGON-2 (obr. 96). Potom z nej úplne odstránime text a získame krysu kresliacu, ktorá sa nazýva „abstraktná dračia schéma“ (obr. 97). Táto schéma je programovým invariantom, ktorý možno previesť na program v akomkoľvek programovacom jazyku v dvoch krokoch.

Vyberme si za cieľ jazyk BASIC a pustme sa do toho. V prvom kroku vyplníme prázdne ikony abstraktnej schémy ZÁKLADNÝM textom. Výsledkom bude ekvivalentný program v jazyku DRAGON-BASIC (obr. 98). V druhom kroku sa obraciame na zvyčajný program BASIC (zámerne sme zvolili staromódnu verziu BASICu, aby sme pre zmenu demonštrovali použitie príkazov goto pri popise ekvivalentu dračieho programu) - viď obr. 99.

FILOZOFIA DRAČIEHO JAZYKA

Každý imperatívny jazyk (SI, PASCAL, ADA, MODULA, BASIC atď.) možno rozdeliť na tri časti, tri relatívne nezávislé jazyky: smerovací, príkazový a deklaratívny.

Smerovací jazyk- súbor riadiacich operátorov. Príkazový jazyk obsahuje všetky neriadiace operátory, ako je operátor priraďovania, pravidlá pre písanie aritmetických a logických výrazov, identifikátory, kľúčové slová atď. Deklaratívny jazyk slúži na popis údajov, tried a pod.

Vysvetlime si to, čo bolo povedané, na príklade. Abstraktný dračí diagram znázornený na obr. 97, existuje nejaká "fráza" smerovacieho jazyka. Aby to malo zmysel, text by mal byť umiestnený vo vnútri ikon. Tento text je napísaný v príkazovom jazyku. Niekedy je však vhodné presunúť popisy údajov a tried mimo schémy draka a umiestniť ich niekde inde, napríklad vo forme samostatného záznamu alebo tabuľky.

Z toho vyplýva princíp rozlišovania troch podjazykov. Smerovací jazyk je jazykom „obrázkov“ (abstraktné dračie schémy, v ktorých nie je vôbec žiadny text). Príkazový jazyk sa používa na zaznamenávanie textu v rámci drakovej schémy, deklaratívnej - pre tie záznamy, ktoré je možné vziať mimo nej.

Pri konštrukcii ďalšieho jazyka dračieho rodu si môžete ľubovoľným spôsobom zvoliť príkazové a deklaratívne podjazyky (požičiavanie z iných jazykov alebo nové vymýšľanie). To poskytuje množstvo možností DRAGON a flexibilné prispôsobenie pre rôzne aplikácie. Dračia rodina má teda iba jeden pevný článok – smerovací jazyk, ktorý nie je ničím iným ako vizuálnymi komponentmi DRAKA (vizuálna syntax a sémantika).

Smerovací jazyk je vizuálny štandard rodiny drakov, udržiavaný vizuálnym editorom drakov (pozri kapitolu 14), ktorý je malý a ľahko zapamätateľný. Je nemenným charakteristickým znakom DRAKA, jeho štandardizovaným vizuálnym obrazom (obr. 97).

KLASIFIKÁCIA VEDOMOSTÍ

Každý program predstavuje určité množstvo vedomostí, ktoré možno rozdeliť na imperatívnu a deklaratívnu časť. Vyššie uvedené úvahy umožňujú objasniť túto tézu. Nový pohľad na problém je znázornený na obr. 100 a scvrkáva sa na toto:

  •  Na analýzu poznatkov obsiahnutých v zdrojovom texte počítačového programu napísaného v imperatívnom jazyku sa odporúča použiť dve klasifikácie: základnú a alternatívnu. / Li>
  • Základná klasifikácia spočíva v tom, že všetky poznatky obsiahnuté v pôvodnom programe sú rozdelené na imperatívne a deklaratívne.
  • Na druhej strane sa imperatívne znalosti delia na manažérske a veliteľské.
  • Ako kritérium pre alternatívnu klasifikáciu sa navrhuje nasledujúca otázka: aký prostriedok je lepšie použiť na reprezentáciu vedomostí - grafika alebo text?
  • Odpoveď je nasledovná. Je lepšie použiť grafiku (smerovací jazyk) na znázornenie znalostí ovládania a text na príkazové a deklaratívne znalosti.
  • V alternatívnej klasifikácii sa teda znalosti delia na vizuálne (riadiace) a textové (príkazové a deklaratívne).

Na záver dodaj: používanie textu na reprezentáciu komplexných znalostí ovládania vyzerá rovnako smiešne, ako snažiť sa opísať geografickú mapu slovami. Skutočnosť, že text sa na tento účel stále používa, možno vysvetliť len jednou vecou: programovanie je oveľa mladšie ako geografia!

ZÁVERY

  1. Ak máme k dispozícii formálnu vizuálnu syntax, potom na vybudovanie vizuálneho programovacieho jazyka stačí zostaviť formálnu textovú syntax. Presvedčili sme sa, že tento problém je úplne riešiteľný, a to hneď niekoľkými spôsobmi. V dôsledku toho sa vytvára rodina programovacích jazykov, pôvodných (DRAGON-2) aj hybridných (DRAGON-SI, DRAGON-MODULA, DRAGON-PASKAL, DRAGON-BASIC atď.).
  2. Možno tvrdiť, že zrozumiteľnosť vizuálnych jazykov je výrazne vyššia ako zrozumiteľnosť ich textových náprotivkov. Preto vo všetkých prípadoch, keď sa zrozumiteľnosť považuje za hlavné kritérium kvality programov (a takýchto prípadov je veľa), sú vizuálne jazyky mimo konkurencie. Tu je na mieste upozornenie: pojem „vizuálny“ sám o sebe nič nezaručuje. Úspech podnikania sa dosahuje starostlivým a svedomitým uplatňovaním metód vedy o ľudských faktoroch (ergonómia). Presnejšie, hovoríme o syntéze metód informatiky a ergonómie, formovaní nového interdisciplinárneho smeru - infoergonómie, reštrukturalizácii celej budovy moderného programovania na ergonomickom základe.
  3. Tvorba akéhokoľvek programovacieho jazyka ďalšej generácie by mala začať analýzou ergonomických požiadaviek a končiť hodnotením výsledných ergonomických vlastností jazyka. Jednou z hlavných prekážok pri realizácii tohto plánu je zotrvačnosť myslenia mnohých špecialistov, podceňovanie významu ergonomických metód. Na zmenu prevládajúcich stereotypov myslenia je potrebné urobiť vážne zmeny v programe a metódach výučby informatiky na školách a univerzitách.

Naposledy upravil PBworks pred 12 rokmi, 3 mesiacmi

DRUHY DRAČIEHO JAZYKA

KRITIKA BLOKOVÝCH DIAGRAM

Vizualizácia programovania je efektívnym nástrojom na zlepšenie pochopenia algoritmov a o niečo skôr sa na tento účel používali vývojové diagramy. Nedávno sa však blokové diagramy dostali pod kritiku. Odporcovia blokových diagramov argumentujú tým, že nie sú vhodné pre štruktúrované programovanie, nie sú vhodné na formalizáciu, takže ich „nemožno použiť ako program na priamy vstup do stroja“. Zaberajú veľa strán a „do buniek vývojových diagramov možno zadať veľmi obmedzené informácie“. Vývojové diagramy „sťažujú učenie a zhoršujú výkon pochopením“. Navyše nie sú vhodné pre každého – prácu s vývojovými diagramami uprednostňujú len „jedinci s pravou vedúcou hemisférou, orientovaní na vizuálne informácie, intuitívne, rozpoznávajúce obrázky“, vyhýbajú sa im však „jedinci s ľavou vedúcou hemisférou, orientovaní“. k verbálnym informáciám, inklinujúci k deduktívnemu uvažovaniu “, atď.

Kým pred rokom 1980 boli najpoužívanejším nástrojom blokové diagramy, dnes sa „už nepovažujú za potrebné a ich obľuba klesá“. Hoci existujú pokusy prispôsobiť blokové diagramy moderným potrebám (jazyk SDL a pod.), celkovo sa blokové diagramy jednoznačne ocitli na okraji rýchlo sa rozvíjajúceho procesu programovania vizualizácie a ich obrovský potenciál v skutočnosti nie je použité. Jazyk DRAGON vám umožňuje odstrániť alebo výrazne oslabiť zaznamenané nedostatky blokových diagramov.

Termín „dračia schéma“ sa používa na označenie vývojových diagramov zostavených podľa pravidiel jazyka DRAGON.

VÝHODY DRAKOVÝCH SCHÉM

Aký je rozdiel medzi dračími diagramami a blokovými diagramami? Blokové diagramy automaticky nekonvertujú algoritmus na strojový kód. Dračie schémy sú na druhej strane vhodné na formalizované písanie, automatické vyhľadávanie kódu a spúšťanie na počítači. Dôležitejší je však druhý (kognitívny) rozdiel. Aj keď blokové diagramy niekedy zlepšujú porozumenie programu, nie je to vždy tak a existuje len malé zlepšenie. Okrem toho existuje veľa prípadov, keď sú neúspešné vývojové diagramy mätúce a ťažko pochopiteľné. Naproti tomu dračie schémy spĺňajú kritérium ultra vysokej zrozumiteľnosti.

Vďaka použitiu špeciálnych formálnych a neformálnych kognitívnych techník umožňujú dračie schémy zobraziť riešenie akéhokoľvek, akokoľvek zložitého, technologického problému v mimoriadne jasnej, vizuálnej a zrozumiteľnej forme, čo môže výrazne znížiť intelektuálne úsilie personál potrebný na zrakové vnímanie, pochopenie, overovanie a bezchybné riešenia.problémov.

IKONY A MAKROIKONY

Grafické prvky (grafické písmená) jazyka DRAGON sa nazývajú ikony (obr. 1). Tak ako sa písmená spájajú do slov, ikony sa spájajú do zložených ikon - makroikony(obr. 2).

Spojením ikon a makroikonov podľa určitých pravidiel môžete zostaviť rôzne algoritmy, ktorých príklady sú znázornené na obr. 3, 4, 6, 8-11.

Blok na špíz- časť drakovej schémy, ktorá má jeden vchod zhora a jeden východ zdola, umiestnený na tej istej vertikále. Príklady špajlí sú ikony I3 - I10, I12 - I16, I18, I20, I21 (obr. 1) a makro ikony 2-20 (obr. 2).

PREČO POTREBUJETE POBOČKU?

Keď sa princezná Anne rozviedla s markízom z Le Chatelier, vznikol spor o deľbu majetku. Sudca požadoval uviesť, ktoré nákupy princezná uskutočnila pred manželstvom a ktoré - po.

Teraz zabudnime na túto rodinnú drámu a porovnajme ryžu. 3a a 3b. Je ľahké vidieť, že prvý nedovolí odpovedať na otázku sudcu. Pokiaľ ide o druhý, obsahuje naopak potrebné informácie. Navyše, algoritmus na obr. 3b je zámerne nakreslený tak, aby nákupy uskutočnené pred a po sobáši boli prehľadne rozdelené do dvoch zoznamov. Tieto zoznamy sú vizuálne a priestorovo oddelené, takže rozdelenie algoritmu na dve časti, bez ohľadu na vôľu čitateľa, je doslova zarážajúce. Táto technika sa nazýva rozdelenie algoritmu na sémantické časti podľa princípu „Pozrel som sa - a hneď bolo jasné! A samotné sémantické bloky sa nazývajú pobočky.

Slovo "pobočka" má dva významy. Na jednej strane ide o sémantický „kus“ algoritmu. Napríklad algoritmus na obr. 3b má dve vetvy („Nákupy pred uzavretím manželstva“ a „Nákupy po uzavretí manželstva“). Na obr. 4 - štyri vetvy („Príprava na rybolov“, „Čakanie na uhryznutie“, „Rybárske práce“, „Spätná cesta“). Na druhej strane, vetva je zložený operátor jazyka DRAGON, ktorý nemá v známych jazykoch obdobu. Operátor pobočky má tri časti: začiatok vetvy(ikona "názov pobočky"), pobočné orgány(ktorý môže obsahovať veľké množstvo ikon) a koniec vetvy(ktorá obsahuje jednu alebo viac ikon „adresy“ alebo „koniec“).

Prečo teda potrebujete pobočku? Na pomoc znalostnému pracovníkovi, programátorovi a vývojárovi technológie formalizovať sémantické rozdelenie problému, programu alebo technického procesu na časti a dať častiam vhodné sémantické názvy. Zároveň rozdelenie problému na N sémantické časti sa realizujú rozdelením algoritmu na N pobočky.

AKO POBOČKA FUNGUJE?

Pobočka má jeden vchod a jeden alebo viac východov. Vstupom je ikona "názov pobočky" obsahujúca identifikátor pobočky. Vizuálny operátor „názov pobočky“ nevykoná žiadnu akciu, je to len označenie oznamujúce názov sémantickej časti programu. Spustenie dračieho algoritmu vždy začína od vetvy úplne vľavo (obr. 3, 4).

Výstupom z pobočky je ikona „adresa“, do ktorej je napísaný názov ďalšej pobočky v poradí vykonania. Ikona "adresa" je prezlečený operátor pobočky (goto), ale neprenáša riadenie nikam, ale len na začiatok vybranej pobočky. Vstup do pobočky je možný len cez jej začiatok. Výstup z poslednej vetvy sa vykonáva pomocou ikony „koniec“.

AKO MÁM UMIESTNÚŤ ODBOČKY DO POLI VÝKRESU?

Vetvy sú usporiadané dvoma spôsobmi: logicky a priestorovo. Logické poradie vykonávania vetiev je určené menovkami zaznamenanými v ikonách „adresy“. Logické poradie však nie je všetko. Na obr. 5 znázorňuje tri rôzne spôsoby priestorové umiestnenie pobočiek, ktoré majú rovnaké logické poradie. Na odstránenie priestorovej nejednoznačnosti a uľahčenie pochopenia významu drakovej schémy sa zavádza pravidlo „čím viac vpravo, tým neskôr“. Znamená to: vetva nakreslená vpravo funguje neskôr ako všetky vetvy vľavo.

Algoritmus nakreslený podľa pravidla „čím viac doprava – tým neskôr“ sa považuje za dobrý a ergonomický (obr. 5c). Schémy, kde je toto pravidlo porušené, sú vyhlásené za zlé (obr. 5a, b), ich používanie je zakázané.

V povolených (ergonomických) algoritmoch prebieha nasledujúci operačný postup (obr. 3, 4, 5c, 6a):

  • prvá ľavá vetva, posledná pravá;
  • ostatné vetvy si navzájom prenášajú riadenie zľava doprava (v tomto prípade sa môže stať, že niektoré vetvy budú preskočené);
  • niekedy sa tvorí takzvaný „vetvový cyklus“. Stáva sa to vtedy, keď je v ikone „adresa“ uvedený názov vlastnej alebo jednej z ľavých pobočiek. Na obr. 4 a 6a je vetvový cyklus označený čiernymi trojuholníkmi.

ČO JE KLOBÚK?

Z pohľadu čitateľa je každý neznámy alebo zabudnutý netriviálny algoritmus mimoriadne ťažkým problémom, ktorý sa zúfalo snaží pochopiť a prekonať silný „odpor materiálu“. Na zjednodušenie a uľahčenie úlohy porozumenia je potrebné, aby čitateľ „jasne videl“ a po rozdelení problému na časti videl jeho sémantickú štruktúru z hľadiska predmetnej oblasti. A videl nie v prenesenom zmysle slova, nie pomocou predstavivosti, nie duchovným okom, ale mojimi dvoma očami - na papieri alebo na obrazovke.

Ale ako na to? Problém je v tom, že žiadny z existujúcich jazykov neposkytuje čitateľovi, ktorý študuje zložitý program alebo technológiu, účinnú pomoc, ktorá mu umožňuje okamžite (za pár sekúnd) pochopiť jeho štruktúru, teda rozdelenie do sémantických blokov. V jazyku DRAGON existujú špeciálne nástroje, ktoré poskytujú riešenie problému.

Hlava je horná časť dračieho diagramu (obr. 4), ktorý obsahuje hlavičku algoritmu a sadu ikon „názov pobočky“. Účelom hlavičky je pomôcť čitateľovi okamžite (nie viac ako za pár sekúnd) zorientovať sa v probléme a získať účinnú nápovedu – odpoveď na tri najdôležitejšie otázky:

  1. ako sa vola problem?
  2. z koľkých častí sa skladá?
  3. ako sa volajú jednotlivé časti?

Veď práve týmito otázkami začína naše zoznámenie sa s akoukoľvek úlohou s racionálnym prístupom k podnikaniu.

Tu sú odpovede na obrázok. 4.

  • Aký je názov problému? Rybolov.
  • Koľko častí je v probléme? Zo štyroch.
  • Ako sa volá každá časť? 1. Príprava na rybolov. 2. Čakanie na sústo. 3. Rybárske práce. 4. Cesta späť.

Ďalšie vymoženosti sú spojené so skutočnosťou, že nadpis zaujíma „slávnostné“ miesto v poli kresby a názvy sémantických častí sú umiestnené v špeciálnych rámoch jedinečného tvaru a vďaka tomu okamžite upútajú pozornosť čitateľa bez akékoľvek úsilie z jeho strany.

DRAK tak poskytuje čitateľovi účinnú metódu troch krokov, ako sa dozvedieť o neznámom alebo zabudnutom probléme. V prvej fáze, pri analýze hlavičky, sa čitateľ dozvie účel algoritmu a jeho rozdelenie na sémantické časti (vetvy). V druhom prípade sa vykoná hĺbková analýza každej vetvy. Po tretie sa analyzuje interakcia vetiev.

ČO JE LEPŠIE: PRIMITÍVNE ALEBO SILUETA?

Dračí diagram s vetvami sa nazýva silueta, bez konárov - primitívny. Silueta znázornená na obr. 6a môže byť znázornená ako primitívum (obr. 6b). Primitívne je postupné spojenie ikony „hlavičky“ blokov špíz a ikony „koniec“. V primitívnom prípade musia ikony „nadpis“ a „koniec“ ležať na rovnakej vertikále, ktorá sa nazýva špíz. Hlavné vertikály špajlí ležia na rovnakej línii. Obrazne povedané, špíz preniká ikonami primitívov (možno nie všetkými), rovnako ako skutočný špíz preniká do kúskov ražniči.

Odporúča sa použiť primitív, ak je draková schéma veľmi jednoduchá (primitívna) a obsahuje nie viac ako 5 ... 15 ikon. V opačnom prípade je na zlepšenie čitateľnosti programu výhodnejšie použiť siluetu. Porušenie tohto pravidla je zvyčajne spojené s problémami, pretože bráni čitateľovi identifikovať podstatu riešeného problému, a preto komplikuje a spomaľuje pochopenie významu programu.

Napríklad algoritmus na obr. 6b vyzerá ťažkopádne a neprimerane ťažko pochopiteľné. Je to spôsobené tým, že obsahuje 19 ikon, ale je zobrazený ako primitív. Zločin je v tom, že diagram na obr. 6b neumožňuje čitateľovi okamžite (v priebehu niekoľkých sekúnd) rozpoznať vizuálno-sémantickú štruktúru algoritmu. V skutočnosti, z koľkých častí pozostáva riešený problém? Pri pohľade na obr. 6b, je dosť ťažké odpovedať na túto otázku a nie je možné odpovedať rýchlo. Situácia sa radikálne zmení, keď sa pozrieme na obr. 6a, kde je v siluete znázornený rovnaký algoritmus. Tu, ako sa hovorí, je pre ježka jasné: algoritmus pozostáva zo štyroch častí: „nájdenie autobusu“, „čakanie na nástup“, „nástup do autobusu“, „výlet“. To však nie je všetko: nemenej dôležitá je skutočnosť, že zmätok vizuálneho vzoru zmizol a schéma získala novú estetickú (ergonomickú) kvalitu: eleganciu, jasnosť a transparentnosť.

V zložitých prípadoch teda môže silueta výrazne znížiť intelektuálne úsilie vynaložené na pochopenie algoritmu. V siluete sú zreteľne odlíšené veľké štruktúrne časti programu (vetvy), ktoré sú v kresliarskom poli priestorovo oddelené, zároveň tvoria ľahko rozpoznateľný, stabilný, predvídateľný a celistvý vizuálny obraz. A v primitívnom prípade nie sú štrukturálne časti vybrané a zmiešané („všetko v jednej kope“), čo sťažuje čítanie a analýzu zložitých algoritmov. V jednoduchých prípadoch (menej ako 5 ... 15 ikon) je však zvyčajne vhodnejšie primitívne.

AKO POPISÍM SILUETU POMOCOU TEXTOVÉHO JAZYKA?

Z obr. 7 ukazuje, že na opis vetiev v textovom jazyku bolo potrebné vykonať množstvo zmien. Konkrétne existujú dva nové textové operátory, ktoré v tradičných jazykoch chýbajú:

POBOČKA< идентификатор ветки >

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

Operátor textového jazyka BRANCH deklaruje názov pobočky (napísaný vizuálnym jazykom v ikone „názov pobočky“). Operátor ADRESA bezpodmienečne odovzdá riadenie textovému operátorovi BRANCH, ktorého názov je napísaný vpravo od operátora ADRESA.

Uvažujme o probléme. V spletitom labyrinte spájajúcom začiatok a koniec zložitého algoritmu musíte vyčleniť jedinú trasu – „vodiacu niť“, s ktorou môžete vizuálne porovnať všetky ostatné trasy, aby ste sa mohli ľahko orientovať v probléme a nestratiť sa v ňom. zámena vidlíc. Toto vodiace vlákno (nazvime ho „hlavná trasa“) by malo byť vizuálne ľahko rozlíšiteľné. Inými slovami, pri letmom pohľade na dračí diagram by sme mali nájsť jasné orientačné body, vďaka ktorým môžeme okamžite a neomylne vidieť „kráľovskú“ cestu a ostatné k nej zoradené trasy.

Na tento účel sa zavádza pravidlo: "Hlavná cesta primitíva musí ísť cez ražňu." Zámenou slov „áno“ a „nie“ na vidliciach a možnostiach v prepínačoch (ako aj girlandách ikon k nim pripojených) by ste mali zabezpečiť, aby výstup z vidlice alebo prepínača, ktorý vedie k najväčšiemu úspechu je na kráľovskej ceste (obr. 8) ... A bočné trasy musia byť usporiadané podľa pravidla: "Čím ďalej doprava, tým horšie"(obr. 9). Ak sa tieto pravidlá porušia, schéma draka sa považuje za zlú (obrázok 10a). Vždy sa však dá premeniť na dobrý (obr. 10b).

V prípadoch, keď funkcia „lepšie alebo horšie“ nefunguje, by sa namiesto toho malo zvoliť nejaké iné rozumné kritérium, aby posun doprava od hlavnej trasy nebol vždy svojvoľný a chaotický, ale premyslený a usporiadaný. Napríklad pri riešení matematických úloh možno výstupy vidlice a možnosti prepínania usporiadať zľava doprava v poradí zvyšovania alebo znižovania matematickej hodnoty (charakteristiky) zodpovedajúcej týmto výstupom (obr. 11, 12).

SILUETA ​​HLAVNÁ TRASA

V predchádzajúcom odseku sme sa naučili, ako usporiadať trasy primitíva. Teraz je na rade silueta.

Špízové ​​vetvy volá sa vertikála, ktorá spája ikonu „názov pobočky“ s ikonou „adresa“ a ak má pobočka niekoľko výstupov - s ľavým. Pre pobočku zostávajú v platnosti obe „kráľovské“ pravidlá:

  • hlavná trasa vetvy by mala ísť pozdĺž špíz;
  • bočné trasy odbočiek by mali byť usporiadané zľava doprava podľa nejakého kritéria.

Predpokladajme, že sa ako kritérium zvolí zásada „čím viac vpravo, tým horšie“. V tomto prípade by mala byť každá vetva siluety postavená podľa jediného pravidla: čím viac vpravo (čím ďalej od špízu danej vetvy) je umiestnená ďalšia vertikála, tým menej úspešná je.

Napríklad na obr. 6a, vetva „nástup do autobusu“ má tri vertikály. Ľavá vertikála (hlavná trasa) opisuje najväčší úspech, keďže budete sedieť v autobuse. Pravá vertikála označuje najmenší úspech, pretože ste vystúpili z autobusu a cesta mešká. Stredná vertikála (umiestnená nad ikonou „Chcete jazdiť v stoji?“) Zaberá medzipolohu, pretože - v závislosti od odpovede - môže dôjsť buď k čiastočnému úspechu (budete jazdiť, ale nie sedieť, ale stáť), alebo zlyhanie, keďže z autobusu lenivo vystúpite.

Hlavná trasa siluety- postupné prepojenie hlavných trás striedavo pracujúcich vetiev. DRAGON tak umožňuje čitateľovi okamžite vidieť hlavnú cestu akéhokoľvek algoritmu, bez ohľadu na to, aký je zložitý a rozvetvený, a navyše robí posun všetkých vedľajších trás vzhľadom na „kráľovský“ nie náhodný, ale zmysluplný a predvídateľný, že je, ľahko pochopiteľné.

PRECHÁDZANIE ČIARY? - POVEDZ BOH!

Niektorí odborníci so záľubou v drsných výrazoch označujú tradičné vývojové diagramy ako „vývojové diagramy smetníkov“, pretože zložitosť blokov spojených chaosom zubatých línií okolo vyzerá skôr ako kopa odpadu než ako obyčajná štruktúra. DRAGON sa priaznivo líši tým, že jeho grafický vzor má prísne matematické a kognitívno-ergonomické opodstatnenie a riadi sa prísnymi a dôkladne premyslenými pravidlami. Medzi nimi osobitné miesto zaujíma pravidlo: „Križovatky a zlomy spojovacích čiar sú zakázané“.

Pri kreslení konvenčných blokových diagramov sú povolené dva typy priesečníkov čiar: explicitné, reprezentované krížom čiar, a maskované, vykonávané pomocou takzvaných spojok. Ako viete, konektor „sa používa na prerušenie čiary a jej predĺženie inam ... aby sa predišlo zbytočným križovatkám“.

V jazyku DRAGON sú všetky vyššie uvedené triky (priesečníky, zlomy, konektory) považované za škodlivé z ergonomických dôvodov a sú prísne zakázané, pretože upchávajú kresliace pole zbytočnými detailmi, vytvárajú vizuálne prekážky pre oči a odvádzajú pozornosť od hlavného vec.

Keďže zákaz priesečníkov je vážnym topologickým obmedzením, vynára sa otázka: môže byť ľubovoľný algoritmus znázornený ako dračí diagram?

Veta 1. Akýkoľvek štruktúrovaný program môže byť zobrazený v jazyku DRAGON dvoma spôsobmi: ako primitív a ako silueta.

Veta 2. Ľubovoľný (neštrukturálny) program v niektorých prípadoch nemôže byť zobrazený ako primitív; pomocou ekvivalentných transformácií, ktoré umožňujú zavedenie ďalších premenných (identifikátorov pobočiek), sa však dá vždy zobraziť vo forme siluety.

Aby sme problém objasnili, prejdime na príklady. Na obr. 13a ukazuje zakázanú dračiu schému: primitívum, v ktorom je neodstrániteľný (bez zavedenia ďalších premenných) priesečník. Na obr. 13b znázorňuje siluetu, ktorá, ako je ľahké vidieť, je ekvivalentná primitívu na obr. 13a a zároveň neobsahuje ani jednu križovatku. Teda príklad na obr. 13 potvrdzuje platnosť 21. vety.

VIZUÁLNA A TEXTOVÁ SYNTAX DRAKA

DRAGON je vizuálny jazyk, ktorý používa dva typy prvkov: grafické tvary ( grafoprvky) a textové štítky umiestnené vo vnútri alebo mimo grafických tvarov ( textové prvky). Preto sa syntax DRAKA delí na dve časti. Vizuálna syntax pokrýva abecedu grafických prvkov, pravidlá ich umiestňovania v poli kreslenia a pravidlá spájania grafických prvkov pomocou spojovacích čiar. Syntax textu nastavuje abecedu symbolov, pravidlá ich kombinovania a viazania na grafické prvky (viazanie je nevyhnutné, pretože vo vnútri rôznych grafických tvarov sa používajú rôzne typy výrazov). Operátor jazyka DRAGON je grafoprvok alebo kombinácia grafoprvkov spolu s textovými štítkami.

Súčasné použitie grafiky a textu naznačuje, že DRAK oslovuje nielen verbálno-logické myslenie autora a čitateľa programu, ale navyše aktivuje intuitívne, obrazné, pravomozgové myslenie a nestimuluje ho písaným, ale nakreslený program, teda s programom -obrázkom.

RODINA DRAČÍCH JAZYKOV

DRAGON nie je jeden jazyk, ale celá rodina, ktorej všetky jazyky majú rovnakú vizuálnu syntax (čo vizuálne robí jazyky rodiny takmer dvojčatami) a líšia sa v textovej syntaxi.

DRAK-1- vizuálny pseudojazyk, vizuálna analógia obyčajného textového pseudokódu. Slúži na popis štruktúry činností, vytváranie technológií, algoritmov a programových projektov, využíva sa pri metóde postupného detailovania, ako aj pri formalizácii odborných znalostí.

DRAK-2- vizuálny programovací jazyk v reálnom čase. On je živel CASE-technológie na vývoj softvéru pre riadiace systémy rakiet a vesmírnych objektov, ako aj jadrových elektrární, petrochemických a hutníckych závodov, biotechnologického priemyslu a pod.

Okrem toho rodina zahŕňa hybridné vizuálne programovacie jazyky: DRAGON-BASIC, DRAGON-PASKAL, DRAGON-SI atď. pravidlá sú textovou syntaxou jazyka C.

Prísne vymedzenie vizuálnej a textovej syntaxe umožňuje maximalizovať rozsah jazyka, pričom zabezpečuje jeho flexibilitu a všestrannosť. Jednotnosť pravidiel vizuálnej syntaxe rodiny DRAGONových jazykov zároveň zabezpečuje ich koncepčnú jednotu a rozmanitosť textových pravidiel (to znamená možnosť zvoliť si ľubovoľnú textovú syntax) určuje flexibilitu jazyk a jednoduché prispôsobenie rôznym problémom a témam.

Táto kniha sa zameriava na vizuálny pseudojazyk DRAGON-1. Pokiaľ ide o ostatné jazyky z rodiny DRAGON, uvádzame len krátke vysvetlenia.

ZÁVERY

Tu je súhrn ergonomických pravidiel na zlepšenie kognitívnej kvality dračích obvodov a na to, aby boli algoritmy, programy a technológie zrozumiteľnejšie.

  1. Zložitý algoritmus by mal byť nakreslený ako silueta, jednoduchý ako primitívny.
  2. Je zakázané písať slovo „začiatok“ do ikony „nadpis“; namiesto toho by sa mal poskytnúť jasný a presný názov algoritmu.
  3. Rozdeľte komplexný algoritmus na časti, každú časť zobrazte ako vetvu. Pomenujte časti zmysluplne a jasne a zapíšte si ich do ikon „názov pobočky“.
  4. Vstup do pobočky je možný len cez jej začiatok.
  5. Do ikony „adresa“ je povolené napísať názov jednej z pobočiek, iné nápisy sú zakázané.
  6. Vetvy by mali byť umiestnené v priestore podľa pravidla: čím viac vpravo, tým neskôr. Prítomnosť vetviaceho cyklu modifikuje toto pravidlo.
  7. Primitív musí mať špíz. To znamená, že pre primitíva ikony „nadpis“ a „koniec“ vždy ležia na rovnakej vertikále, ktorá sa nazýva „ražňa“.
  8. Každá vetva musí mať špíz. Na pravej vetve je špíz vertikála spájajúca ikony „názov pobočky“ a „koniec“. Pre ostatné vetvy je špíz zvislá čiara spájajúca ikony „názov pobočky“ a „adresa“ a ak existuje niekoľko adries, s ľavou.
  9. Algoritmus má vždy hlavnú cestu, ktorá musí byť preseknutá.
  10. Bočné trasy je potrebné zoradiť zľava doprava podľa jedného zo zvolených kritérií, napríklad: čím viac doprava, tým horšie.
  11. V ikone „koniec“ by malo byť napísané slovo „koniec“.
  12. Spojovacie vedenia môžu prebiehať horizontálne alebo vertikálne. Šikmé čiary nie sú povolené.
  13. Prekračovanie čiar je zakázané.
  14. Zalomenie riadkov je zakázané.
  15. Používanie konektorov je zakázané.

Jazyk DRAK- verejne dostupný intelektuálny nástroj nového typu, špeciálne navrhnutý na uľahčenie a zlepšenie práce mysle intelektuálnych pracovníkov a študentov, užitočný najmä pri riešení zložitých a superťažkých úloh systematizácie a autoformalizácie odborných vedomostí, popisujúci štruktúru ľudskej činnosti a mnoho ďalších úloh, o ktorých bude reč neskôr.

Rozdiel DRAK ale to, že nejde o text, ale o vizuálny (grafický) jazyk. Obrazne povedané, dláždi cestu k cieľu, pričom logické, matematické, algoritmické a technologické kamene a prekážky otriasa dynamitom vizuálnych obrazov. Vďaka týmto a iným technikám sa mnohé (aj keď, samozrejme, nie všetky) zložité problémy menia na jednoduché, nepochopiteľné sa stáva jasným. Výsledkom je dosiahnutie želaného zisku: zvyšuje sa produktivita, zlepšuje sa kvalita, tvrdá práca je jednoduchšia a príjemnejšia, mentálne preťaženie sa výrazne znižuje a klesá oveľa pod nebezpečnú hranicu.

Jazyk DRAK vyvinutý spoločne Ruskou vesmírnou agentúrou (Vedecké a výrobné centrum pre automatizáciu a prístrojové vybavenie, Moskva) a Ruskou akadémiou vied (Inštitút aplikovanej matematiky MV Keldysha, Moskva) ako zovšeobecnenie skúseností s vytvorením kozmickej lode Buran. Na základni DRAK bola vybudovaná počítačom podporovaná konštrukčná technológia pre softvérové ​​systémy (CASE technológia) pod názvom „ GRAPHITE-FLOX"Úspešne sa používa v mnohých veľkých vesmírnych projektoch:" Spustenie na more", "Fregata", "Proton-M"a atď.

DRAK- veľmi ľahký jazyk. Tak jednoduché, že vývoj mnohých počítačových programov pre vesmírne rakety v praxi nevykonávajú programátori, ale obyčajní špecialisti - podľa princípu „programovania bez programátorov“. Dôvod odmietnutia programátorov je jednoduchý. Pri riešení praktických aplikovaných problémov majú odborníci dôkladnú znalosť materiálu a sú si dobre vedomí vyjadrenia problému. Naproti tomu programátori nepoznajú „fyziku procesu“ a stávajú sa „nadbytočnými ľuďmi“, bez ktorých sa to celkom dá. To umožňuje výrazne znížiť náklady, zlepšiť pomer nákladov a výnosov, urýchliť postup prác a úplne sa zbaviť chýb „poškodeného telefónu“ spôsobených vzájomným nedorozumením PROGRAMÁTOROV a ŠPECIALISTOV.

DRAK všestranný. Dá sa použiť na vizualizáciu a rýchly vývoj algoritmov nielen v „vesmírnom“, ale aj v „pozemských“ typoch ľudskej činnosti. Praktická užitočnosť DRAK a bol vysoko cenený. Ministerstvo školstva zahrnulo výučbu jazykov DRAK v programe kurzu informatiky na vysokých školách (pozri: Približný program disciplíny "Informatika". Oficiálne vydanie. - M .: Goskomvuz, 1996. S. 3, 4, 15, 16).

Editor DRAKA

DRON

V.D. Parondzhanov vo svojej knihe „Ako zlepšiť prácu mysle“ naznačuje možnosť vysielania DRAK-schémy priamo do programového kódu v jazyku vysokej úrovne. V tomto prípade sú riadiace štruktúry cieľového jazyka úplne vyradené a sú nahradené jazykovými konštrukciami DRAK... Tým sa vytvorí nový jazyk, ktorý je podmnožinou cieľového jazyka. Takto sa spomínajú jazyky DRAK-more, DRAK-Pascal.

8. apríla 2008 Alexander Ilyin na fóre navrhol meno DRON pre možný jazyk DRAK-Oberon.

D2O (Deuterium Oxide) - DRONE => Aktívny prekladač Oberon.

Stanovenie cieľa implementovať jazyk DRON Napísal som list Gennadijovi Tyshovovi so žiadosťou o otvorenie formátu DRAK-obvod použitý v jeho editore. Na čo mi v odpovedi poslal celý zdrojový kód :)

Na začiatok som sa rozhodol tvoriť DRAK-schéma, ktorá by mohla byť plne preložená do modulu na Aktívny oberon.

A veľmi rýchlo som sa presvedčil, že s vhodným dizajnom DRAK-úloha schémy sa stáva celkom realizovateľnou.

Hlavné črty „dizajnu“ sa samozrejme týkajú deklaratívnej časti, ktorá v nej absentuje DRAK e.

Najprv bolo potrebné "prispôsobiť" "komentárový" blok pre deklaratívnu časť s rozdelením zodpovedajúcich sekcií, v skutočnosti: komentáre, importy, konštanty, typy a premenné. príslušnosť konkrétneho úseku je určená prvým prvkom načítaným z bloku, resp (* , IMPORTOVAŤ, KONST, TYP a VAR.



Faktom je, že obsah niektorých sekcií bude potrebný nielen ako referenčná informácia, ale mal by byť dostupný aj na úpravu vo fáze generovania kódu.

Možno je lepším riešením formátovať deklaratívnu časť v tabuľkovej forme.

V TYP v sekcii sú uvedené deklarácie typu a deklarácie „fiktívnych“ objektov (bez metód a tiel).

Každá jednotlivá schéma sa považuje za ekvivalent postupu v jazyku Oberon... Navyše vo vzťahu k jazyku Oberon za procedúry možno považovať aj telo modulu a objekty (za slov ZAČAŤ), a tiež je potrebné nejako odlíšiť procedúry modulu od procedúr-metód objektov.

Bolo rozhodnuté:

  • Telo modulu by malo byť zostavené vo forme diagramu, v záhlaví ktorého je napísané slovo ZAČAŤ
  • Hlavičky schém súvisiacich s metódami objektov predpíšte názvami týchto objektov. tie. Object.Proc1, Object.BEGIN... Ako vidieť, nezabudlo sa ani na telo objektu.
  • Všetky ostatné diagramy sa riadia procedúrami modulu

Tu je diagram:



Topológia okruhov je obmedzená riadiacim tokom striktne zhora nadol a zľava doprava. A ako výnimka prirodzene organizované, jednoduché slučky. Podľa môjho názoru sila schémy „siluety“ toto obmedzenie ničí.

Výsledkom je konzolová aplikácia, ktorá umožňuje vysielať DRAK-schéma (v skutočnosti diagram v jazyku DRON) do modulu v jazyku Aktívny oberon.

DRON- prekladateľ má skromné ​​meno D2O tie. Oxid deutéria alebo Ťažká voda po rusky :)

DRON- prekladateľ a testovacie okruhy v jazyku DRON pripojený.

13. júla 2008 zverejnil Gennadij Tyshov novšiu verziu editora, avšak testovacie obvody pripojené k aktuálnej verzii D2O sú v nekompatibilnom formáte. Verzia editora prezentovaná tu na stránke vám zaručene umožní otvárať a upravovať priložené diagramy. O problematike spätnej kompatibility formátov či otvorení nového formátu sa aktuálne diskutuje s autorom editora.

Čo je hybnou silou programu? Čo vytvára priaznivý výsledok? Samozrejme, algoritmus. Algoritmus vytvára efekt, pre ktorý bol program napísaný. Algoritmus nefunguje sám. Funguje v spojení s dátovými štruktúrami. Ale sú to algoritmy, ktoré tvoria najväčšiu časť programu.


Historicky sú algoritmy v programoch písané ako zdrojový kód. Takmer nikto nepochybuje o tom, že text je najlepší spôsob, ako reprezentovať algoritmy. Algoritmus je kódovaný vo funkciách v programovacom jazyku, ako je C alebo JavaScript. Pre tých, ktorí chcú pochopiť algoritmus z vtáčej perspektívy, je poskytnutý pseudokód. S textom sú však vážne problémy. Ide o to, že človek nie je optimalizovaný na pevný text. Človek je optimalizovaný pre vnímanie grafiky. Text je relatívne nový vynález, ale organizmy spracovávajú grafické informácie už milióny rokov.


Na základe toho by bolo logické zostaviť algoritmy v grafickej podobe. Pozrite sa na inžinierov. Všade používajú modrotlač. Prečo sú programátori horší? Aj oni mohli vypracovať plány pre algoritmy. Niektorí tu budú namietať: vizuálne programovanie je údajne neúčinné. UML je nešikovné a vývojové diagramy sa dajú ľahko zmiasť. Je lepšie programovať tradičným spôsobom - textom. V štruktúrovanom programovaní existuje aspoň štruktúra, ktorá poskytuje poriadok a konzistenciu. A okrem toho, kreslenie diagramov je dlhé a ťažké. Písanie je rýchlejšie ako kreslenie.


Sú teda programátori odsúdení celý život pracovať len s textom?
Nemusí to byť až také zlé. Existujú vizuálne jazyky na reprezentáciu algoritmov, ktoré majú tiež poriadok a štruktúru, ako sú akčné diagramy DRAGON, BPMN a LML. Tu sa pozrieme na vizuálny algoritmický jazyk DRAGON.

Ako programovať v jazyku DRAGON

DRAGON nie je nezávislý programovací jazyk. Funguje v tandeme s textovým jazykom, ako je JavaScript, Python alebo C ++. Spolu s textovým jazykom tvorí DRAGON hybridný jazyk: DRAGON-JavaScript, DRAGON-Python alebo DRAGON-C++.


Hybridné programovanie sa vykonáva takto:

  1. Nakreslíme diagram DRAKA.
  2. Do ikon umiestnite malé kúsky kódu v príslušnom programovacom jazyku.
  3. Prekladač prevedie schému DRAGON do textového súboru so zdrojovým kódom.
  4. Tento textový súbor je súčasťou projektu obvyklým spôsobom.
    Niekoľko editorov v súčasnosti podporuje generovanie kódu z diagramov. Príklady v tomto článku boli vytvorené v DRAKON Editore.

Generovanie kódu z diagramu

V diagrame DRAK preberá kontrolu nad priebehom vykonávania. Kúsky zdrojového kódu v ikonách by preto nemali obsahovať kľúčové slová ako ak, inak, prepínač, prípad, pre, zatiaľ čo atď.


Ikony by mali obsahovať iba jednoduchý, jednoznačný kód: aritmetické výrazy, priradenie hodnôt, volanie funkcií, porovnania. Ale vetvenie a slučky sú implementované konštrukciami jazyka DRAGON.



Generovanie kódu je nasledovné:

  • Z každého diagramu sa vytvorí funkcia.
  • Názov grafu sa stane názvom funkcie.
  • Parametre funkcie sú prevzaté z ikony „Formálne parametre“, ktorá sa nachádza napravo od názvu diagramu.
  • Telo funkcie sa generuje na základe štruktúry diagramu a obsahu ikon.

Na obr. 1 ukazuje príklad malého diagramu v hybridnom jazyku DRAGON-JavaScript a vygenerovaný kód JavaScript:


Obdĺžnik s textom console.log (mačka, pes) na obr. 1 je ikona akcie. Koľko kódu sa zmestí do jednej ikony akcie? Človek by sa mal snažiť zabezpečiť, aby jedna ikona obsahovala jednu myšlienku. Niekedy je to jeden riadok kódu, niekedy niekoľko.
Vygenerovaný kód je označený číslami ikon. V editore môžete rýchlo prejsť na ľubovoľnú ikonu stlačením Ctrl + I.

Obr. Diagram DRAGON-JavaScript a kód z neho vygenerovaný.

Ikona "Otázka"

Ikony „Otázka“ a „Výber“ sa používajú na vetvenie.


Ikona „Otázka“ (obr. 2) zodpovedá dizajnu ak-tak-inak.


Všimnite si, že namiesto slov pravda a falošné používajú sa slová Áno a nie(dá sa prepnúť na Áno a #).


„Pravda“ a „lož“ - znie to veľkolepo, učene. Človek však skôr pozná „áno“ a „nie“ z raného detstva.


Nápisy Áno a nie dá sa vymeniť. Umiestnenie východov z ikony „Otázka“ zostáva nezmenené. Jeden východ ide dole a druhý vpravo. Vetvenie v jazyku DRAGON smeruje vždy doprava, preto je výstup z ľavej strany ikony zakázaný. Táto predvídateľnosť uľahčuje čítanie diagramu, pretože čitateľ vopred vie, kde má hľadať výstupy.


Ďalšou vlastnosťou jazyka DRAGON je, že na vetvenie sa nepoužíva úplný kosoštvorec, ale skrátený. To šetrí miesto na diagrame.




Obr. Ikona "Otázka"

Vizuálne logické vzorce

Jazyk DRAGON robí logické operátory nepotrebnými A, ALEBO a NIE a tiež nie rovnaký operátor. Samotné logické operácie sú samozrejme nevyhnutné. Namiesto textových operátorov však DRAGON zavádza vizuálne logické vzorce.


Na získanie vizuálneho logického vzorca by malo byť spojených niekoľko ikon „Otázka“ (ako na obr. 3).


Zvlášť príjemné je zbaviť sa popierania. Popieranie nie je intuitívne, prináša chyby a nepríjemnosti. Negácia (logický operátor NIE) sa v jazyku DRAGON dosahuje permutáciou štítkov Áno a nie.


Textový zápis logických výrazov je určite kompaktnejší. Vizuálne vzorce sa však čítajú ľahšie. Každá z možných kombinácií hodnôt operandov sa dá sledovať prstom.




Obr. Vizuálne logické vzorce

Slučka so šípkou

Na označenie obvyklého poradia vykonávania v jazyku DRAGON nie sú potrebné šípky. Ďalšia ikona je vždy dole. Šípka je potrebná len vtedy, keď má vlákno vyskočiť nahor v diagrame. Takýto skok nahor znamená cyklus. V dôsledku toho je šípka v jazyku DRAKA znakom cyklu. Pri letmom pohľade na diagram DRAKA sú šípky okamžite viditeľné. To znamená, že cykly sú okamžite viditeľné. To je významná výhoda DRAGONu oproti iným grafickým jazykom. Nemusíte hľadať slučky.


Ak teda spojíte ikonu „Otázka“ so šípkou, získate cyklus. Toto je analógia konštrukcií zatiaľ čo a do-pri... Obrázok 4 zobrazuje niekoľko typov šípových slučiek.
Ikona „Otázka“ v slučke so šípkou kontroluje podmienku pre opustenie slučky. Samozrejme, namiesto jednej ikony „Otázka“ ich môže byť niekoľko. Potom je vizuálny logický vzorec zodpovedný za výstup zo slučky.




Obr.Šípkové slučky

Ikona "Výber"

Ikona „Otázka“ obsahuje logický výraz, to znamená, že môže mať dve hodnoty: Áno a nie... Typickým príkladom je porovnávanie dvoch predmetov. Ak potrebujete porovnať určitý výraz s viacerými hodnotami, používa sa ikona „Vybrať“ (obr. 5). To je v súlade s dizajnom čarodejnica.


Hodnoty, s ktorými sa bude porovnávať výraz v ikone „Výber“, sú umiestnené v ikonách „Variant“. Ak vo verzii úplne vpravo nie je žiadny text, znamená to „všetky ostatné významy“. Takáto prázdna možnosť je podobná kľúčovému slovu predvolená vnútorný operátor prepínač.
Možnosť úplne vpravo môže končiť šípkou nahor. V tomto prípade máme opäť dočinenia s cyklom šípky. V takomto cykle bude za podmienku odchodu zodpovedná ikona „Výber“, nie „Otázka“.




Obr. Ikona "Voľba" a ikony "Možnosť"

Ikona „Zacykliť PRE“

Namiesto slučiek pre a pre každý DRAGON-JavaScript používa ikonu "Loop FOR". Ikona „Cyklus PRE“ (obr. 6) môže byť viacerých typov.


Ak po kľúčovom slove pre každý a pred bodkočiarkou je jedna premenná, potom sa vygeneruje kód na iteráciu poľa. Prvky poľa (ale nie ich indexy) budú umiestnené do premennej.


Ak po kľúčovom slove pre každý existujú dve premenné, editor DRAKON pochopí, že je potrebná iterácia cez vlastnosti objektu (záznamy hash tabuľky). Do enumerácie vstúpia len vlastné vlastnosti objektov.


Tretia verzia cyklu predpokladá prítomnosť troch výrazov oddelených bodkočiarkou. Toto je tradičný cyklus pre, špecifické pre jazyky C a Java.


Predčasný odchod z cyklu pod kontrolou ikony „Cyklus PRE“ je možný pomocou ikony „Otázka“ alebo „Výber“. Tento výstup približne zodpovedá kľúčovému slovu prestávka.




Obr. Rôzne typy ikony "Loop FOR" v DRAGON-JavaScript

Len jeden vstup do slučky

V jazyku DRAGON je na cykly uložené obmedzenie. Každý cyklus môže mať iba jeden vstup. Účelom tohto obmedzenia je zabezpečiť čitateľnosť. Toto obmedzenie drží DRAGON v rámci štruktúrovaného programovania, ako to opísal Dijkstra.


Niekoľko výstupov zo slučky je prípustných, ale mal by existovať iba jeden vstup. Na obr. 7 znázorňuje cykly, ktoré majú dva výstupy. Je to dovolené. Na obr. 8 ukazuje príklady zakázaných cyklov. Zakázané, pretože ich môžete zadať rôznymi spôsobmi.
Nepamätajte si však vzhľad týchto zakázaných cyklov. DRAKON Editor takéto slučky automaticky zistí a vygeneruje chybu.




Obr. 7 Povolené cykly s dvoma výstupmi


Obr. 8 Zakázané cykly s dvoma vchodmi

Rozdiely od textového štruktúrovaného programovania

Ako vidíte, ikony a makroikony jazyka DRAGON zodpovedajú štandardným konštrukciám textového štruktúrovaného programovania. Existujú však aj rozdiely. Text, aj keď je odsadený, je jednorozmerný objekt. A diagram je dvojrozmerný. V diagrame sa objavuje ďalší stupeň voľnosti, ktorý zvyšuje expresivitu. Skúste napríklad v textovom programovacom jazyku bez opakovaní a ísť do znázorňuje algoritmus ako na obr. deväť.


Napriek ďalšej voľnosti v porovnaní s textom DRAK stále nepripúšťa upadnutie do anarchie. Jeho pravidlá sú dostatočne prísne, aby sa predišlo nedorozumeniam. DRAGON poskytuje rozumný kompromis medzi flexibilitou a prísnosťou.



Obr. 9. Algoritmus, ktorý je ťažké zobraziť iba pomocou textu

Výhody grafického jazyka

Jazyk DRAKA má zaujímavý osud. Jeho základné princípy stanovil sám Dijkstroy. DRAGON nadobudol súčasnú podobu v hlbinách ruského vesmírneho priemyslu. Je pozoruhodné, že pravidlá jazyka DRAKA nevznikli náhodou. Najprv boli testované v ohniskových skupinách a potom brúsené v skutočných vesmírnych projektoch.
Aké sú teda silné stránky DRAKA?


Začnime tým, že DRAGON je grafický jazyk. A grafický jazyk má oproti textu zásadné výhody.


Po prvé, myšlienky nie sú náhodne rozložené cez čiary, ale sú uzavreté do štvorcov alebo ikon. Jedna myšlienka - jeden štvorec. Rôzne myšlienky nedržia spolu.


Po druhé, cestu cez algoritmus možno sledovať prstom (alebo pohľadom). Po ak netreba hľadať inak... Nasledujte čiaru a ocitnete sa na požadovanom námestí. Pri hľadaní odpovede na otázku, čo sa stalo potom, nie je potrebné prechádzať očami po zdrojovom kóde?


A grafy majú aj jednu takmer magickú vlastnosť. Stáva sa, že sa človek pozrie na diagram a zrazu príde nejaké ďalšie pochopenie. Predtým neviditeľné spojenia sa stanú zjavnými. Pri texte sa to stáva zriedka.

Špeciálne ergonomické pravidlá

Ale DRAGON nie sú len diagramy, sú to prepracované diagramy. DRAKOVÉ diagramy sa čítajú ľahšie ako bežné vývojové diagramy. Zabezpečujú to špeciálne ergonomické triky. Tu sú niektoré z nich.

  • Prekračovanie čiar je zakázané. Vo všeobecnosti. Priesečníky spôsobujú, že náš vizuálny analyzátor má podozrenie, že čiary sa dotýkajú, a teda sú nejakým spôsobom spojené. Tieto podozrenia vytvárajú ďalšiu duševnú prácu. Nepotrebná práca by sa mala zlikvidovať.
  • Začiatok obsahuje názov algoritmu a je vždy umiestnený v ľavom hornom rohu diagramu. Preto ani netreba hľadať začiatok. Je tam, kde zvyčajne je.
  • Diagram má len jeden koniec. Čokoľvek sa na ceste stane (až na výnimky), vždy prídeme na koniec.
  • Povolené sú len rovné čiary. Žiadne krivky, žiadne ohyby alebo zbytočné zalomenia.
  • Povolené sú iba prísne vertikálne a prísne horizontálne čiary. Šikmé čiary sú zakázané. Vysvetlenie pre milovníkov matematiky: Diagram DRAKA je plochý obdĺžnikový graf (graf Manhattan). Ľudský zrakový aparát okamžite uchopí predmety spojené rovnými ortogonálnymi čiarami. Sledovanie toho, kam povedie krivka American Dream Curve, si však od čitateľa vyžaduje dodatočné sústredenie.
  • Schéma DRAGON sa vykonáva zhora nadol. Toto pravidlo zabraňuje potrebe horúčkovito skenovať diagram očami pri hľadaní ďalšej ikony. Ďalšia ikona je vždy dole. Vchod je hore a výstup je dole. Keďže vieme, kde je ďalšia ikona, šípky nie sú potrebné. Stačia jednoduché línie. Šípky vedľa každej ikony predstavujú vizuálny šum. Po odstránení úlohy spájania ikon zo šípok im môžete priradiť špeciálnu misiu. U DRAKA šípka znamená cyklus.
  • Rozvetvenie sa vyskytuje iba vpravo. Je to obrovská pomoc z hľadiska predvídateľnosti a konzistentnosti.
  • Ikony umiestnené na rovnakej vertikále musia mať rovnakú šírku. To dáva pocit, že ikony patria do jedného celku. Keď majú všetci rovnakú šírku a nie sú tam žiadne začiatočnícke ikony, oko ľahko a voľne kĺže po diagrame.

Vyššie uvedené pravidlá majú nesmiernu praktickú hodnotu. Na jednej strane sú navrhnuté tak, aby obmedzili umelcovo šialenstvo. Je ťažšie s nimi vytvoriť neprehľadný diagram. Na druhej strane prinášajú do grafov povedomie. Diagramy sa stávajú zrozumiteľnými nielen pre ich autorov.


Schémy na obr. 10 a 11 demonštrujú ergonomické techniky jazyka DRAGON na reálnych príkladoch.




Obr. 10. Ergonomické techniky jazyka DRAGON ako príklad


Obr.Ďalší príklad diagramu v jazyku DRAGON
Okrem ergonomických techník má jazyk DRAGON jedinečné vlastnosti, ktoré nikde inde nenájdete.

Čím viac vpravo, tým horšie

DRAGON má prostriedky na obraz šťastnú cestu, alebo kráľovská cesta... Cárska cesta je najúspešnejšou cestou cez algoritmus. V niektorých algoritmoch sa pojmy „dobrý/zlý“, „dobrý/zlý“ nedajú použiť. V nich kráľovská cesta ukazuje najočakávanejšiu cestu. Kráľovská cesta vedie vertikálne, nachádza sa na ľavej strane diagramu. Táto vertikála sa nazýva špíz. Menej pravdepodobné a menej úspešné scenáre, ako aj spracovanie chýb, sú umiestnené na pravej strane diagramu. Navyše, čím horšia je situácia, tým viac vpravo by mala byť umiestnená. Je dobrou praxou umiestniť kód, ktorý vyvolá výnimku alebo vráti chybový kód, na pravú stranu diagramu.


Spoločný osud

Niekedy sa stáva, že na rôznych cestách cez algoritmus je potrebné vykonať rôzne, ale nejako súvisiace akcie. Napríklad vložte rôzne hodnoty do jednej premennej. Zdieľaný osud je, keď súvisiace akcie sedia na rôznych vertikálnych čiarach, ale na rovnakej horizontále.


Ryža. 12 je znázornená ražňa s kráľovským cestom, ako aj aplikácia techniky „spoločného osudu“.




Obr. Kráľovská cesta a spoločný osud

Silueta

Silueta je skutočný diamant DRAGON. Silueta vám umožňuje rozdeliť diagram na logické časti. V programovaní sa na to zvyčajne používa rozklad pomocou podprogramov. Podprogramy sú mocnou metódou. Niekedy by som však rád umiestnil podprogram vizuálne blízko k hlavnému programu, ako aj vyhnúť sa neporiadku s odovzdávaním parametrov a vracaním hodnôt. Silueta je na tieto účely skvelá. Ďalšie využitie siluety je v konečných automatoch. Ale o tom si povieme inde.
Stáva sa, že algoritmus nie je možné rozložiť na rovine, takže neexistuje priesečník čiar. V tomto prípade sa v závislosti od situácie aplikuje buď rozklad pomocou podprogramov alebo silueta.


Silueta pozostáva z niekoľkých malých schém spojených do jedného celistvého bloku. Tieto malé diagramy sa nazývajú vetvy siluety. V hornej časti každej pobočky je ikona „Vedúci pobočky“, pod ňou ikona „Adresa“. Názov tejto pobočky je umiestnený v záhlaví pobočky a názov ďalšej pobočky je uvedený v adrese. Názvy pobočiek sú umiestnené na jednej vodorovnej čiare v hornej časti diagramu. Vďaka tomu môžete pochopiť podstatu algoritmu tak, že budete prechádzať iba hlavičkami vetiev. Silueta odpovedá na tri kráľovské otázky:

  1. Aký je názov problému?
  2. Z koľkých častí sa skladá?
  3. Ako sa volajú tieto časti?

Zvážte príklad na obr. 13. Tu sú odpovede na kráľove otázky:

  1. Aký je názov problému? Usporiadať prepojený zoznam.
  2. Z koľkých častí sa skladá? Zo štyroch.
  3. Ako sa volajú tieto časti? Vytvorte maticu odkazov. Skontrolujte cykly. Prejdite si maticu spojení. Dokončiť.


Obr."Silueta" v schéme DRAGON

Cyklus siluety

Vetvy siluety by mali byť usporiadané zľava doprava. V niektorých prípadoch je potrebné vykonať vetvu alebo skupinu vetiev viackrát. Tento dizajn sa nazýva siluetová slučka. Ak ikona „Adresa“ ukazuje na vlastnú pobočku alebo na pobočku, ktorá sa nachádza vľavo, mala by byť označená špeciálnym štítkom. Rovnaká značka by mala byť umiestnená na príslušnej ikone „Hlava pobočky“ (pozri obr. 14). Účelom štítku je zviditeľniť slučku siluety.




Obr. Siluetová slučka a štítky

Spojenie siluetových vetiev je zakázané

Spojenie dvoch vetiev siluety (ako na obr. 15) je zakázané. Každá vetva v rámci siluety by mala byť nezávislá.




Obr. Spojenie konárov siluety je zakázané.

Tabuľky veľkostí

Pri programovaní v jazyku DRAGON vyvstáva otázka: akú veľkosť majú mať diagramy? Odpoveď znie: čím menej, tým lepšie. Čím menej objektov je vo vizuálnej scéne, tým je jasnejšia. V textovom programovaní existuje taký referenčný bod: je dobré, ak sa celá funkcia zmestí na obrazovku. Podobné rady možno poskytnúť pre schémy DRAGON. Vyhnite sa veľkým grafom. Keď je celý algoritmus plne viditeľný, je oveľa jednoduchšie ho pochopiť.
Pre programovanie DRAGON nie je lepšie mať veľký monitor. Minimálne 1080 pixelov na výšku. Potom nemusíte schémy DRAKA umelo skracovať.


DRAK-schéma silueta sa musí zmestiť na obrazovku na výšku, ale nie nevyhnutne na šírku. Diagramy silueta môže byť dosť široký, oveľa širší ako 2000 pixelov. Toto je fajn. Nie je potrebné vidieť všetky vetvy siluety súčasne. Hlavná vec je, že vetva, s ktorou pracujete, je plne viditeľná na obrazovke.

Kritika programovania DRAGON

Pozrime sa na hlavné smery kritiky programovania na DRAGU a pokúsme sa na ne odpovedať.

  • "Diagramy DRAGON zaberajú viac miesta na obrazovke ako programy na spracovanie textu." Toto je pravda. Ale musíme mať na pamäti, že úlohou DRAKA je ukázať zložitosť takú, aká je. Čitateľ programu by si nemal v hlave vybaľovať zložité štruktúry. Musia sa mu výslovne ukázať.
  • "Jednoduché algoritmy vyzerajú lepšie v obyčajnom texte." Možno. Hello world vyzerá elegantne v akomkoľvek jazyku. Ale v skutočnom živote nie je všetko jednoduché. Hneď ako sa objaví aspoň jeden ak vnorené v inom ak, DRAK víťazí.
  • "DRAGON nemá žiadne zariadenie na zobrazenie výnimiek." Existuje taký problém. Výnimky boli nedávno pridané do jazyka DRAGON, ale nie všetky implementácie ich podporujú. Kým neprídu implementácie, môžete písať bloky pokus / chytiť v príslušnom programovacom jazyku.
  • "DRAGON-schémy sa kreslia dlho." Je oveľa jednoduchšie kresliť diagramy DRAGON v špecializovaných editoroch ako napríklad vo Visiu. A v niektorých z nich je kreslenie takmer také jednoduché ako písanie.
  • "Neexistujú žiadne nástroje na porovnanie a zlúčenie." Žiaľ, je to tak. Pri práci so systémom správy verzií musíte porovnať vygenerované zdrojové súbory.
  • "Neexistujú žiadne nástroje na ladenie schémy DRAGON." Toto je pravda. Vygenerovaný kód však môžete odladiť. Má štítky, ktoré označujú, kam tento kus kódu v diagrame patrí.

Prehľad dračieho jazyka

Obrázok 16 poskytuje prehľad jazyka DRAGON.




Obr. Prehľad jazyka DRAGON

Nástroje jazyka Dragon

Úplne prvou implementáciou jazyka DRAGON bol systém GRAFIT-FLOKS (obr. 17). GRAPHITE-FLOX bol vytvorený v rokoch 1986-1996. špecialistami FSUE NPTs AP nich. Pilyugin pod vedením V.D. Parondžanova. Toto prostredie bolo určené na návrh riadiacich systémov nosných rakiet a kozmických lodí.


GRAPHITE-FLOX je uzavretý vývoj, takže sa o ňom vie pomerne málo. Môžete si pozrieť zoznam kozmických lodí vytvorených pomocou GRAFIT-FLOX.


Začiatkom 90. rokov vznikol ďalší editor DRAGON. Vývoj sa uskutočnil v Ústave aplikovanej matematiky pomenovanom po M.V. Keldysh pod vedením L.K. Eisymont. Editor Eisymont (obr. 18) je možné stiahnuť a spustiť, ale už nie je podporovaný. Editor je napísaný pod MS DOS, takže na jeho spustenie na moderných počítačoch možno budete potrebovať DOSBox.


V roku 2008 bol prepustený editor IS Dragon od Gennadija Tyshova (obr. 19). IS Dragon je aktívne podporovaný a rozvíjaný. IS Dragon implementuje generovanie programového kódu z diagramov. Jednou zo zaujímavých funkcií IS Dragon je možnosť umiestniť kód v programovacom jazyku a popis v prirodzenom jazyku do jednej ikony. Absolútnou prednosťou IP Dragon je takzvaný „počet ikon“. Ikonový počet je metóda úprav, ktorá pomáha používateľovi kresliť diagram a zabezpečuje, že diagram neporušuje pravidlá jazyka DRAGON. Medzi nevýhody IS Dragon patrí neštandardné používateľské rozhranie a niektoré nepríjemnosti pri generovaní kódu. IP Dragon je komerčný produkt.


DRAKON Editor je ďalší moderný editor DRAGON (obr. 20). DRAKON Editor vyvinula skupina nadšencov pod vedením Stepana Mitkina. DRAKON Editor nepodporuje výpočet ikon. To znamená, že schémy DRAGON sa v ňom zostavujú ručne z primitív, ako vo vektorových grafických editoroch. Ale na druhej strane je používateľské rozhranie v DRAKON Editore maximálne jednoduché. Je postavený podľa známejšej schémy ako IS Dragon. Hlavnou výhodou prostredia DRAKON Editor je jednoduchosť programovania a generovania kódu. DRAKON Editor podporuje viacero programovacích jazykov vrátane C, C++, C#, Java, Processing, JavaScript, Lua, Erlang, Python, Tcl, Verilog, AutoHotkey, D a Go. Pre niektoré jazyky je možné generovať stavové automaty. Pravidlá pre expertný systém nools sú podporované. Implementovaná podmnožina jazyka UTOPIST E. Tyugu. DRAKON Editor je open source.


Zaujímavú aplikáciu pre jazyk DRAGON vymyslel Oleg Garipov vo svojom projekte Integrator CodeView. CodeView vám umožňuje vizualizovať existujúci kód vo forme vzájomne prepojeného súboru DRAGON-schém. Zvláštnosťou Integrator CodeView je, že sa nezobrazujú jednotlivé metódy, ale celý projekt vrátane call grafu, zásobníka atď. Integrator CodeView je unikátny aj tým, že vizuálne zobrazuje nielen algoritmy, ale aj dáta. Modul vizualizácie dát v systéme Integrator pracuje v spojení s DRAGON.


DRAKON Editor Web je komerčné cloudové riešenie založené na jazyku DRAGON. DRAKON Editor Web je navrhnutý pre technické špecifikácie, obchodné postupy a kontrolné zoznamy. DRAKON Editor Web nie je žiadnym spôsobom spojený s DRAKON Editorom a nepodporuje generovanie kódu z diagramov. Medzi výhody DRAKON Editor Web patrí pohodlný editor, spolupráca a podpora pre mobilné zariadenia.




Obr. 17. DRAGON-schéma v systéme GRAFIT-FLOX


Obr. DRAGON Editor Eisymont


Obr. 19. Program s vysvetlivkami v IS Dragon


Obr. Editor DRAKON

závery

Poďme si to zhrnúť. DRAK je praktický jazyk zocelený vo vesmíre. Do vývojových diagramov priniesol štruktúru, poriadok a konzistentnosť. Predvídateľnosť a úhľadnosť schém DRAGON vedie k tomu, že vizuálne programovanie Tvorba.


Skúsenosti z reálnych projektov ukázali, že na DRAKU sa nedá programovať. Na jednej strane je DRAGON výraznejší ako text. Na druhej strane zvyšuje čitateľnosť programov. A okrem toho programy vo forme schém DRAGON vyzerajú dobre, rovnako ako z mimozemskej vesmírnej lode (aj keď veľa závisí od farebnej schémy). Osobne som ľahko prešiel na DRAGON. Je nepohodlné, keď naopak niekedy musíte programovať v tradičnom textovom štýle.

Pridať značky

Vývojár programu Tyšov Gennadij Nikolajevič
Severodvinsk, pracoval v JSC SPO Arktika, www.spoarktika.ru.

Program IS Dragon je určený pre:
- praktická algoritmizácia vašich aktivít,
- formulovať svoje úlohy,
- formalizácia vašich vedomostí.

Program je nástroj:
- vizuálna technika myslenia a komunikácie,
- vizuálny návrh algoritmov pre aktivity a programy,
- vizuálne programovanie,
- vytváranie algoritmických základov činnosti.

Program "IS Dragon" (Integrated Environment Dragon) je prostredie pre prácu s algoritmami Dragon.
S pomocou IS Dragon sa algoritmická kultúra zavádza do mnohých typov aktivít.

Stiahnite si program "IS Dragon"

Užívateľské pokyny

    Užívateľ môže uložiť grafický súbor Dragon-leaf alebo Dragon-scheme. Otvorením grafického súboru v grafickom editore môžete pridať napríklad grafické atribúty organizácie, môžete vytlačiť papierovú kópiu.

    Používateľ môže skopírovať obrázok Dragon Leaf alebo Dragon Scheme do systémovej schránky. Obrázok zo systémovej vyrovnávacej pamäte je možné vložiť do editovateľných textových alebo grafických dokumentov. Obrázok je možné skopírovať do schránky z obrazovky s prvkami procesu úprav (s výberom grafického kurzora, bodmi vkladania ikon), čo vám umožňuje vytvárať návody na používanie IS Dragon a manuály pre používateľov algoritmov Dragon .

    Používateľ môže okrem papierovej kópie algoritmu Dragon dostať aj textový súbor so sprievodnými informáciami z A-, B-, P-textov. Takto je možné publikovať plne funkčné Dragon algoritmy.

    Používateľ môže v textoch Dragon-algorithms uviesť názvy súborov alebo internetový odkaz. Keď zvýrazníte názov súboru, môžete súbor spustiť alebo otvoriť súbor či prepojenie. Otváranie sa vykonáva pomocou spojenia prípon súborov a aplikácií nainštalovaných v počítači. Ak v názve súboru nie je žiadna cesta k umiestneniu, súbor sa vyberie pri hľadaní súboru v priečinku programu. V budúcnosti sa plánuje vyhľadávanie súboru aj v podpriečinku " DFiles". V budúcnosti sa počíta s možnosťou umiestniť názvy súborov a odkazy do zátvoriek " "Vykonať klávesovou skratkou bez zvýraznenia v texte."

    Používateľ pomocou možnosti špecifikovať súbory vytvára informačné prostredie externé a kontextové voči algoritmu, vrátane internetového priestoru.

Pokyny pre programátora

    Používateľ môže mať textový súbor so šablónami programového kódu vo vybranom programovacom jazyku, skopírovať ho do okna správy. Vyberte šablónu v okne správy a pomocou systémovej vyrovnávacej pamäte preneste text šablóny do textov algoritmu.

    Používateľ môže nastaviť použitie dávkového súboru " Dragon.bat»Pri zostavovaní programového kódu do programových súborov v programovacom jazyku. V tomto prípade sa vytvorí zoznam programových súborov, prenesie sa do dávkového súboru a dávkový súbor sa spustí na vykonanie. To umožňuje integráciu programovania s prekladom a ladením.

    Používateľ si môže nastaviť režim zostavenia programového kódu s nahradením chýbajúceho P-textu v ikonách komentárom s textom „ …… Žiadny text". To vám umožňuje blokovať chybové hlásenia a vykonávať preklad na začiatku vývoja algoritmu.

    Užívateľ si môže nastaviť režim generovania programového kódu so zahrnutím kódu pre sledovanie vykonávania označených ikon.

    Užívateľ môže vytvoriť text výpisu algoritmu pre Dračí list. Text výpisu algoritmu umožní programovo porovnať verzie algoritmu, nájsť miesta zmien.

    Používateľ môže nastaviť vlastnosť pre schému Silueta. Stroj vykonávať automatické programovanie konečných automatov pomocou technológie SPÍNAŤ... Príležitosť bola zavedená na návrh S.D. Efanov.

    Odporúča sa vytvoriť zoznamy drakov s algoritmami a programovými kódmi a zoznamy drakov s pokynmi na obsluhu softvéru pre používateľov. Pokyny sú odosielané používateľom spolu s Dragon IP. Táto prax práce v IS Dragon od A.A. Araptanov v systéme 1C.

Program má nástroje na prispôsobenie pre rôzne programovacie jazyky. Program umožňuje zostaviť schémy Dragon do zdrojových kódov programov v jazykoch s operátormi: komentár, štítok, nepodmienený skok (GOTO), skok podľa podmienky; napríklad jazyky rodiny 1C, Delphi, C. Zostavenie programového kódu ikon do súboru vykonáva interný prekladač Route.

Šetrič obrazovky IP Dragon


Čo je to dračí list?


    Dračí list sa zobrazí v režime programovania.

    Vstupnými bodmi textu (do 4 štvorcov) sú texty A, B, S, P.

    Body A, B slúžia na zadanie sprievodných informácií, bod P na zadanie kódu programu, bod S na zobrazenie zhromaždeného kódu programu. Keď je tam text, štvorec stmavne.

    si povedomý? požadované miesta na zadávanie textu v ikonách sú označené.

Úprava schémy draka

Ikona 3 je vybratá na úpravu.
Podpísať "?" ikony Adresa a Pobočka označujú neprítomnosť prenosu kontroly. Prenos riadenia je vizuálne označený prerušovanou čiarou.


Zvláštnosti

Charakteristickým rysom programu je vysoký stupeň automatizácie grafického vstupu.

Druhou vlastnosťou je, že každá ikona má niekoľko (až 4) úrovní zadávania textu. Jedna z týchto úrovní je zobrazená na „tele“ ikony, druhá môže obsahovať fragment kódu programu. Zvyšné úrovne (A-text, B-text, P-text, S-text) je možné použiť ľubovoľne, napríklad obsahujú podrobné komentáre, odkazy a sprievodné informácie.

Na zobrazenie obchodných procesov sú ikony doplnené o mená účastníkov obchodného procesu.

Všetky zobrazené texty môžu byť viacriadkové a veľké.
Maximálny počet riadkov v ikone sa nastavuje v nastaveniach programu, celý text sa zobrazuje v textovom editore na záložke.

Popis formátu DRT

Metodické pokyny pre prácu s IS Dragon

Pre tlač nasledujúcim spôsobom: uložte grafický súbor, vytlačte ho v PAINT. Existujú možnosti tlače s mierkou a rozložením na niekoľko listov A4, existujú nastavenia pre tlač.

Lekcie DRAKA

Na zvládnutie techník práce s programom IP Dragon je užitočné sledovať videá. Proces je zobrazený od prvého spustenia editora až po načítanie výsledného firmvéru do mikroprocesora.

Ďalšia stránka programu "IS Dragon"

Textové varianty a súbory prehľadu lekcie draka

Návrhy Gennadija Tyshova

Sprievodné informácie môžu obsahovať označenie legislatívnych a organizačných a administratívnych dokumentov, môžu obsahovať fragmenty dokumentov.

Prítomnosť sprievodných informácií je dôležitá pre osoby pracujúce s právne významnými algoritmami. Prítomnosť sprievodných informácií k ikone odôvodňuje vznik a platnosť právnej normy zobrazenej v ikone. Práve prítomnosť sprievodných informácií určuje relevantnosť právne významného algoritmu Dragon.

Program IS Dragon je vyvinutý na základe vizuálnych algoritmických jazykov Dragon a Gnome vytvorených V.D. Parondzhanov a štátna norma GOST 19.701-90 (ISO 5807-85). Myšlienky a ciele jazyka Dragon boli vyvinuté pre praktické a široké využitie.

Procesné znalosti, algoritmus - popisuje poradie akcií s objektom, zobrazené v Dragon-schémach formulára Primitívne a Silueta.
Deklaratívne znalosti- odpovedá na otázku: "Čo je to?", zobrazená v Dragon-schéme formulára Trpaslík.

Vytváranie a editovanie Dragon-schém sa vykonáva v IS Dragon.

Dračí algoritmy na tabletoch
Niektoré problémy s používaním algoritmov Dragon vytvorených v Dragon IS sú posúdené na fóre v téme "Dragon and Android IS".

IS Dragon funguje v iných operačných systémoch
Na operačných systémoch podobných UNIX funguje s programom Wine.
V macOS funguje s Parallels Desktop.

Akcie pre ikony 19 a 21 vykonávajú účastníci obchodného procesu.
Dračí list sa zobrazí v režime programovania.
Body zadávania textu (do 4 štvorcov) sú A, B, S, P-texty: A, B na zadávanie sprievodných informácií, P na zadávanie kódu programu, S na prezeranie zostaveného kódu programu. Ak je tam text, štvorec je tmavý.
List môže byť doplnený hlavičkami a pätami: hore uprostred, vľavo dole, uprostred dole, vpravo dole.
Znak "?" Označuje povinné miesta pre zadávanie textu do ikon, miesta pre zadávanie ikony v bloku ikon pre zabezpečenie funkčnosti bloku.