Programare vizuală în limbajul dragonului. „Buran” și limbajul de programare dragon

Ultima editare de PBworks acum 12 ani, 3 luni

RELEVATE ALE LIMBAJULUI DRAGON

CRITICA DIAGRAMELOR DE DEBIT

Un instrument eficient pentru îmbunătățirea înțelegerii algoritmilor este vizualizarea programării, iar în acest scop au fost folosite diagrame de flux ceva mai vechi. Cu toate acestea, în în ultima vreme organigramele au fost criticate. Oponenții diagramelor de flux susțin că acestea nu sunt potrivite pentru programare structurată, nu pot fi formalizate, deci „nu pot fi folosite ca program pentru introducerea directă într-o mașină”. Ele ocupă multe pagini și „informații foarte limitate pot fi introduse în celulele diagramelor de flux”. Diagramele „degradează învățarea și reduc performanța de înțelegere”. În plus, nu sunt convenabile pentru toată lumea - doar „persoanele cu emisfera principală dreaptă, concentrată pe informatii vizuale, intuitive, recunoașterea modelelor”, dar sunt evitate de „indivizii cu emisfera stângă conducătoare, orientați către informația verbală, predispuși la raționament deductiv” etc.

În timp ce diagramele de flux erau instrumentul cel mai utilizat înainte de 1980, astăzi ele „nu mai sunt considerate necesare și sunt în scădere în popularitate”. Deși există încercări individuale de a adapta diagramele de flux la nevoile moderne (limbaj SDL etc.), în general, diagramele de flux s-au găsit în mod clar pe marginea procesului de vizualizare a programării în curs de dezvoltare, iar capacitățile lor potențiale enorme nu sunt efectiv utilizate. Limbajul DRAGON vă permite să eliminați sau să slăbiți semnificativ deficiențele observate ale diagramelor bloc.

Pentru a desemna diagrame de flux construite conform regulilor limbajului DRAKON, se folosește termenul „scheme-dragon”.

AVANTAJELE SCHEMELOR DRAGON

Cum diferă diagramele dragon de diagramele flux? Diagramele de flux nu oferă conversie automată algoritm în codul mașinii. Diagramele dragon, dimpotrivă, sunt potrivite pentru înregistrarea oficială, primire automată codul și execuția acestuia pe computer. Cu toate acestea, a doua diferență (cognitivă) este mai importantă. Deși diagramele de flux îmbunătățesc uneori înțelegerea programelor, acest lucru nu se întâmplă întotdeauna, iar gradul de îmbunătățire este mic. În plus, există multe cazuri în care organigramele executate prost devin confuze și greu de înțeles. În schimb, schemele-dragon satisfac criteriul de comprehensibilitate ultra-înaltă.

Datorită utilizării unor tehnici cognitive formale și informale speciale, diagramele dragon fac posibilă reprezentarea soluției oricărei probleme tehnologice, oricât de complexă, într-o formă extrem de clară, vizuală și inteligibilă, ceea ce poate reduce semnificativ efortul intelectual al personalului. necesare pentru percepția vizuală, înțelegerea, verificarea și soluționarea fără erori a problemelor.

Pictograme și macroicoane

Elementele grafice (litere grafice) ale limbajului DRAGON se numesc pictograme (Fig. 1). Așa cum literele sunt combinate în cuvinte, pictogramele sunt combinate în pictograme compuse - pictograme macro(Fig. 2).

Prin conectarea pictogramelor și macroicoanelor conform anumitor reguli, puteți construi diverși algoritmi, exemple dintre care sunt prezentate în Fig. 3, 4, 6, 8-11.

Bloc de frigarui- parte din circuitul dragonului, având o intrare de sus și o ieșire de jos, situate pe aceeași verticală. Exemple de blocuri de frigărui sunt pictogramele I3 - I10, I12 - I16, I18, I20, I21 (Fig. 1) și macropictogramele 2-20 (Fig. 2).

DE CE AI NEVOIE DE O SUCURSALA?

Când Prințesa Anne a divorțat de marchizul Le Chatelier, a apărut o dispută cu privire la împărțirea proprietății. Judecătorul a cerut să indice ce achiziții a făcut prințesa înainte de căsătorie și care după.

Acum să uităm de această dramă de familie și să comparăm orezul unul cu celălalt. 3a și 3b. Este ușor de observat că primul nu permite să răspundă la întrebarea judecătorului. În ceea ce privește al doilea, acesta, dimpotrivă, conține informațiile necesare. Mai mult, algoritmul din fig. 3b este tras în mod deliberat, astfel încât achizițiile făcute înainte și după căsătorie să fie clar împărțite în două liste. Aceste liste sunt separate vizual și spațial, astfel încât împărțirea algoritmului în două părți, indiferent de voința cititorului, este literalmente izbitoare. Această tehnică se numește ruperea algoritmului în părți semantice conform principiului „M-am uitat și a devenit imediat clar!” Și blocurile semantice în sine sunt numite ramuri.

Cuvântul „ramură” are două sensuri. Pe de o parte, aceasta este o „piesă” semantică a algoritmului. De exemplu, algoritmul din fig. 3b are două ramuri („Cumpărături înainte de căsătorie” și „Cumpărături după căsătorie”). În fig. 4 - patru ramuri („Pregătirea pentru pescuit”, „Așteptați o mușcătură”, „Munca de pescuit”, „Întoarcere”). Pe de altă parte, branch este un operator compus al limbajului DRAGON, care nu are analogi în limbi cunoscute. Operatorul „ramură” este format din trei părți: începutul firului(pictogramă „numele sucursalei”), corpuri de ramuri(care poate conține un număr mare de pictograme) și capătul ramului(care conține una sau mai multe pictograme „adresă” sau o pictogramă „sfârșit”).

Deci de ce avem nevoie de o ramură? Pentru a ajuta lucrătorul în cunoștințe, programatorul și dezvoltatorul de tehnologie să oficializeze împărțirea semantică a unei probleme, program sau proces tehnic în părți și să dea părților nume semantice convenabile. În același timp, împărțirea problemei în N părțile semantice sunt implementate prin împărțirea algoritmului în N ramuri.

CUM FUNcționează O SUCURSALA?

O ramură are o intrare și una sau mai multe ieșiri. Intrarea este pictograma „nume sucursală”, care conține ID-ul sucursalei. Operatorul vizual „nume de ramură” nu efectuează nicio acțiune, este doar o etichetă care declară numele părții semantice a programului. Execuția algoritmului dragon începe întotdeauna din ramura cea mai din stânga (Fig. 3, 4).

Ieșirea dintr-o ramură este pictograma „adresă”, în care este scris numele următoarei ramuri în ordinea execuției. Pictograma „adresă” este un operator de tranziție deghizat (goto), dar nu transferă controlul nicăieri, ci doar la începutul ramurii selectate. Intrarea într-o sucursală este posibilă doar prin începutul acesteia. Ieșirea din ultima ramură se realizează prin pictograma „sfârșit”.

CUM TREBUIE AMPLASATE CAMPUNILE ÎN CÂMPUL DE DESENARE?

Ramurile sunt ordonate în două moduri: logic și spațial. Logic Secvența de execuție a ramurilor este determinată de marcajele scrise în pictogramele „adresă”. Cu toate acestea, ordinea logică nu este totul. În fig. 5 arată trei moduri diferite spațială locații ale filialelor care au aceeași ordine logică. Pentru a elimina ambiguitatea spațială și pentru a facilita înțelegerea semnificației diagramei dragonului, este introdusă regula „cu cât mai în dreapta, cu atât mai târziu”. Înseamnă: ramura desenată la dreapta funcționează mai târziu decât toate ramurile din stânga.

Un algoritm desenat după regula „cu cât mai în dreapta, cu atât mai târziu” este considerat bun și ergonomic (Fig. 5c). Schemele în care această regulă este încălcată sunt declarate rele (Fig. 5a, b) și utilizarea lor este interzisă.

În algoritmii admiși (ergonomici), are loc următoarea ordine de funcționare (Fig. 3, 4, 5c, 6a):

  • Ramura din stânga lucrează prima, ramura din dreapta durează;
  • ramurile rămase trec controlul între ele de la stânga la dreapta (se poate întâmpla ca unele ramuri să fie sărite);
  • uneori se formează un așa-numit „ciclu de ramificație”. Acest lucru se întâmplă atunci când pictograma „adresă” conține numele propriei ramuri sau una dintre ramurile din stânga. În fig. 4 și 6a, ciclul ramurilor este marcat cu triunghiuri negre.

CE ESTE O PĂLĂRIE?

Din punctul de vedere al cititorului, orice algoritm non-trivial nefamiliar sau uitat este o problemă extrem de dificilă pe care încearcă cu disperare să o înțeleagă, depășind puternica „rezistență a materialului”. Pentru a simplifica lucrurile și a facilita sarcina de înțelegere, este necesar ca cititorul să „vadă lumina” și, împărțind problema în părți, să vadă structura ei semantică în termeni. domeniul subiectului. Mai mult, l-am văzut nu în sensul figurat al cuvântului, nu cu ajutorul imaginației, nu cu ochiul spiritual, ci cu cei doi ochi ai mei - pe hârtie sau pe un ecran.

Dar cum să faci asta? Dificultatea este că niciuna dintre limbile existente nu oferă cititorului să învețe program complex sau tehnologie, asistență eficientă care vă permite să înțelegeți instantaneu (în câteva secunde) structura acestuia, adică împărțirea în blocuri semantice. Limba DRAGON are mijloace speciale, oferind o soluție la problemă.

Se numește pălărie partea superioara dragon-scheme (Fig. 4), care include titlul algoritmului și un set de pictograme „numele ramurului”. Scopul antetului este de a ajuta cititorul instantaneu (în cel mult câteva secunde) să navigheze problema și să primească un indiciu puternic - răspunsul la cele mai importante trei întrebări:

  1. cum se numeste problema?
  2. Din cate piese este compusa?
  3. cum se numeste fiecare parte?

La urma urmei, cu aceste întrebări, cunoașterea noastră cu orice sarcină începe cu o abordare rațională a problemei.

Iată răspunsurile pentru fig. 4.

  • Care este numele problemei? Pescuit.
  • Cate piese are problema? Din patru.
  • Care este numele fiecărei părți? 1. Pregătirea pentru pescuit. 2. Așteptând o mușcătură. 3. Munca de pescuit. 4. Drumul înapoi.

Comodități suplimentare sunt asociate cu faptul că antetul ocupă un loc „ceremonial” în câmpul desenului, iar numele părților semantice sunt plasate în cadrul unor cadre speciale cu o formă unică și, datorită acestui lucru, atrag instantaneu atenția cititorului. fără nici un efort din partea lui.

Astfel, DRAGON oferă cititorului o metodă eficientă în trei pași de înțelegere a unui sau nefamiliar problema uitată. În prima etapă, prin analiza antetului, cititorul învață scopul algoritmului și împărțirea acestuia în părți semantice (ramuri). Pe al doilea, se efectuează o analiză aprofundată a fiecărei ramuri. La a treia etapă se analizează interacțiunea ramurilor.

CE E MAI BUN: PRIMITIV SAU SILUETA?

Diagrama dragonului cu ramuri se numește siluetă, fara ramuri - primitiv. Silueta prezentată în fig. 6a poate fi descris ca o primitivă (Fig. 6b). Există o primitivă conexiune serială Pictograme „de titlu”, blocuri de frigărui și pictograme „sfârșit”. Într-o primitivă, pictogramele „antet” și „sfârșit” trebuie să se afle pe aceeași verticală, care este numită frigarui. Principalele verticale ale blocurilor de frigărui se află pe aceeași linie. Figurat vorbind, frigăruia pătrunde în icoanele primitive (poate nu toate), la fel cum o frigăruie adevărată pătrunde bucăți de kebab.

Se recomandă utilizarea primitivului dacă diagrama dragonului este foarte simplă (primitivă) și nu conține mai mult de 5...15 pictograme. În caz contrar, pentru a îmbunătăți lizibilitatea programului, este mai avantajos să folosiți o siluetă. Încălcarea acestei reguli este de obicei plină de probleme, deoarece împiedică cititorul să identifice esența problemei care se rezolvă și, în consecință, îngreunează și încetinește înțelegerea sensului programului.

De exemplu, algoritmul din fig. 6b pare greoaie și nerezonabil de greu de înțeles. Acest lucru se datorează faptului că conține 19 icoane, dar este reprezentat într-o formă primitivă. Crima este că diagrama din Fig. 6b nu permite cititorului să recunoască instantaneu (în câteva secunde) structura vizuală și semantică a algoritmului. De fapt, din câte părți constă problema rezolvată? Privind Fig. 6b, este destul de dificil să răspunzi la această întrebare și este imposibil să răspunzi rapid. Situația se schimbă radical când ne uităm la Fig. 6a, unde același algoritm este reprezentat în siluetă. Aici, după cum se spune, nu este o idee: algoritmul constă din patru părți: „căută un autobuz”, „așteaptă să te îmbarcă”, „urcar într-un autobuz”, „călătorie”. Totuși, acesta nu este tot: nu mai puțin important este faptul că complexitatea modelului vizual a dispărut și diagrama a dobândit o nouă calitate estetică (ergonomică): eleganță, claritate și transparență.

Astfel, în cazuri complexe, silueta poate reduce semnificativ efortul intelectual petrecut pentru înțelegerea algoritmului. În siluetă, sunt evidențiate clar părți structurale mari ale programului (ramurile), acestea sunt distanțate spațial în câmpul desenului, formând în același timp o imagine vizuală ușor de recunoscut, stabilă, previzibilă și holistică. Și într-o primitivă, părțile structurale nu sunt selectate și amestecate („totul este într-un singur heap”), ceea ce face dificilă citirea și analiza algoritmilor complecși. Cu toate acestea, pentru cazuri simple (mai puțin de 5...15 pictograme), primitivul, de regulă, se dovedește a fi mai preferabil.

CUM SE DESCRIE O SILUETĂ FOLOSIND LIMBAJUL TEXTULUI?

Din fig. 7 se poate observa că pentru a descrie ramurile au trebuit să se facă o serie de modificări la limbajul textului. În special, au apărut doi operatori de text noi care nu se găsesc în limbile tradiționale:

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

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

Operatorul de limbaj text BRANCH declară numele sucursalei (scris în limbaj vizual în interiorul pictogramei „nume sucursală”). Operatorul ADRESĂ transferă necondiționat controlul operatorului text BRANCH, al cărui nume este scris în dreapta operatorului ADRESĂ.

Să luăm în considerare problema. Într-un labirint încurcat care conectează începutul și sfârșitul unui algoritm complex, trebuie să evidențiați o singură rută - un „fir de ghidare” cu care puteți compara vizual toate celelalte rute pentru a naviga cu ușurință prin problemă și a nu vă pierde în încurcătură de furculiţe. Acest fir de ghidare (să-l numim „ruta principală”) ar trebui să fie ușor de distins vizual. Cu alte cuvinte, după ce aruncăm o privire rapidă asupra diagramei dragonului, ar trebui să găsim repere clare, datorită cărora putem vedea imediat și fără greșeală traseul „regal” și celelalte rute ordonate în raport cu acesta.

Pentru a face acest lucru, se introduce o regulă: „Ruta principală a primitivului trebuie să urmeze frigăruia.” Schimbând cuvintele „da” și „nu” în furci și opțiunile din comutatoare (precum și ghirlandele de pictograme atașate acestora), ar trebui să vă asigurați că ieșirea furcii sau a comutatorului care duce la cel mai mare succes apare pe calea regală (Fig. 8) . Și traseele laterale ar trebui aranjate conform următoarei reguli: „Cu cât mai la dreapta, cu atât mai rău”(Fig. 9). Dacă aceste reguli sunt încălcate, circuitul dragonului este considerat rău (Fig. 10a). Cu toate acestea, poate fi întotdeauna transformat într-unul bun (Fig. 10b).

În cazurile în care criteriul „mai bine-mai rău” nu funcționează, ar trebui să fie ales un alt criteriu rezonabil, astfel încât deplasarea la dreapta rutei principale să nu fie întotdeauna arbitrară și haotică, ci atentă și ordonată. De exemplu, la rezolvarea problemelor matematice, ieșirile furcă și opțiunile de comutare pot fi aranjate de la stânga la dreapta în ordinea creșterii sau scăderii valorii matematice (caracteristică) corespunzătoare acestor ieșiri (Fig. 11, 12).

RUTA PRINCIPALĂ A SILUETEI

În paragraful anterior, am învățat cum să ordonăm rutele primitive. Acum este rândul siluetei.

Ramuri frigaruite numită verticală care conectează pictograma „nume sucursală” cu pictograma „adresă”, iar dacă ramura are mai multe ieșiri - cu cea din stânga. Pentru ramură, ambele reguli „regale” rămân în vigoare:

  • traseul principal al ramurilor ar trebui să urmeze frigăruia;
  • traseele laterale ale unei ramuri ar trebui ordonate de la stânga la dreapta după un anumit criteriu.

Să presupunem că principiul „cu cât mai la dreapta, cu atât mai rău” este ales drept criteriu. În acest caz, fiecare ramură a siluetei ar trebui să fie construită după o singură regulă: cu cât mai în dreapta (cu cât este mai departe de frigăruia unei ramuri date) următoarea verticală este situată, cu atât acțiunile pe care le efectuează sunt mai puțin reușite.

De exemplu, în Fig. 6a linia „încărcare în autobuz” are trei verticale. Verticala din stânga (traseul principal) descrie cel mai mare succes, deoarece vei sta în autobuz. Verticala potrivită înseamnă cel mai mic succes, din moment ce ai coborât din autobuz și călătoria este amânată. Verticala din mijloc (situată deasupra pictogramei „Vrei să călărești în picioare?”) ocupă o poziție intermediară, deoarece - în funcție de răspuns - poate exista fie succes parțial (vei călărești, dar nu stând, ci în picioare), fie eșec, pentru că cobori din autobuz cu un sorbiu ușor.

Principalul traseu al siluetei- conectarea secvenţială a principalelor rute ale ramurilor care funcţionează alternativ. Astfel, DRAGON permite cititorului să vadă instantaneu traseul principal al oricărui algoritm, oricât de complex și ramificat, și, în plus, face ca deplasarea tuturor rutelor laterale față de cea „regală” să nu fie întâmplătoare, ci semnificativă și previzibilă, adică. usor de inteles.

ÎNTRECĂRI DE LINIE? - DOAMNE fereste!

Unii experți, predispuși la expresii dure, numesc diagramele tradiționale ale algoritmilor „diagrame de gunoi”, deoarece complexitățile blocurilor descrise pe ele, conectate printr-un haos de linii zdrențuite care merg peste tot, arată mai mult ca o grămadă de gunoi decât o structură obișnuită. DRAGON are avantajul de a fi model grafic are o justificare matematică și cognitiv-ergonomică strictă și este supus unor reguli stricte și atent gândite. Printre acestea, un loc special îl ocupă regula: „Intersecțiile și rupturile liniilor de legătură sunt interzise.”

Atunci când desenați diagrame bloc convenționale, sunt permise două tipuri de intersecție de linii: explicită, reprezentată printr-o cruce de linii, și deghizat, realizată folosind așa-numiții conectori. După cum știți, un conector „este folosit pentru a rupe o linie și a o continua în alt loc... pentru a evita intersecțiile inutile”.

În limbajul DRAGON, toate trucurile enumerate (intersecții, pauze, conectori) sunt considerate dăunătoare din motive ergonomice și sunt strict interzise, ​​deoarece împrăștie câmpul de desen cu detalii inutile, creează interferențe vizuale pentru ochi și distrag atenția de la lucrul principal. .

Întrucât interzicerea intersecției este o constrângere topologică serioasă, se pune întrebarea: poate fi reprezentat un algoritm arbitrar ca o diagramă dragon?

Teorema 1. Orice program structural poate fi descris în limbajul DRAGON în două moduri: sub forma unui primitiv și sub forma unei siluete.

Teorema 2. Un program arbitrar (nestructural) în unele cazuri nu poate fi descris sub forma unei primitive; cu toate acestea, cu ajutorul transformărilor echivalente care permit introducerea de variabile suplimentare (identificatori de ramuri), acesta poate fi întotdeauna înfățișat ca o siluetă.

Pentru a clarifica problema, să ne uităm la exemple. În fig. 13a prezintă un circuit dragon interzis: o primitivă în care există o intersecție inamovibilă (fără a introduce variabile suplimentare). În fig. 13b prezintă o siluetă, care, după cum puteți vedea cu ușurință, este echivalentă cu primitiva din Fig. 13a și, în același timp, nu conține o singură intersecție. Astfel, exemplul din fig. 13 confirmă validitatea teoremei 2 1.

SINTAXA VIZUALĂ ȘI TEXTUALĂ A DRAGONULUI

DRAGON - limbaj vizual, care utilizează două tipuri de elemente: forme grafice ( elemente grafice) și inscripții text situate în interior sau în exterior figuri grafice (elemente de text). În consecință, sintaxa DRAGON se descompune în două părți. Sintaxa vizuală acoperă alfabetul elementelor grafice, regulile de plasare a acestora în câmpul de desen și regulile de conectare a elementelor grafice folosind linii de legătură. Sintaxa textului specifică alfabetul simbolurilor, regulile de combinare a acestora și legarea la elementele grafice (legarea este necesară deoarece se folosesc diferite tipuri de expresii în interiorul diferitelor figuri grafice). operator de limbă DRAGON este un element de grafic sau o combinație de elemente de grafic luate împreună cu inscripții text.

Utilizarea simultană a graficii și textului sugerează că DRAGON se adresează nu numai gândirii verbale și logică a autorului și cititorului programului, ci activează în plus gândirea intuitivă, imaginativă, în emisfera dreaptă, stimulând-o cu un program nu scris, ci desenat. , adică un program -o imagine.

FAMILIA LIMBAJULUI DRAGON

DRAGON nu este o singură limbă, ci o întreagă familie, toate limbile ale cărora au aceeași sintaxă vizuală (ceea ce vizual face ca limbile familiei să fie aproape gemene) și diferă în sintaxa textului.

DRAGON-1- pseudo-limbaj vizual, un analog vizual al pseudo-codului textului obișnuit. Servește pentru a descrie structura activităților, crearea de tehnologii, algoritmi și proiecte de programe și este utilizat în metoda de detaliere pas cu pas, precum și în formalizarea cunoștințelor profesionale.

DRAGON-2- limbaj de programare vizuală în timp real. El este un element CAZ- tehnologii pentru dezvoltare software sisteme de control pentru rachete și obiecte spațiale, precum și centrale nucleare, uzine petrochimice și metalurgice, producție biotehnologică etc.

În plus, familia include limbaje hibride de programare vizuală: DRAGON-BASIC, DRAGON-PASCAL, DRAGON-S etc. Pentru a obține un limbaj hibrid, de exemplu, DRAGON-S, trebuie să luați sintaxa vizuală a lui DRAGON și să vă alăturați acesteia. conform anumitor reguli ale sintaxei textului SI.

Distincție strictă între vizual și sintaxa textului permite intrarea gradul maxim extinde domeniul de aplicare al limbii, asigurându-i flexibilitatea și versatilitatea. În același timp, uniformitatea regulilor de sintaxă vizuală ale familiei de limbi DRAKON asigură unitatea conceptuală a acestora, iar varietatea regulilor de text (adică capacitatea de a alege orice sintaxă a textului) determină flexibilitatea limbii și configurare ușoară pe diverse probleme și domenii.

Această carte se concentrează pe pseudo-limbajul vizual DRAGON-1. În ceea ce privește celelalte limbi ale familiei DRAKON, sunt oferite doar explicații scurte.

CONCLUZII

Iată un rezumat al regulilor ergonomice care pot îmbunătăți calitatea cognitivă a circuitelor dragon și pot face algoritmii, programele și tehnologiile mai ușor de înțeles.

  1. Un algoritm complex ar trebui desenat ca o siluetă, unul simplu - ca o primitivă.
  2. Este interzisă scrierea cuvântului „început” în pictograma „titlu”; în schimb, ar trebui să furnizați un nume clar și precis pentru algoritm.
  3. Împărțiți un algoritm complex în părți, reprezentând fiecare parte ca o ramură. Dați părților nume inteligibile și clare și scrieți-le în pictogramele „numele ramurilor”.
  4. Intrarea într-o sucursală este posibilă doar prin începutul acesteia.
  5. În pictograma „adresă” este permisă scrierea numelui uneia dintre ramuri; alte inscripții sunt interzise.
  6. Ramurile trebuie așezate în spațiu conform regulii: cu cât mai în dreapta, cu atât mai târziu. Prezența unui ciclu de ramificare modifică această regulă.
  7. Primivul trebuie să aibă o frigărui. Aceasta înseamnă că, pentru o primitivă, pictogramele „antet” și „sfârșit” se află întotdeauna pe aceeași verticală, care se numește „frigărui”.
  8. Fiecare ramură trebuie să aibă o frigărui. Pe ramura din dreapta, frigăruia este o verticală care conectează pictogramele „numele ramurului” și „sfârșitul”. Pentru alte ramuri, frigăruia este o linie verticală care leagă pictogramele „nume ramură” și „adresă”, iar dacă sunt mai multe adrese, cu cea din stânga.
  9. Algoritmul are întotdeauna un traseu principal, care trebuie să urmeze frigăruia.
  10. Traseele laterale trebuie ordonate de la stânga la dreapta conform unuia dintre criteriile selectate, de exemplu: cu cât mai la dreapta, cu atât mai rău.
  11. În pictograma „sfârșit” trebuie scris cuvântul „sfârșit”.
  12. Liniile de legătură pot merge orizontal sau vertical. Nu sunt permise linii înclinate.
  13. Trecerea liniilor este interzisă.
  14. Ruperele de linie sunt interzise.
  15. Utilizarea conectorilor este interzisă.

Dezvoltator de programe Tyshov Ghenadi Nikolaevici
Severodvinsk, a lucrat la OJSC SPO Arktika, www.spoarktika.ru.

Programul „IS Dragon” este destinat:
- algoritmizarea practică a activităților dvs.
- formularea sarcinilor dvs.,
- formalizarea cunoștințelor dumneavoastră.

Programul este un instrument:
- tehnici vizuale de gândire și comunicare,
- proiectarea vizuală a algoritmilor și programelor de activitate,
- programare vizuala,
- formarea bazelor de activitate algoritmică.

Programul „IS Dragon” (Integrated Environment Dragon) este un mediu pentru lucrul cu algoritmi Dragon.
Cu ajutorul IS Dragon, o cultură algoritmică este introdusă în multe tipuri de activități.

Descărcați programul „IS Dragon”.

Instrucțiuni pentru utilizator

    Utilizatorul poate salva fisier grafic Dragon-sheet sau Dragon-scheme. Prin deschiderea unui fișier grafic într-un editor grafic, puteți adăuga, de exemplu, atribute grafice ale organizației și puteți imprima o copie pe hârtie.

    Utilizatorul poate copia imaginea Dragon Sheet sau Dragon Scheme în tampon de sistem. O imagine din memoria tampon de sistem poate fi inserată în text editabil sau documente grafice. Imaginea poate fi copiată în clipboard de pe ecran cu elemente ale procesului de editare (cu evidențiere cursor grafic, pictograme puncte de intrare), aceasta vă permite să compilați manuale despre utilizarea Dragon IS și manuale pentru utilizatorii algoritmilor Dragon.

    Pe lângă o copie pe hârtie a algoritmului Dragon, utilizatorul poate primi fișier text cu informații însoțitoare din textele A-, B-, P-. Acest lucru creează posibilitatea publicării unor algoritmi Dragon complet funcționali.

    Utilizatorul poate specifica nume de fișiere sau o legătură de internet în textele algoritmilor Dragon. Când evidențiați un nume de fișier, puteți rula fișierul sau puteți deschide un fișier sau un link. Deschiderea se realizează folosind asocierea extensiilor de fișiere și aplicațiilor instalate pe computer. Dacă nu există nicio cale în numele fișierului, fișierul este selectat prin căutarea fișierului în folderul programului. În viitor, se plănuiește căutarea unui fișier și în subdosarul " DFiles" În viitor, se plănuiește să se poată plasa nume de fișiere și link-uri în „ » pentru a executa folosind o tastă rapidă fără evidențierea în text.

    Utilizatorul, folosind capacitatea de a specifica fișiere, creează un mediu informațional extern și contextual algoritmului, inclusiv spațiul Internet.

Instrucțiuni pentru programator

    Utilizatorul poate avea un fișier text cu șabloane de cod de program în limbajul de programare selectat și îl poate copia în fereastra de mesaje. Selectați un șablon în fereastra de mesaj și utilizați memoria tampon de sistem pentru a transfera textul șablonului în textele algoritmului.

    Utilizatorul poate seta utilizarea fișierului batch " Dragon.liliac» la asamblarea codului de program în fișiere de program într-un limbaj de programare. În acest caz, este generată și transferată o listă de fișiere de program fișier batch iar fișierul batch este lansat pentru execuție. Aceasta combină programarea cu traducerea și depanarea.

    Utilizatorul poate seta modul de asamblare a codului de program pentru a înlocui textul P lipsă din pictograme cu un comentariu cu textul „ ……Fără text" Acest lucru vă permite să blocați mesajele de eroare și să le difuzați către stadii incipiente dezvoltarea algoritmului.

    Utilizatorul poate seta modul de generare a codului de program pentru a activa codul de urmărire pentru executarea pictogramelor marcate.

    Utilizatorul poate genera textul de listare a algoritmului pentru foaia Dragon. Textul de listare a algoritmului va permite software comparați versiunile algoritmului, găsiți locurile de modificări.

    Utilizatorul poate seta proprietatea pentru schema Silhouette Maşină pentru a efectua programarea automată mașini cu stări finite prin tehnologie COMUTATOR. Oportunitatea a fost introdusă la propunerea S.D. Efanova.

    Se recomandă, pe lângă foile Dragon cu algoritmi și coduri de program, să creați și foile Dragon cu instrucțiuni de operare software pentru utilizatori. Instrucțiunile sunt transmise utilizatorilor împreună cu Dragon IS. Aceasta este practica de a lucra la IS Dragon de către A.A. Araptanov în sistemul 1C.

Programul are instrumente de personalizare pentru diferite limbaje de programare. Programul vă permite să asamblați scheme Dragon în coduri sursă ale programelor în limbi care au operatori: comentariu, etichetă, salt necondiționat (GOTO), salt după condiție; de exemplu, limbile din familiile 1C, Delphi, C Codul programului pictogramă este asamblat într-un fișier de către traducătorul intern de rută.

Screensaver al programului IS Dragon


Ce este frunza de dragon?


    Frunza de dragon este afișată în modul de programare.

    Punctele de introducere a textului (până la 4 pătrate) sunt textele A, B, S, P.

    Punctele A, B sunt destinate introducerii informațiilor însoțitoare, punctul P este pentru introducerea codului programului, punctul S este pentru vizualizarea codului programului colectat. Dacă există text, pătratul se întunecă.

    Mă cunoști? Sunt marcate locurile obligatorii pentru introducerea textului în pictograme.

Editarea unei diagrame dragon

Pictograma 3 este selectată pentru editare.
Semnul „?” pictogramele Adresă și Sucursală indică absența transferului de control. Transferul controlului este indicat vizual printr-o linie întreruptă.


Particularități

O caracteristică distinctivă a programului este gradul ridicat de automatizare a intrării grafice.

A doua caracteristică este că fiecare pictogramă are mai multe (până la 4) niveluri de introducere a textului. Unul dintre aceste niveluri este afișat pe „corpul” pictogramei, celălalt poate conține un fragment de cod de program. Nivelurile rămase (A-text, B-text, P-text, S-text) pot fi utilizate în mod arbitrar, de exemplu, conținând comentarii detaliate, link-uri și informații de sprijin.

Pentru a afișa procesele de afaceri, pictogramele sunt completate cu numele participanților la procesul de afaceri.

Toate textele afișate pot fi pe mai multe rânduri și mari.
Numărul maxim de linii dintr-o pictogramă este setat în setările programului în care este afișat întregul text editor de text pe filă.

Descrierea formatului DRT

Ghid pentru lucrul cu IS Dragon

Pentru a imprima, procedați astfel: salvați fișierul grafic, imprimați-l în PAINT. Există opțiuni de imprimare cu scalare și aspect pe mai multe coli A4, există setări pentru imprimare.

Lecții de la DRAGON

Pentru a stăpâni tehnicile de lucru cu programul Dragon IS, este util să vizionezi videoclipuri. Este afișat procesul de la prima lansare a editorului până la încărcarea firmware-ului rezultat în microprocesor.

Site-ul web suplimentar al programului IS Dragon

Opțiuni de text și fișiere ale planurilor de lecție Dragon

Schițe de Gennady Tyshov

Informațiile însoțitoare pot conține o indicație a documentelor legislative, organizatorice și administrative și pot conține fragmente de documente.

Disponibilitatea informațiilor însoțitoare este importantă pentru persoanele care lucrează cu algoritmi semnificativi din punct de vedere legal. Prezența informațiilor însoțitoare pentru icoană justifică originea și valabilitatea normei legale afișate în icoană. Prezența informațiilor însoțitoare determină relevanța algoritmului Dragon semnificativ din punct de vedere juridic.

Programul Dragon IS este dezvoltat pe baza limbajelor algoritmice vizuale Dragon și Gnome create de V.D. Paronjanov și standardul de stat GOST 19.701-90 (ISO 5807–85). Ideile și scopurile limbajului Dragon au fost dezvoltate pentru o utilizare practică și pe scară largă.

Cunoștințe procedurale, algoritm - descrie ordinea acțiunilor cu un obiect, afișată în diagramele Dragon de formă PrimitivŞi Siluetă.
Cunoașterea declarativă- răspunde la întrebarea: „Ce este asta?”, afișată în diagrama Dragon a formularului Pitic.

Crearea și editarea diagramelor Dragon se realizează în Dragon IS.

Algoritmi Dragon pe tablete
Unele probleme legate de utilizarea algoritmilor Dragon creați în Dragon IS sunt discutate pe forum în subiectul „Dragon IS și Android”.

IS Dragon funcționează în alte sisteme de operare
În sistemul de operare UNIX, funcționează cu programul Wine.
Pe MacOS funcționează cu Parallels Desktop.

Acțiunile la pictogramele 19 și 21 sunt efectuate de participanții la procesul de afaceri.
Frunza de dragon este afișată în modul de programare.
Punctele de introducere a textului (până la 4 pătrate) sunt textele A,B,S,P: A,B pentru introducerea informațiilor însoțitoare, P pentru introducerea codului programului, S pentru vizualizarea codului programului colectat. Dacă există text, pătratul este întunecat.
Foaia poate fi însoțită de anteturi și subsoluri: mijloc sus, stânga jos, mijloc jos, dreapta jos.
Semnul „?” marchează locurile necesare pentru introducerea textului în pictograme, locuri pentru introducerea pictogramelor într-un bloc de pictograme pentru a asigura funcționalitatea blocului.

Ai auzit ceva despre limbajul de programare DRAGON? Nu suntem. Dar cititorul nostru susține că DRAGON a fost deja inclus în programa cursurilor de informatică din liceu.

Ai auzit ceva despre limbajul de programare DRAGON? Nu suntem. Dar cititorul nostru susține că DRAGON a fost deja inclus în programa cursurilor de informatică din liceu. Ortografia și punctuația autorului au fost păstrate. - aprox. ed.

În 1976, în URSS, în cel mai strict secret, a început dezvoltarea navei spațiale de transport reutilizabile Buran, ca parte a proiectului Buran-Energia. A fost un proiect uriaș. La crearea sa au participat 86 de ministere și departamente și 1.286 de întreprinderi ale URSS (aproximativ 2,5 milioane de oameni în total).

Buran a făcut primul și singurul său zbor spațial pe 15 noiembrie 1988. Nava orbitală a fost lansată din Cosmodromul Baikonur folosind vehiculul de lansare Energia. După ce a zburat în jurul Pământului, Buran a aterizat pe aerodromul Yubileiny special echipat de la Baikonur. Zborul a avut loc fără echipaj, complet în interior modul automat. Spre deosebire de American Shuttle, care poate ateriza doar folosind controlul manual. Din cauza prăbușirii URSS și a dificultăților perioada de tranzitieîn 1990, lucrările la programul Energia-Buran au fost suspendate, iar în 1993 programul a fost definitiv închis.

Dezvoltarea limbajelor de programare pentru Buran

În timpul dezvoltării Buran, problema dezvoltării și testării software-ului a fost considerată una dintre cele mai dificile. Inițial s-a presupus că ar fi nevoie de câteva mii de programatori pentru a rezolva problema. Trebuie avut în vedere faptul că programatorii noștri sunt obișnuiți să scrie programe în limbaj de asamblare, deoarece cantitatea de memorie computer de bord„Biser-4” era foarte limitat la acea vreme.

În materiale ale Institutului de Matematică Aplicată care poartă numele. M.V. Keldysh RAS vorbește despre dificultățile și realizările acelei perioade după cum urmează:

„În 1983, dezvoltatorii navei spațiale Buran s-au adresat Institutului [de Matematică Aplicată] cu o solicitare de a ajuta la dezvoltarea software-ului și a software-ului la bord pentru testarea la sol a navei. Potrivit estimărilor lor, pentru aceasta au fost necesari câteva mii de programatori. După studierea problemei, s-a decis să se dezvolte limbaje orientate către probleme, bazate pe termenii, conceptele și forma de prezentare a algoritmilor de control și testare utilizate de dezvoltatorii navei implicați înșiși dezvoltatorii navei - autorii algoritmilor de control și testare - în crearea software-ului de bord și de testare Institutul de Matematică Aplicată, într-un timp extrem de scurt, a creat un limbaj specializat în timp real PROL2 și un sistem de automatizare a programării și depanării SAPO PROL2 pe baza acestuia... Pentru a dezvolta software pentru testarea la sol a navei, o problemă -orientat limbajul DIPOL și a fost creat un sistem de automatizare de programare și depanare bazat pe acesta"...

Astfel, pentru a rezolva problema lipsei de programatori la crearea Buranului, la cererea noastră, Institutul de Matematică Aplicată al Academiei Ruse de Științe a creat două limbi în limba rusă:

  • Limbajul PROL2 în timp real pentru dezvoltarea la bord programe cuprinzătoare(autor Viktor Kryukov)
  • limbaj orientat spre probleme pentru dezvoltarea programelor de testare la sol DIPOL (autor Vladimir Lutsikovici)

În plus, limbajul LAX pentru modelare a fost dezvoltat la Centrul Pilyugin sub conducerea lui Konstantin Fedorov. Astfel, au apărut trei limbi noi: PROL2, DIPOL și LAX.

Limba DRAGON s-a născut într-un leagăn cosmic

Deși limbile și-au rezolvat cu succes problemele, a devenit clar că specializarea îngustă a limbilor împiedica procesul. Această idee a fost exprimată în 1986 de șeful departamentului complex, Yuri Trunov (mai târziu designer general și director general al Centrului Pilyugin). Trunov l-a convocat pe șeful laboratorului de dezvoltare integrată sistem de calcul Buran Vladimir Paronjanov și l-a instruit să creeze un limbaj universal care să le înlocuiască pe cele trei de mai sus. Cu toate acestea, Paronjanov a decis să pună problema altfel. El credea asta limbă nouă trebuie nu numai să satisfacă nevoile practice ale tehnologiei spațiale, ci și să rezolve o gamă extrem de largă de probleme care depășesc cu mult sfera programării tradiționale.

În acest sens, la crearea limbajului DRAGON, au fost prezentate cerințe umanitare neobișnuite pentru programatori, matematicieni și „tehnicieni”.

1. Îmbunătățiți funcționarea minții umane.
2. Oferi mijloace eficiente pentru a descrie structura activității umane.
3. Pentru a oferi unei persoane instrumente lingvistice care simplifică dramatic percepția problemelor de procedură complexe și comunicarea cu colegii, face de neînțeles de înțeles și, din acest motiv, forțează literalmente o persoană să gândească clar, profund și productiv. În aceste condiții, probabilitatea de concepții greșite, calcule greșite și greșeli scade inevitabil, iar productivitatea crește.
4. Facilitarea radicală a comunicării intersectoriale și interdisciplinare între reprezentanții diferitelor organizații, departamente, departamente, laboratoare, școli științifice și profesii.
5. Eliminați sau reduceți barierele de neînțelegere reciprocă între lucrătorii de diferite specialități (medici și fizicieni, matematicieni și designeri, biologi și economiști etc.), precum și programatori și cei care sunt alergici la orice programare.
6. Obține o îmbunătățire radicală a calității software-ului conform criteriului „înțelegerii algoritmilor și programelor”.

Dezvoltarea limbajului DRAGON și a software-ului acestuia

Dezvoltarea unui nou limbaj și sistem de programare a început în 1986. După 11 ani, pe baza DRAGON a fost construită o tehnologie automată de proiectare a algoritmilor și programelor (tehnologia CASE) numită „GRAFIT-FLOX”.

Toate lucrările au fost finalizate până în 1996. Apoi au intrat în funcțiune limbajul DRAGON și sistemul GRAPHITE-FLOX. Cu ajutorul lor, au fost dezvoltați algoritmi și programe pentru modulul de pre-accelerare al navelor spațiale din proiectul International Sea Launch. ÎN total A fost nevoie de trei ani pentru a dezvolta și testa software-ul și alte elemente ale sistemului de control. Până în 1999, toate lucrările au fost finalizate. Sistemul era gata de pornire.

Prima lansare a sistemului de rachete Sea Launch a avut loc pe 28 martie 1999. S-a întâmplat la ora 5. 30 min. Ora Moscovei (27 martie 1999 la 18:30, ora Pacificului) de pe platforma de lansare Odyssey din Oceanul Pacific, lângă Insulele Kiribati.

Această lansare a fost un botez de foc pentru limbajul DRAGON și pentru tehnologia de creare a programelor Graphite-Phlox. El le-a demonstrat în mod convingător eficacitatea și fiabilitatea. De atunci, 29 de lansări de rachete au fost efectuate în cadrul programului Sea Launch. Ultima lansare a avut loc pe 24 septembrie 2008. Limbajul DRAKON este folosit cu succes în multe alte programe spațiale:

  • Etapa superioară a navei spațiale Fregat;
  • vehicul de lansare Proton-M modernizat;
  • modul de pre-accelerare pentru nava spațială DM-SL-B (proiect „Start in the Desert”, sau „Land Launch”) etc.

Deoarece rezultatele utilizării Dragon au fost constant ridicate, conducerea Centrului Pilyugin a decis să folosească tehnologia Dragon în toate proiectele ulterioare.

Programare fără programatori

DRAGON - foarte limbaj usor. Atât de ușor încât dezvoltarea multor programe de calculator pentru rachete spațiale este în practică realizată nu de programatori, ci de ingineri - conform principiului „programare fără programatori”. Motivul abandonului programatorilor este simplu. Atunci când rezolvă probleme aplicate practice, inginerii au o cunoaștere aprofundată a materialului și sunt bine conștienți de formularea problemei. Spre deosebire de ei, programatorii nu cunosc „fizica procesului” și devin „ persoane suplimentare„, de care în unele cazuri (deși nu întotdeauna) se poate renunța complet.

Acest lucru vă permite să reduceți semnificativ costurile, să îmbunătățiți raportul cost-rezultat și să accelerați progresul lucrărilor. Și scăpați complet de erorile de „telefon spart” cauzate de neînțelegerea reciprocă între programatori și ingineri.

Secretele dezvoltărilor spațiale - pentru economia națională

DRAGON este universal. Poate fi folosit pentru reprezentarea vizuală și dezvoltarea rapidă a algoritmilor nu numai în „spațiu”, ci și în tipurile „terestre” de activitate umană. Utilitatea practică a DRAGON a fost foarte apreciată. Se poate presupune că limba DRAGON se va răspândi cel mai mult diverse zone, inclusiv în sistemul de învățământ. La un moment dat, Niklaus Wirth, autorul limbajului Pascal, credea că Pascal ar trebui să fie primul limbaj cu care să înceapă să învețe programarea. Acest punct de vedere a devenit aproape universal acceptat.

La acea vreme, programele erau scrise sub formă de text. Pentru programarea textului, Pascal a fost într-adevăr cel mai bun limbaj de învățare.

Cu toate acestea, astăzi situația s-a schimbat. Viitorul aparține limbajelor ergonomice. În aceste condiții, bunicul Pascal și-a pierdut gloria de odinioară ca excelent instrument educațional.

Astăzi acest rol este transferat limbajului vizual DRAGON. DRAGON este cel mai simplu, mai ușor, mai convenabil și armonios limbaj logic cu care să începeți studiul algoritmizării și programarii.

Dragon în sistemul de învățământ

În 1996, Comitetul de Stat pentru studii superioare Federația Rusă a inclus studiul limbii DRAKON în programul de curs de informatică al liceului. Acest fapt este reflectat în documentul Comitetului de Stat pentru Instituții de Învățământ Superior intitulat:

În prezent, se pregătesc cărți educaționale pentru școlile gimnaziale și superioare. Primul dintre ele a fost deja publicat - un ajutor didactic de joc pentru copiii de vârstă de școală secundară.

Limbă DRAGON- un instrument intelectual accesibil publicului de tip nou, special conceput pentru a facilita și îmbunătăți munca minții lucrătorilor intelectuali și studenților, util în special în rezolvarea problemelor dificile și extrem de dificile de sistematizare și autoformalizare a cunoștințelor profesionale, descriind structura; a activității umane și multe alte sarcini care vor fi discutate în continuare.

Diferenţă DRAGON ci faptul că nu este un limbaj textual, ci vizual (grafic). Figurat vorbind, el deschide calea cea mai scurtă către obiectiv, explodând pietre și obstacole logico-matematice, algoritmice și tehnologice cu dinamita imaginilor vizuale. Datorită acestor tehnici și altor tehnici, multe (deși, desigur, nu toate) problemele complexe se transformă în unele simple, iar neînțelesul devine de înțeles. Ca urmare, se obține câștigul dorit: productivitatea crește, calitatea se îmbunătățește, munca dificilă devine mai ușoară și mai plăcută, suprasolicitarea mentală scade brusc, coborând cu mult sub linia periculoasă.

Limbă DRAGON dezvoltat în comun de Agenția Spațială Rusă (NPC de Automatizare și Instrumentare, Moscova) și Academia Rusă de Științe (Institutul M.V. Keldysh de Matematică Aplicată, Moscova) ca o generalizare a experienței în crearea navei spațiale Buran. La baza DRAGONși a fost construită tehnologia de proiectare automată sisteme software(tehnologia CASE) numită „ GRAFIT-FLOX". Este folosit cu succes într-o serie de proiecte spațiale mari: " Lansare pe mare", "Fregată", "Proton-M"etc.

DRAGON- limbaj foarte usor. Atât de ușor încât dezvoltarea multor programe de calculator pentru rachete spațiale în practică este realizată nu de programatori, ci de specialiști obișnuiți - conform principiului „programare fără programatori”. Motivul abandonului programatorilor este simplu. Atunci când rezolvă probleme practice aplicate, specialiștii au o cunoaștere aprofundată a materialului și sunt bine conștienți de formularea problemei. În schimb, programatorii nu cunosc „fizica procesului” și devin „oameni suplimentari” de care se poate dispensa complet. Acest lucru vă permite să reduceți semnificativ costurile, să îmbunătățiți raportul cost-rezultat, să accelerați progresul lucrărilor și să scăpați complet de erorile de „telefon spart” cauzate de neînțelegerea reciprocă dintre PROGRAMĂTORI și SPECIALISȚI.

DRAGON universal. Poate fi folosit pentru reprezentarea vizuală și dezvoltarea rapidă a algoritmilor nu numai în „spațiu”, ci și în tipurile „terestre” de activitate umană. Utilitate practică DRAGONși a primit mari laude. Ministerul Educației a inclus învățarea limbilor străine DRAGONîn programul de studii superioare de informatică (vezi: Exemplu de program al disciplinei „Informatică”. Publicație oficială. - M.: Goskomvuz, 1996. P. 3, 4, 15, 16).

editor DRAGON

TRÂNTOR

V.D. Paronjanov în cartea sa „Cum să îmbunătățești munca minții” indică posibilitatea de a difuza DRAGON-scheme direct în codul programului într-un limbaj de nivel înalt. În acest caz, construcțiile de control ale limbii țintă sunt complet aruncate și înlocuite cu construcțiile limbii DRAGON. Aceasta produce o nouă limbă care este un subset al limbii țintă. Așa sunt menționate limbile DRAGON-Marea, DRAGON-Pascal.

Pe 8 aprilie 2008, Alexander Ilyin a propus numele la forum TRÂNTOR Pentru limbaj posibil DRAGON-Oberon.

D2O (Oxid de Deuteriu) - DRONE => Translator Oberon activ.

După stabilirea obiectivului de implementare a limbajului TRÂNTOR I-am scris o scrisoare lui Gennady Tyshov în care i-am cerut să deschidă formatul DRAGON-scheme utilizate în editorul său. Ca răspuns, mi-a trimis întregul cod sursă :)

Pentru început, am decis să creez DRAGON- un circuit care ar putea fi tradus complet într-un modul pornit Oberon activ.

Și foarte repede m-am convins că cu un design adecvat DRAGON-schema, sarcina devine destul de fezabilă.

Principalele caracteristici ale „designului”, desigur, se referă la partea declarativă, care este absentă DRAGON e.

La început, a trebuit să „adaptăm” blocul „comentar” pentru partea declarativă, separând secțiunile corespunzătoare, de fapt: comentarii, importuri, constante, tipuri și variabile. apartenența unei anumite secțiuni este determinată de primul element citit din bloc, respectiv (* , IMPORT, CONST, TIPŞi VAR.



Cert este că conținutul unor secțiuni va fi necesar nu numai ca informații de referință, dar ar trebui să fie disponibile și pentru modificare în etapa de generare a codului.

Poate că o soluție mai bună este formatarea părții declarative în formă tabelară.

ÎN TIP Secțiunea conține declarații de tipuri și declarații „fatice” de obiecte (fără metode și corpuri).

Fiecare diagramă individuală este tratată ca echivalentul unei proceduri în limbaj Oberon. În același timp, în raport cu limbajul Oberon corpurile și obiectele modulelor pot fi considerate și proceduri (după cuvântul ÎNCEPE), și este, de asemenea, necesar să distingem cumva procedurile modulului de procedurile-metode obiect.

S-a decis:

  • Corpul modulului trebuie proiectat sub forma unei diagrame, al cărei titlu include cuvântul ÎNCEPE
  • Prefixați anteturile de schemă legate de metodele obiectului cu numele acestor obiecte. aceste. Obiect.Proc1, Object.BEGIN. După cum puteți vedea, nici corpul obiectului nu a fost uitat
  • Toate celelalte diagrame corespund procedurilor modulului

Iată diagrama:



Topologia circuitelor este limitată de fluxul de control strict de sus în jos și de la stânga la dreapta. Și ca excepție, organizate în mod natural, cicluri simple. În opinia mea, puterea schemei „siluetă” reduce această limitare la nimic.

Rezultatul este o aplicație de consolă care vă permite să difuzați DRAGON-schema (de fapt, o diagramă în limbaj TRÂNTOR) într-un modul în limbaj Oberon activ.

TRÂNTOR-traducatorul are un nume modest D2O aceste. Oxid de deuteriu sau apă grea în rusă :)

TRÂNTOR-traducător și circuite de testare în limbă TRÂNTOR sunt atașate.

La 13 iulie 2008, Gennady Tyshov a publicat o versiune mai recentă a editorului, dar circuitele de testare sunt atașate la versiunea curentă D2O au un format incompatibil. Versiunea editorului prezentată aici pe site este garantată să vă permită deschiderea și editarea diagramelor atașate. Problemele de compatibilitate inversă a formatelor sau descoperirea unui nou format sunt în prezent discutate cu autorul editorului.

Algoritmi fără programatori - este foarte simplu!

PENTRU ABORDAREA UNUI LIMBA NOU

În unele secțiuni ale cărții mele am depășit teoriile în care îmi pot revendica proprietatea.
orice cunoștințe profesionale. Îi rog pe cei ale căror pământuri protejate le-am invadat să-mi ierte nesăbuința mea. Și dacă trofeele individuale despre care scriu există doar în imaginația mea, atunci cel puțin un astfel de braconaj nu dăunează proprietarilor de drept, în timp ce un străin întâmplător poate vedea uneori ceva care este atât neașteptat, cât și real.

George Paget Thomson

DE CE ESTE NEVOIE DE LIMBA DRAGON?

DRAGON este un limbaj algoritmic care are o proprietate neobișnuită: în același timp este un limbaj pentru descrierea structurii activității, un limbaj de înțelegere și înțelegere reciprocă și un limbaj pentru dezvoltarea inteligenței. Ca limbaj de programare, satisface cerințele de rigoare matematică, permițând text sursă obține fără ambiguitate codul obiect (codul mașină pentru un computer). Dar nu acesta este punctul principal. La crearea DRAGON, atenția principală a fost acordată factorului uman, îmbunătățirea vizibilității și inteligibilității proiectelor și tehnologiilor tehnice și sociale, îmbunătățirea caracteristicilor ergonomice ale algoritmilor, pentru ca nu în cuvinte, ci în fapte să transforme DRAGON într-un limbaj pentru îmbunătățirea funcționării minții, un limbaj de înțelegere și înțelegere reciprocă.

Deși DRAGON arată foarte asemănător cu diagramele obișnuite de algoritmi și programe, de fapt este o dezvoltare originală. Cel mai apropiat analog funcțional al DRAGON ar trebui să fie considerat diagrame de acțiune și diagrame de activități.

Pentru cititorii meticuloși care iubesc detaliile, „rudele” mai îndepărtate pot fi numite și analogi ai DRAGON - într-o măsură sau alta. Acestea includ: diagrame Nessie-Shneiderman, diagrame HOS, diagrame greenprint, diagrame NEC SPD, diagrame Hitachi PAD, arbori de decizie și tabele, scheme de descompunere, diagrame de dependență, limbaj SDL și derivatele sale, sistemul BLS, creat de A. Smolyaninov din St. Universitatea Electrotehnică din Petersburg, schema R de I. Velbitsky, schema de V. Prokhorov etc.

CARE ESTE SECRETUL DRAGOULUI? — ÎN O ABORDARE COGNITIVĂ

Cu toate acestea, comparația cu analogii în acest caz este neproductivă, deoarece nu ne permite să dezvăluim cea mai semnificativă caracteristică a DRAGON, care se numește „abordare cognitivă”. Termenul „cognitiv” (cognitiv) nu s-a răspândit încă în rândul designerilor, dezvoltatorilor, inginerilor și programatorilor, dar este parola secretă a unei noi ordini științifice puternice sau, mai degrabă, stindardul a două noi direcții în dezvoltare rapidă în psihologie și știința inteligenței, cunoscută ca psihologie cognitivă și știință cognitivă.

Unul dintre scopurile acestor discipline este identificarea rezervelor ascunse ale creierului uman și creșterea productivității creative a lucrătorilor intelectuali.
Esența întrebării este următoarea. Dezvoltatorii de proiecte tehnice și sociale, lucrătorii intelectuali sunt oameni vii cu un creier, ale căror capacități, deși mari, sunt totuși departe de a fi nelimitate. Astfel, problema de proiectare nu este doar una tehnică, ci și o problemă umană, cognitivă, adică cognitivă.

În această carte, factorul cognitiv se referă la aspectele cognitive, intelectuale, de gândire, creative ale activităților oamenilor de știință, specialiștilor și studenților. Cu cât obiectul designului tehnic și social este mai complex, cu atât este mai important să se sublinieze necesitatea de a lua în considerare cu atenție caracteristicile cognitive ale activităților oamenilor. Academicianul P. Simonov subliniază: pentru dezvoltatorii de sisteme, „este extrem de important să cunoaștem regulile, după care creierul viu percepe, procesează, înregistrează și folosește informațiile nou dobândite. Informațiile despre astfel de reguli identificate în experiment sunt furnizate de psihologia cognitivă.”
Utilizarea acestor reguli vă permite să obțineți un rezultat practic - creșteți productivitatea muncii mentale.

DE CE NU SE INTERESĂ OAMENII DE PROPRIUL CREIER?

În ultimele două decenii, cercetările neurobiologice și psihologice au oferit perspective noi și extrem de importante asupra funcționării creierului. Ele deschid calea către transformări revoluționare ale muncii intelectuale, creând premisele unei creșteri radicale a productivității creative generatoare de cunoștințe. De fapt, suntem în pragul unei reforme strategice a muncii intelectuale, promițând includerea unor noi rezerve puternice ale creierului și intelectului uman în munca creativă. Dar aceste rezultate, din cauza barierelor interdisciplinare cunoscute, nu au devenit încă proprietatea designerilor, inginerilor și programatorilor care dezvoltă sisteme tehnice și sociale complexe. Ca urmare, s-a creat o situație paradoxală. Să explicăm situația cu un exemplu.

Programarea este realizată de oameni cu creier. Cu toate acestea, până acum, limbajele de programare, metodele și teoriile au fost construite fără a ține cont de designul creierului. Este imposibil să maximizezi productivitatea creativă a creierului programatorilor fără a lua în considerare designul acestuia. Prin urmare, modalitățile tradiționale de a crea limbaje de programare și tehnologii care ignoră designul creierului sunt depășite și ineficiente.

Se pare că această concluzie este valabilă și în alte cazuri. Ignorarea tiparelor de funcționare a creierului și atenția insuficientă la problemele cognitive duce la consecințe neplăcute: neînțelegere reciprocă între coautorii unor proiecte complexe, concepții greșite grave în cunoștințele științifice, greșeli de calcul științifice și tehnice majore, a căror eliminare necesită costuri materiale semnificative (asociate cu modificări costisitoare de proiectare și modificări ale software-ului care necesită forță de muncă), precum și la o scădere vizibilă a productivității muncii care rezultă a dezvoltatorilor și a altor participanți la proiecte tehnice și sociale.

Știința factorilor umani se numește ergonomie. probleme cognitive - parte importantă ergonomie. Pentru a izola grupul cognitiv de alte probleme ergonomice, uneori sunt folosiți termenii „ergonomie cognitivă” și „probleme cognitiv-ergonomice”.

VA DEVENI DRAGON CAMPIONUL MONDIAL LA CRITERIUL „INTELEGEREA ALGORITMLOR”?

Această carte este de natură pur practică. Mai jos se va arăta că abordarea cognitivă este o metodă de lucru care produce rezultate utile: îmbunătățirea înțelegerii algoritmilor și programelor, proiectelor și tehnologiilor, creșterea productivității muncii intelectuale complexe. Vom încerca să fundamentăm această teză prin dezvăluirea treptat a trăsăturilor limbajului DRAGON.

Ca toate celelalte limbi, DRAGON se bazează pe matematică și logică. Cu toate acestea, dincolo de asta, ia în considerare problemele cognitive cu cea mai mare atenție. Datorită utilizării sistematice a metodelor cognitiv-ergonomice, DRAGON a dobândit caracteristici ergonomice unice. Se poate presupune că în viitor DRAGON va putea revendica titlul de campion la criteriul „înțelegerii algoritmilor și programelor” (în clasa limbajelor imperative).

DRAGON poate fi definit ca un limbaj vizual accesibil publicului conceput pentru a descrie structura activităților, pentru sistematizarea, structurarea, reprezentarea vizuală și formalizarea cunoștințelor imperative, precum și pentru proiectare, programare, modelare și instruire. Acesta este un limbaj universal intersectorial al lumii afacerilor, folosit pentru a descrie sarcini științifice, tehnice, medicale, biologice, economice, sociale, educaționale și alte sarcini. DRAGON vă permite să organizați și să prezentați o soluție la orice problemă, oricât de complexă, imperativă (procedurală, bazată pe activitate, tehnologică, de rețetă, algoritmică) sub formă de desene vizuale realizate conform principiului „ M-am uitat si am inteles imediat!”.

Umanitatea limbajului DRAGON, dorința de a crea confort maxim pentru funcționarea creierului uman, orice preocupare posibilă pentru creșterea productivității creative a personalului ne permite să sperăm că DRAGON va primi cea mai largă aplicație în economia națională, afaceri, apărare, știință și sistemul de învățământ. Folosind nu doar forme vizuale, ci și extrem de vizuale de reprezentare a cunoștințelor, facilitând activitatea creierului, DRAGON oferă o creștere vizibilă a productivității muncii intelectuale.
Limbajul DRAKON se bazează pe ideea formalizării cognitive a cunoștințelor, ceea ce face posibilă combinarea rigoarei formalizării logico-matematice cu luarea în considerare precisă a caracteristicilor cognitive (cognitive) ale unei persoane. Ca urmare, a fost posibilă simplificarea și facilitarea radicală a procedurii de descriere a structurii activităților, formalizarea cunoștințelor profesionale ale specialiștilor, standardizarea acesteia și făcând-o adecvată pentru masă. utilizare practică. Acest lucru se aplică în mod egal atât activităților intelectuale computerizate, cât și „non-computer” ale oamenilor.

Astfel, scopul principal al creării limbajului DRAKON este de a oferi un salt calitativ în creșterea productivității muncii intelectuale complexe prin creșterea productivității intelectuale a creierului uman, identificarea și nu numai utilizare deplină rezerve de inteligență umană, creând premise cognitive pentru creșterea semnificativă a eficienței tehnologiei informației.

CUI ESTE CONCEPȚAT LIMBAJUL DRAGONULUI?

Limba este concepută în mod egal pentru patru categorii de persoane:
- pentru persoanele care sunt complet nefamiliare (sau slab familiarizate) cu programarea și tehnologia calculatoarelor: mecanici, electricieni, ingineri complexi, ingineri de instrumente, testeri, fizicieni, chimiști, geologi, biologi, medici, agronomi, economiști, avocați, psihologi etc. ;
- pentru programatori profesioniști, matematicieni și dezvoltatori tehnologie informatică, inclusiv specialiști în sisteme de operare, sistemic și programarea aplicatiilor, precum și microprogramare (pentru computere personale, universale, de control și de bord);
- pentru școlari și elevi;
- pentru managerii de la multe niveluri care doresc timp minim transmite ideea probleme complexe.

LISTA SARCINILOR REZOLVATE FOLOSIND LIMBAJUL DRAGON

Limbajul DRAGON poate fi folosit pentru a rezolva următoarele probleme:

Descrierea structurii activității umane;
- reprezentarea vizuală a cunoștințelor imperative în orice domenii ale economiei naționale, științei și educației;
- descrierea soluţiilor conceptuale şi a modelelor imperative;
- proiectarea algoritmilor si programelor;
- dezvoltarea de algoritmi si programe;
- proiectarea proceselor tehnologice;
- descrierea oricăror tehnologii (industriale, agricole, medicale, pedagogice, manageriale etc.);
- descrierea procesului de proiectare;
- descrierea proceselor de functionare sisteme discreteși dispozitive, inclusiv sisteme inteligente;
- descrierea datelor inițiale pentru dezvoltarea sistemelor de proiectare asistată de calculator și a sistemelor de automatizare pentru cercetarea științifică;
- descrierea procesului de rezolvare a problemelor matematice;
- descrierea dialogului și interacțiunii dintre operatorul uman și mașină (panoul de control);
- descrierea procesului de testare și depanare;
- rezolvarea problemelor de diagnostic în orice domeniu;
- dezvoltarea microprogramelor;
- descrierea procesului de funcționare a organizațiilor și întreprinderilor;
- formalizarea automată a cunoștințelor profesionale ale oamenilor de știință, proiectanților, matematicienilor, medicilor, avocaților, agronomilor, psihologilor, operatorilor etc.;
- rezolvarea problemelor educaționale: predarea abilităților de algoritmizare, programare și formalizare automată a cunoștințelor într-un timp extrem de scurt.

După cum sa menționat deja, analogul funcțional al DRAGON este modelele de acțiune și tiparele de activitate. DRAGON este capabil să îndeplinească toate funcțiile acestuia din urmă (reversul nu este adevărat). Prin urmare, lista poate fi continuată prin includerea sarcinilor rezolvate prin scheme de acțiune. Acest lucru ne va permite să descriem unele dintre funcțiile DRAGONului folosind termeni caracteristici literaturii americane:

Privire de ansamblu strategică a funcțiilor corporative;
- descrierea relaţiilor logice dintre procese;
- descrierea structurii generale a programului;
- descrierea detaliată a logicii programului;
- descompunerea completă a programelor (descompunere finală), pornind de la logica la scară largă și terminând cu detaliile codului, care este la fel de utilă atât în ​​proiectarea de sus în jos, cât și în proiectarea de jos în sus;
- proiectarea programului până în ultimul moment poate fi realizată indiferent de limbă și numai în ultima etapa se realizează trecerea la limba dorită;
- instruirea utilizatorilor finali, încurajându-i să analizeze și să proiecteze logica detaliată a procesului;
- descrierea procedurilor de management organizațional;
- descrierea metodologiilor informatice;
- descrierea metodologiilor tehnologia de informație(metodologii de inginerie informațională).

După cum se poate observa din această listă, DRAGON are proprietatea versatilității, dovedindu-se util în rezolvarea unei game largi de probleme diverse. Datorită acestui lucru, DRAGON îndeplinește funcția limbaj universal comunicare în afaceri și înțelegere reciprocă pentru specialiști de diverse specialități. În plus, DRAGON facilitează semnificativ procesul de formalizare a cunoștințelor, deschizând noi oportunități pentru creșterea nivelului de automatizare în proiectare și operare obiecte complexe.

CONCLUZII

1. Scopuri și metode tradiționale de creație limbaje artificiale, în special limbajele de programare, ar trebui considerate în mare parte învechite.

2. Cercetările recente în domeniile neuroștiinței, psihologiei, științelor cognitive și ergonomiei au oferit informații noi și extrem de valoroase despre funcționarea creierului, care pot și ar trebui folosite în dezvoltarea unei noi generații de limbaje pentru a crește productivitatea creierului uman.

3. În prezent, nu există o strategie bine gândită care să vizeze eliminarea barierelor interdisciplinare, cu scopul de a echipa dezvoltatorii de limbaje artificiale din noua generație cu cunoștințe profunde în domeniul științelor umane, factor umanși inteligența umană. Această deficiență trebuie eliminată cât mai curând posibil.

4. Conceptul de limbi artificiale de nouă generație se bazează pe o abordare interdisciplinară și schimbă radical ideile tradiționale despre scopul limbilor artificiale și setul de cerințe prioritare pentru acestea. Problemele și cererile umanitare sunt puse în prim-plan, care trebuie detaliate în mod corespunzător.