Dragon programlama dili. Ok döngüsü. Dragon Dili ve Uygarlığın Temel Sorunları

  • 23.06.2019

Program geliştiricisi Tyshov Gennady Nikolaevich
Severodvinsk, OAO SPO Arktika, www.spoarktika.ru'da çalıştı.

IS Dragon programı şunlara yöneliktir:
- faaliyetlerinizin pratik algoritması,
- görevlerinizi formüle etmek,
- bilginizin resmileştirilmesi.

Program bir araçtır:
- görsel düşünme ve iletişim tekniği,
- aktivite algoritmalarının ve programlarının görsel tasarımı,
- görsel programlama,
- algoritmik aktivite temellerinin oluşumu.

"IS Dragon" (Entegre Ortam Dragon) programı, Dragon algoritmalarıyla çalışmak için bir ortamdır.
IS Dragon'un yardımıyla birçok aktiviteye algoritmik bir kültür katılıyor.

"IS Dragon" programını indirin

Kullanıcı talimatları

    Kullanıcı Dragon Leaf veya Dragon Schematic'in grafik dosyasını kaydedebilir. Bir grafik düzenleyicide bir grafik dosyası açarak, örneğin kuruluşun grafik özelliklerini ekleyebilir, bir basılı kopya yazdırabilirsiniz.

    Kullanıcı Dragon Leaf veya Dragon Schematic görüntüsünü sistem panosuna kopyalayabilir. Sistem arabelleğinden bir görüntü, düzenlenebilir metin veya grafik belgelerine yapıştırılabilir. Görüntü, düzenleme sürecinin öğeleriyle (bir grafik imleç, simge giriş noktalarının seçilmesiyle) ekrandan panoya kopyalanabilir, bu, IS Dragon kullanımı için kılavuzlar ve Dragon algoritmaları kullanıcıları için kılavuzlar oluşturmanıza olanak tanır. .

    Kullanıcı, Dragon algoritmasının basılı kopyasına ek olarak, A-, B-, P-metinlerinden eşlik eden bilgiler içeren bir metin dosyası alabilir. Bu, tam özellikli Dragon algoritmalarının yayınlanması olasılığını yaratır.

    Kullanıcı, Dragon Algoritmalarının metinlerinde dosya adları veya bir İnternet bağlantısı belirtebilir. Dosya adını vurguladığınızda, dosyayı yürütmek için çalıştırabilir veya dosyayı veya bağlantıyı açabilirsiniz. Açma, bilgisayarda yüklü olan dosya uzantıları ve uygulamaların ilişkilendirilmesi kullanılarak gerçekleştirilir. Dosya adında konum yolu yoksa, program klasöründe dosya aranarak dosya seçilir. Gelecekte, dosyanın alt klasörde de aranması planlanıyor " DDosyalar". İlerleyen zamanlarda parantez içinde dosya isimleri ve linklerin yerleştirilebilmesi öngörülmektedir. » metinde vurgulamadan kısayol tuşuyla yürütmek için.

    Kullanıcı, dosyaları belirleme yeteneğini kullanarak, algoritma için İnternet alanı da dahil olmak üzere harici ve bağlamsal bir bilgi ortamı yaratır.

Programcı için talimatlar

    Kullanıcı, seçilen programlama dilinde program kodu şablonları içeren bir metin dosyasına sahip olabilir, bunu mesaj penceresine kopyalayabilir. Mesaj penceresinde bir şablon seçin ve şablon metnini algoritmanın metinlerine aktarmak için sistem arabelleğini kullanın.

    Kullanıcı toplu iş dosyasının kullanımını ayarlayabilir " ejderha.bat» program kodunu bir programlama dilinde program dosyalarına monte ederken. Bu durumda, program dosyalarının bir listesi oluşturulur, bir toplu iş dosyasına aktarılır ve toplu iş dosyası yürütülmek üzere başlatılır. Bu, çeviri ve hata ayıklama ile programlamanın bir kombinasyonunu sağlar.

    Kullanıcı, simgelerde eksik olan R-metnini "" metniyle bir yorumla değiştirerek program kodunun oluşturma modunu ayarlayabilir. ……Yazı yok". Bu, hata mesajlarını engellemenize ve algoritma geliştirmenin ilk aşamalarında çeviri yapmanıza olanak tanır.

    Kullanıcı, işaretli simgelerin yürütme izleme kodunun dahil edilmesiyle program kodu oluşturma modunu ayarlayabilir.

    Kullanıcı, Dragon listesi için algoritma listesinin metnini oluşturabilir. Algoritma listesinin metni, algoritmanın sürümlerini programlı olarak karşılaştırmanıza, değişiklik yerlerini bulmanıza olanak tanır.

    Kullanıcı, Silhouette şeması için özelliği ayarlayabilir makine teknolojiye göre sonlu otomatların otomatik programlanmasını gerçekleştirmek DEĞİŞTİRMEK. Olasılık, S.D.'nin önerisiyle tanıtıldı. Efanova.

    Algoritmalar ve program kodları içeren Dragon listelerine ek olarak, kullanıcılar için yazılım çalıştırma talimatları içeren Dragon listelerinin de oluşturulması önerilir. Talimatlar, IS Dragon ile birlikte kullanıcılara iletilir. IS Dragon'da böyle bir çalışma pratiği A.A. Araptanov 1C sisteminde.

Program, çeşitli programlama dilleri için ayarlara sahiptir. Program, Dragon şemalarını operatörleri olan dillerdeki programların kaynak metinlerine birleştirmenize izin verir: yorum, etiket, koşulsuz atlama (GOTO), koşula göre atlama; örneğin, 1C, Delphi, C ailelerinin dilleri Simgelerin program kodunun bir dosyaya montajı dahili Rota çevirmeni tarafından gerçekleştirilir.

IS Dragon Ekran Koruyucu


Ejderha yaprağı nedir?


    Ejderha yaprağı programlama modunda görüntülenir.

    Metin giriş noktaları (4 kareye kadar) A, B, S, P metinleridir.

    A, B noktaları eşlik eden bilgileri girmek içindir, P noktası program kodunu girmek içindir, S noktası birleştirilmiş program kodunu görüntülemek içindir. Metnin varlığında kare kararır.

    tanıdık? simgelere metin girmek için zorunlu yerler işaretlenmiştir.

Ejderha Şemasını Düzenlemek

Düzenleme için Simge 3 seçilir.
İşaret "?" Adres ve Vetka simgelerinde kontrol devri yoktur. Kontrolün transferi, kesikli bir çizgi ile görsel olarak temsil edilir.


özellikler

Programın ayırt edici bir özelliği, grafik girişinin yüksek derecede otomasyonudur.

İkinci özellik, her simgenin birkaç (4'e kadar) metin girişi düzeyine sahip olmasıdır. Bu seviyelerden biri simgenin "gövdesinde" görüntülenir, diğeri program kodunun bir parçasını içerebilir. Kalan seviyeler (A-text, B-text, P-text, S-text), ayrıntılı yorumlar, bağlantılar ve destekleyici bilgiler gibi keyfi olarak kullanılabilir.

İş süreçlerini görüntülemek için simgeler, iş sürecindeki katılımcıların adlarıyla tamamlanır.

Görüntülenen tüm metinler çok satırlı ve büyük olabilir.
Simgedeki maksimum satır sayısı program ayarlarında belirlenir, tam metin sekmedeki metin düzenleyicide görüntülenir.

DRT biçimi açıklaması

IS Dragon ile çalışmak için yönergeler

Yazdırma şu şekilde yapılır: grafik dosyasını kaydedin, PAINT ile yazdırın. Birkaç A4 kağıda ölçekleme ve düzen ile yazdırma seçenekleri vardır, yazdırma ayarları vardır.

EJDERHA Dersleri

IS Dragon programı ile çalışma tekniklerine hakim olmak için video izlemekte fayda var. İşlem, düzenleyicinin ilk başlatılmasından alınan ürün yazılımının mikroişlemciye indirilmesine kadar gösterilir.

IS Dragon programının ek web sitesi

Metin seçenekleri ve dosyaları Dragon-ders şemaları

Gennady Tyshov'un taslakları

Eşlik eden bilgiler, yasal ve örgütsel ve idari belgelerin bir göstergesini içerebilir, belge parçalarını içerebilir.

Ekteki bilgilerin mevcudiyeti, yasal olarak önemli algoritmalarla çalışan kişiler için önemlidir. Simgeye eşlik eden bilgilerin varlığı, simgede görüntülenen yasal normun kökenini ve geçerliliğini haklı çıkarır. Yasal olarak önemli Dragon algoritmasının uygunluğunu belirleyen eşlik eden bilgilerin varlığıdır.

IS Dragon programı, V.D. tarafından oluşturulan görsel algoritmik diller Dragon ve Gnome temelinde geliştirildi. Parondzhanov ve devlet standardı GOST 19.701-90 (ISO 5807-85). Dragon dilinin fikirleri ve hedefleri pratik ve yaygın kullanım için geliştirilmiştir.

Prosedürel bilgi, algoritma - formun Dragon şemalarında görüntülenen nesneyle yapılan eylemlerin sırasını açıklar İlkel ve Siluet.
bildirimsel bilgi- görünümün Ejderha şemasında görüntülenen "Bu nedir?" Sorusunu yanıtlar Cüce.

Dragon şemalarının oluşturulması ve düzenlenmesi IS Dragon'da gerçekleştirilir.

Tabletlerde Dragon algoritmaları
IS Dragon'da oluşturulan Dragon algoritmalarını kullanmanın bazı sorunları forumda "IS Dragon ve Android" başlığında tartışılmaktadır.

IS Dragon diğer işletim sistemlerinde çalışır
UNIX benzeri işletim sistemlerinde Wine programı ile çalışır.
MacOS'ta Parallels Desktop ile çalışır.

Simge 19 ve 21'e yönelik eylemler, iş sürecindeki katılımcılar tarafından gerçekleştirilir.
Ejderha yaprağı programlama modunda görüntülenir.
Metin giriş noktaları (4 kareye kadar) A,B,S,P-metinleridir: A,B eşlik eden bilgileri girmek için, P program kodunu girmek için, S birleştirilmiş program kodunu görüntülemek için. Metin varsa, kare karanlıktır.
Sayfaya üstbilgiler ve altbilgiler eşlik edebilir: üst orta, sol alt, alt orta, sağ alt.
»?« işareti, bloğun işlevselliğini sağlamak için simgelere metin girmek için zorunlu yerleri, simgeler bloğunda simgeleri girmek için gerekli yerleri işaretler.

En son düzenleyen PBworks 12 yıl 3 ay önce

DRAKON DİLİNİN ÖZELLİKLERİ

AKIŞ DİYAGRAMININ ELEŞTİRİSİ

Algoritmaların anlaşılırlığını geliştirmek için etkili bir araç, programlamanın görselleştirilmesidir ve bu amaç için biraz daha önceki akış şemaları kullanılmıştır. Ancak son zamanlarda akış şemaları eleştirildi. Akış şemalarının karşıtları, yapılandırılmış programlama için uygun olmadıklarını, resmileştirmeye uygun olmadıklarını, bu nedenle "bir makineye doğrudan girdi için bir program olarak kullanılamayacaklarını" iddia ediyorlar. Birçok sayfa kaplarlar ve "akış şemalarının hücrelerine çok sınırlı bilgi girilebilir." Akış çizelgeleri "öğrenmeyi zorlaştırır ve anlama performansını düşürür." Ayrıca, herkes için uygun değildirler - akış şemaları ile çalışmak sadece “sağ beyinli, görsel bilgi odaklı, sezgisel, örüntü tanımalı” kişiler tarafından tercih edilirken, “sol beyinli, sözel bilgi yönelimli, eğilimli bireyler” tarafından kaçınılır. tümdengelimli muhakeme” vb.

1980'den önce akış şemaları en yaygın kullanılan araç olsa da, bugün artık gerekli görülmemekte ve popülerlikleri azalmaktadır. Akış şemalarını modern ihtiyaçlara (SDL dili, vb.) uyarlamak için bireysel girişimler olsa da, genel olarak, akış şemaları açıkça hızla gelişen programlama görselleştirme sürecinin dışında kalmıştır ve muazzam potansiyelleri gerçekte kullanılmamaktadır. DRAKON dili, blok diyagramların belirtilen eksikliklerini ortadan kaldırmayı veya önemli ölçüde zayıflatmayı mümkün kılar.

DRAKON dilinin kurallarına göre oluşturulmuş blok diyagramları belirtmek için “ejderha diyagramları” terimi kullanılır.

DRAGON PROGRAMLARININ AVANTAJLARI

Ejderha diyagramları ve akış şemaları arasındaki fark nedir? Akış çizelgeleri, algoritmayı otomatik olarak makine koduna dönüştürmez. Dragon şemaları ise resmileştirilmiş yazma, otomatik kod oluşturma ve bilgisayarda çalıştırma için uygundur. Ancak ikinci (bilişsel) fark daha önemlidir. Akış şemaları bazen programların anlaşılırlığını iyileştirse de, bu her zaman gerçekleşmez ve iyileştirme derecesi küçüktür. Ayrıca, kötü yürütülen akış şemalarının konuları karıştırdığı ve anlaşılmasını zorlaştırdığı birçok durum vardır. Buna karşılık, ejderha şemaları süper yüksek anlaşılabilirlik kriterini karşılar.

Özel resmi ve gayri resmi bilişsel tekniklerin kullanılması sayesinde, ejderha şemaları, ne kadar karmaşık olursa olsun, teknolojik problemlerin çözümünü son derece açık, görsel ve anlaşılır bir biçimde tasvir etmeyi mümkün kılar ve bu da entelektüel çabalarını önemli ölçüde azaltabilir. görsel algılama, anlama, doğrulama ve hatasız çözüm için gerekli personel.

İKONLAR VE MAKRO İKONLAR

DRAKON dilinin grafik öğelerine (grafik harfler) simgeler denir (Şekil 1). Harflerin sözcüklerde birleştirilmesi gibi, simgeler de bileşik simgelerde birleştirilir - makro simgeleri(İncir. 2).

Simgeleri ve makro simgeleri belirli kurallara göre bağlayarak, örnekleri Şekil 2'de gösterilen çeşitli algoritmalar oluşturmak mümkündür. 3, 4, 6, 8-11.

şiş blok- aynı dikeyde bulunan, yukarıdan bir giriş ve aşağıdan bir çıkışa sahip olan ejderha düzeninin bir kısmı. Şiş bloklarına örnek olarak simgeler I3 - I10, I12 - I16, I18, I20, I21 (Şekil 1) ve makro simgeleri 2-20 (Şekil 2) verilebilir.

NEDEN BİR ŞUBE İHTİYACINIZ VAR?

Prenses Anne, Le Chatelier Markisi'nden boşandığında, mal paylaşımı konusunda bir anlaşmazlık çıktı. Yargıç, prensesin evlenmeden önce hangi alımları, hangilerini sonra yaptığını belirtmesini istedi.

Şimdi bu aile dramını unutalım ve pirinci birbiriyle karşılaştıralım. 3a ve 3b. İlkinin hakimin sorusuna cevap vermeye izin vermediğini görmek kolaydır. İkincisine gelince, aksine, gerekli bilgileri içerir. Ayrıca, Şekil 2'deki algoritma. 3b, evlilik öncesi ve sonrası yapılan alımların açıkça iki listeye ayrılması için kasıtlı olarak çizilmiştir. Bu listeler görsel ve uzamsal olarak ayrılmıştır, bu nedenle algoritmanın okuyucunun iradesine bakılmaksızın iki bölüme ayrılması kelimenin tam anlamıyla göze çarpmaktadır. Bu tekniğe algoritmayı “bak - ve hemen netleşti!” ilkesine göre anlamsal parçalara bölme denir. Ve anlamsal blokların kendilerine denir dallar.

"Şube" kelimesinin iki anlamı vardır. Bir yandan, bu algoritmanın anlamsal bir "parçasıdır". Örneğin, Şekil 1'deki algoritma. 3b'nin iki şubesi vardır (“Evlilik öncesi alımlar” ve “Evlilik sonrası alımlar”). Şek. 4 - dört dal (“Balık tutmaya hazırlanıyor”, “Bir ısırık bekliyorum”, “Balık tutma işi”, “Arka yol”). Öte yandan dal, bilinen dillerde benzeri olmayan DRAKON dilinin bileşik operatörüdür. Şube operatörü üç bölümden oluşur: şube başlangıcı(simge “şube adı”), şube gövdesi(çok sayıda simge içerebilir) ve şube sonu(bir veya daha fazla "adres" simgesi veya bir "bitiş" simgesi içerir).

Peki neden bir şubeye ihtiyacımız var? Bir bilgi çalışanına, programcıya ve teknoloji geliştiricisine, bir problemin, programın veya sürecin anlamsal bölünmesini parçalara ayırmasına ve parçalara uygun anlamsal adlar vermesine yardımcı olmak. Aynı zamanda, sorunun bölünmesi N semantik parçalar, algoritma bölünerek uygulanır. N dallar.

ŞUBE NASIL ÇALIŞIR?

Bir dalın bir girişi ve bir veya daha fazla çıkışı vardır. Giriş, şube kimliğini içeren "şube adı" simgesidir. Görsel operatör “dal adı” herhangi bir işlem yapmaz, sadece programın anlamsal bölümünün adını bildiren bir etikettir. Ejderha algoritmasının yürütülmesi her zaman en soldaki daldan başlar (Şekil 3, 4).

Şubeden çıkış, yürütme sırasına göre bir sonraki şubenin adının yazıldığı “adres” simgesidir. "Adres" simgesi gizlenmiş bir atlama operatörüdür (goto), ancak kontrolü hiçbir yere aktarmaz, yalnızca seçilen dalın başlangıcına aktarır. Bir şubeye giriş ancak başlangıcından itibaren mümkündür. Son daldan çıkış “bitiş” ikonu ile gerçekleştirilir.

ÇEKİM ALANINDA ŞUBELER NASIL KONUMLANDIRILMALIDIR?

Dallar iki şekilde sıralanır: mantıksal ve uzamsal olarak. mantıklışubelerin yürütme sırası, “adres” simgelerine kaydedilen etiketlerle belirlenir. Ancak, mantıksal düzen her şey değildir. Şek. 5 üç farklı yolu gösterir uzaysal aynı mantıksal sıraya sahip şube konumları. Mekansal belirsizliği ortadan kaldırmak ve ejderha şemasının anlamının anlaşılmasını kolaylaştırmak için “daha ​​sağa - daha sonra” kuralı getirildi. Bunun anlamı: sağa çizilen dal, soldaki tüm dallardan daha sonra çalışır.

“Daha sağa - daha sonra” kuralına göre çizilen bir algoritma iyi, ergonomik olarak kabul edilir (Şekil 5c). Bu kuralın ihlal edildiği şemalar kötü olarak ilan edilir (Şekil 5a, b), kullanımları yasaktır.

İzin verilen (ergonomik) algoritmalarda aşağıdaki iş sırası gerçekleşir (Şekil 3, 4, 5c, 6a):

  • en soldaki dal önce çalışır, en sağdaki dal en son çalışır;
  • kalan dallar kontrolü soldan sağa doğru birbirine geçirir (bu durumda bazı dallar atlanmış olabilir);
  • bazen bir "dal döngüsü" oluşur. Bu, kendi adınızın veya sol dallardan birinin “adres” simgesinde belirtildiğinde olur. Şek. 4 ve 6a'da, dal döngüsü siyah üçgenlerle işaretlenmiştir.

ŞAPKA NEDİR?

Okuyucunun bakış açısından, tanıdık olmayan veya unutulmuş önemsiz olmayan herhangi bir algoritma, güçlü “maddi direnci” aşarak umutsuzca anlamaya çalıştığı son derece zor bir problemdir. Konuyu basitleştirmek ve anlama görevini kolaylaştırmak için okuyucunun “ışığı görmesi” ve sorunu parçalara bölerek anlamsal yapısını konu alanı açısından görmesi gerekir. Ve kelimenin mecazi anlamda değil, hayal gücünün yardımıyla değil, manevi bir gözle değil, kendi iki gözümle - kağıt üzerinde veya ekranda gördüm.

Ama bunu nasıl yapmalı? Zorluk, mevcut dillerin hiçbirinin, karmaşık bir programı veya teknolojiyi inceleyen okuyucuya, yapısını anında (birkaç saniye içinde) anlamasını, yani anlamsal bloklara bölünmesini sağlayan etkili yardım sağlamamasıdır. DRAKON dili, soruna çözüm sağlayan özel araçlara sahiptir.

Başlık, algoritmanın başlığını ve bir dizi “dal adı” ikonunu içeren ejderha şemasının (Şekil 4) üst kısmıdır. Başlığın amacı, okuyucunun anında (birkaç saniyeden fazla olmamak kaydıyla) sorunu çözmesine ve güçlü bir ipucu almasına yardımcı olmaktır - en önemli üç sorunun yanıtı:

  1. sorunun adı ne
  2. kaç parçadan oluşur?
  3. her bölümün adı nedir?

Ne de olsa, bu sorularla, herhangi bir görevle tanışmamız, işe rasyonel bir yaklaşımla başlar.

İşte şekil için cevaplar. dört.

  • Sorunun adı nedir? Balık tutma.
  • Problemin kaç parçası var? Dört üzerinden.
  • Her bölümün adı nedir? 1. Balıkçılık için hazırlık. 2. Bir ısırık bekliyorum. 3. Balık tutma işi. 4. Geri dönüş.

Ek kolaylıklar, başlığın çizim alanında “tören” bir yer işgal etmesi ve anlamsal parçaların adlarının benzersiz bir şekle sahip özel çerçeveler içine yerleştirilmesi ve bu nedenle okuyucunun dikkatini anında çekmesi ile bağlantılıdır. onun tarafında.

Bu şekilde DRAKON, okuyucuya bilinmeyen veya unutulmuş bir problem hakkında bilgi edinmek için üç aşamalı etkili bir yöntem sunar. İlk aşamada, başlığı analiz eden okuyucu, algoritmanın amacını ve anlamsal parçalara (dallara) bölünmesini öğrenecektir. İkinci aşamada, her dalın derinlemesine bir analizi yapılır. Üçüncü aşamada, şubelerin etkileşimi analiz edilir.

HANGİSİ DAHA İYİ: İLKEL Mİ Mİ SİLÜET Mİ?

Dalları olan ejderha şemasına denir siluet, şubesiz - ilkel.Şekil l'de gösterilen siluet. 6a bir ilkel olarak gösterilebilir (Şekil 6b). İlkel, şiş bloklarının “başlığı” simgesinin ve “bitiş” simgesinin seri bağlantısıdır. İlkel olarak, “başlık” ve “son” simgeleri mutlaka aynı dikeyde bulunur; şiş. Aynı çizgide şiş bloklarının ana dikeyleri bulunur. Mecazi olarak konuşursak, şiş ilkel ikonlarına (belki de hepsi değil) gerçek bir şişin şiş kebap parçalarına nüfuz etmesiyle aynı şekilde nüfuz eder.

Ejderha şeması çok basitse (ilkel) ve 5...15'ten fazla simge içermiyorsa, bir ilkel kullanılması önerilir. Aksi takdirde programın okunabilirliğini arttırmak için silüet kullanmak daha faydalıdır. Bu kuralın ihlali genellikle sorunla doludur, çünkü okuyucunun çözülmekte olan sorunun özünü belirlemesini engeller ve bu nedenle programın anlamını anlamayı zorlaştırır ve yavaşlatır.

Örneğin, Şekil 1'deki algoritma. 6b hantal görünüyor ve okunması mantıksız bir şekilde zor. Bunun nedeni, 19 simge içermesi, ancak ilkel olarak tasvir edilmesidir. Suç, Şek. 6b, okuyucunun algoritmanın görsel-anlamsal yapısını anında (birkaç saniye içinde) tanımasına izin vermez. Aslında, çözülmekte olan problem kaç bölümden oluşmaktadır? Şek. 6b, bu soruyu cevaplamak oldukça zor ve hemen cevaplamak imkansız. Şekil 2'ye baktığımızda durum kökten değişiyor. 6a, aynı algoritma bir siluet olarak gösterilir. Burada, dedikleri gibi, hiç akıllıca değil: algoritma dört bölümden oluşur: "otobüs ara", "biniş için bekleme", "otobüse binme", "seyahat". Bununla birlikte, hepsi bu kadar değil: görsel desenin karmaşıklığının ortadan kalkması ve şemanın yeni bir estetik (ergonomik) kalite kazanması daha az önemli değil: zarafet, netlik ve şeffaflık.

Bu nedenle, karmaşık durumlarda siluet, algoritmayı anlamak için harcanan entelektüel çabayı önemli ölçüde azaltabilir. Siluette, programın büyük yapısal parçaları (dallar) açıkça ayırt edilir, çizim alanında uzamsal olarak ayrılır, aynı zamanda kolayca tanınabilir, kararlı, öngörülebilir ve entegre bir görsel görüntü oluşturur. Ve ilkelde, yapısal parçalar ayrılmamış ve karıştırılmamış ("her şey bir yığında"), bu da karmaşık algoritmaları okumayı ve analiz etmeyi zorlaştırıyor. Bununla birlikte, basit durumlar için (5...15 simgeden az), kural olarak ilkel daha çok tercih edilir.

BİR METİN DİLİ KULLANARAK BİR SİLUET NASIL TANIMLANIR?

Şek. Şekil 7, dalları tanımlamak için metin dilinde bir takım değişikliklerin yapılması gerektiğini göstermektedir. Özellikle, geleneksel dillerde bulunmayan iki yeni metin operatörü vardır:

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

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

Metin dili operatörü BRANCH, şubenin adını duyurur (“şube adı” simgesinin içine görsel dilde yazılır). ADDRESS operatörü, kontrolü koşulsuz olarak ADDRESS operatörünün sağında adı yazan BRANCH metin operatörüne aktarır.

Görevi düşünelim. Karmaşık bir algoritmanın başlangıcını ve sonunu birbirine bağlayan karmaşık bir labirentte, tek bir rotayı - problemde kolayca gezinmek ve kaybolmamak için diğer tüm rotaları görsel olarak karşılaştırabileceğiniz bir “yönlendirici iş parçacığı” seçmek gerekir. çatalların karmaşasında. Bu kılavuz ip (haydi “ana yol” diyelim) görsel olarak kolayca ayırt edilebilir olmalıdır. Başka bir deyişle, ejderha planına üstünkörü bir bakış attıktan sonra, “kraliyet” rotasını ve ona göre sıralanan rotaların geri kalanını hemen ve doğru bir şekilde görebildiğimiz için net işaretler bulmalıyız.

Bunun için bir kural getirildi: "ilkelin ana yolu şişten gitmelidir."Çatallardaki “evet” ve “hayır” kelimelerini ve anahtarlardaki seçenekleri (ve bunlara bağlı simgelerin çelenklerini) değiştirerek, en büyük başarıyı sağlayan çatalın veya anahtarın çıkışının olduğundan emin olmalısınız. kraliyet yolunda (Şek. 8). Ve yan yolların kurala göre düzenlenmesi gerekir: “ne kadar sağa, o kadar kötü”(Şek. 9). Bu kurallar ihlal edilirse, ejderha şeması kötü kabul edilir (Şekil 10a). Ancak her zaman iyiye dönüştürülebilir (Şekil 10b).

“Daha iyi-kötü” özelliğinin çalışmadığı durumlarda, ana rotadan sağa geçişin her zaman keyfi ve kaotik değil, düşünceli ve düzenli olması için bunun yerine başka makul kriterler seçilmelidir. Örneğin matematik problemlerini çözerken çatal çıkışları ve switch seçenekleri bu çıkışlara karşılık gelen matematiksel değerin (karakteristik) artan veya azalan sırasına göre soldan sağa doğru düzenlenebilir (Şekil 11, 12).

ANA GÜZERGAH SİLUET

Bir önceki paragrafta, ilkellerin rotalarının nasıl sıralanacağını öğrendik. Şimdi silüet sırası.

saptırılmış dallar“şube adı” simgesini “adres” simgesiyle ve dalın birkaç çıkışı varsa - soldakiyle birleştiren bir dikey denir. Şube için her iki “kraliyet” kuralı da geçerlidir:

  • şubenin ana yolu şiş boyunca ilerlemelidir;
  • bir dalın yan yolları bazı kriterlere göre soldan sağa doğru sıralanmalıdır.

Bir kriter olarak, “daha ​​fazla sağa - daha kötü” ilkesinin seçildiğini varsayalım. Bu durumda, siluetin her bir dalı tek bir kurala göre inşa edilmelidir: daha sağa (bu dalın şişinden ne kadar uzak) bir sonraki dikey bulunursa, o kadar az başarılı eylem gerçekleştirir.

Örneğin, Şek. 6a “otobüse binen” şubenin üç dikey yönü vardır. Sol dikey (ana rota), otobüste oturacağınız için en büyük başarıyı tanımlar. Doğru dikey, en az başarı anlamına gelir çünkü otobüsten indiniz ve yolculuk ertelendi. Orta dikey ("ayakta binmek ister misiniz?" simgesinin üzerinde bulunur) orta bir konumdadır, çünkü - cevaba bağlı olarak - kısmi başarı olabilir (bineceksiniz, ancak oturmayacaksınız, ayakta duracaksınız) veya başarısızlık, çünkü otobüsten özensiz bir slurp ile iniyorsun.

siluet ana rota- dönüşümlü olarak çalışan şubelerin ana yollarının seri bağlantısı. Böylece DRAKON, okuyucunun ne kadar karmaşık ve dallanmış olursa olsun herhangi bir algoritmanın ana yolunu anında görmesini sağlar ve dahası, tüm yan yolların “kraliyet” olana göre kaymasını rastgele değil, anlamlı ve öngörülebilir, yani. , anlaması kolay.

HAT GEÇİŞLERİ? - TANRI SEVİYOR!

Sert ifadelere eğilimli bazı uzmanlar, geleneksel algoritma akış şemalarını "çöp akış şemaları" olarak adlandırır, çünkü üzerlerinde gösterilen blokların karmaşıklığı, etrafta dolaşan pürüzlü bir çizgi kaosuyla birbirine bağlanır, normal bir yapıdan çok bir çöp yığını gibi görünür. . DRAKON, grafik deseninin katı bir matematiksel ve bilişsel-ergonomik gerekçeye sahip olması ve katı ve dikkatlice düşünülmüş kurallara uyması gerçeğiyle olumlu bir şekilde karşılaştırır. Bunlar arasında, kural tarafından özel bir yer işgal edilir: "bağlantı hatlarının kesişmesi ve kesilmesi yasaktır."

Geleneksel blok diyagramları çizerken, iki tür çizgi geçişine izin verilir: açık, çapraz çizgilerle gösterilen ve maskeli, sözde bağlayıcılar kullanılarak gerçekleştirilir. Bildiğiniz gibi bağlayıcı “hattı kırmak ve başka bir yerde devam ettirmek için… gereksiz kavşaklardan kaçınmak için kullanılır”.

DRAKON dilinde, listelenen tüm hileler (geçişler, molalar, konektörler) ergonomik nedenlerle zararlı olarak kabul edilir ve çizim alanını gereksiz ayrıntılarla tıkadığı, gözler için görsel parazit oluşturduğu ve dikkati asıldan uzaklaştırdığı için kesinlikle yasaktır. şey.

Kavşakların yasaklanması ciddi bir topolojik kısıtlama olduğu için şu soru ortaya çıkıyor: keyfi bir algoritma bir ejderha şeması olarak temsil edilebilir mi?

Teorem 1. Herhangi bir yapısal program DRAKON dilinde iki şekilde temsil edilebilir: ilkel ve siluet olarak.

Teorem 2. Bazı durumlarda keyfi (yapısal olmayan) bir program ilkel olarak temsil edilemez; ancak, ek değişkenlerin (dal tanımlayıcılar) girilmesine izin veren eşdeğer dönüşümlerin yardımıyla, her zaman bir siluet olarak gösterilebilir.

Konuyu netleştirmek için bazı örneklere bakalım. Şek. 13a, yasaklanmış bir ejderha şemasını göstermektedir: içinde kaldırılamaz (ek değişkenler eklemeden) bir kesişimin olduğu bir ilkel. Şek. 13b, kolayca görebileceğiniz gibi, Şekil l'deki ilkel ile eşdeğer olan bir silueti göstermektedir. 13a ve aynı zamanda tek bir kavşak içermez. Böylece, Şekil 1'deki örnek. 13 Teorem 2 1'in geçerliliğini doğrulamaktadır.

DRAGON'UN GÖRSEL VE ​​METİN SÖZ KONUSU

DRAKON, iki tür öğe kullanan görsel bir dildir: grafik şekiller ( grafik öğeleri) ve grafik şekillerin içinde veya dışında bulunan metin etiketleri ( metin öğeleri). Bu nedenle, DRAGON sözdizimi iki kısma ayrılır. Görsel sözdizimi, grafik öğelerin alfabesini, çizim alanına yerleştirme kurallarını ve grafik öğeleri bağlantı çizgilerini kullanarak bağlama kurallarını kapsar. Metin Sözdizimi sembollerin alfabesini, bunların kombinasyon kurallarını ve grafik öğelerine bağlanmayı tanımlar (bağlama gereklidir, çünkü farklı grafik şekillerinde farklı ifade türleri kullanılır). DRAKON dil operatörü bir grafik öğesi veya metin etiketleriyle birlikte alınan grafik öğelerinin birleşimidir.

Grafiklerin ve metnin eşzamanlı kullanımı, DRAGON'un yalnızca yazarın ve programın okuyucusunun sözel-mantıksal düşünmesine hitap etmediğini, ayrıca sezgisel, mecazi, sağ beyin düşünmeyi etkinleştirdiğini ve onu olmayan bir programla uyardığını göstermektedir. yazılmış, ancak çizilmiş, yani program -resim.

EJDERHA DİLLERİ AİLESİ

DRAKON tek bir dil değil, tüm dilleri aynı görsel sözdizimine sahip (görsel olarak ailenin dillerini neredeyse ikiz yapar) ve metinsel sözdiziminde farklılık gösteren bütün bir ailedir.

Ejderha-1- görsel bir sözde dil, olağan metinsel sözde kodun görsel bir analogu. Faaliyetlerin yapısını tanımlamaya, teknolojiler, algoritmalar ve program projeleri oluşturmaya hizmet eder, adım adım detaylandırma yönteminde ve mesleki bilginin resmileştirilmesinde kullanılır.

DRAKON-2 gerçek zamanlı bir görsel programlama dilidir. O bir element DAVA- roketlerin ve uzay nesnelerinin kontrol sistemlerinin yanı sıra nükleer santraller, petrokimya ve metalurji tesisleri, biyoteknoloji endüstrileri vb. için yazılım geliştirme teknolojileri.

Ayrıca aile, hibrit görsel programlama dillerini içerir: DRAKON-BASIC, DRAGON-PASCAL, DRAKON-SI, vb. SI dilinin metin sözdiziminin kuralları.

Görsel ve metinsel sözdiziminin kesin olarak ayrılması, dilin kapsamını maksimum ölçüde genişletmeye izin vererek esnekliğini ve evrenselliğini sağlar. Aynı zamanda, DRAKON dil ailesinin görsel sözdizimi kurallarının tekdüzeliği, kavramsal bütünlüklerini sağlar ve metin kurallarının çeşitliliği (yani, herhangi bir metin sözdizimini seçme yeteneği) dilin esnekliğini ve kolaylığını belirler. çeşitli problem ve konu alanları için özelleştirme.

Bu kitap, DRAKON-1'in görsel sözde diline odaklanmaktadır. DRAKON ailesinin diğer dillerine gelince, sadece kısa açıklamalar verilmiştir.

SONUÇLAR

Ejderha diyagramlarının bilişsel kalitesini iyileştirmek ve algoritmaları, programları ve teknolojileri daha anlaşılır kılmak için ergonomik kuralların bir özetini burada bulabilirsiniz.

  1. Karmaşık bir algoritma bir siluet, basit bir - ilkel olarak çizilmelidir.
  2. “Başlık” simgesine “başlangıç” kelimesini yazmak yasaktır; bunun yerine algoritma için açık ve kesin bir ad sağlanmalıdır.
  3. Karmaşık bir algoritmayı parçalara ayırın, her parçayı bir dal olarak gösterin. Parçalara net ve özlü adlar verin ve bunları “dal adı” simgelerine yazın.
  4. Bir şubeye giriş ancak başlangıcından itibaren mümkündür.
  5. Şubelerden birinin adının “adres” simgesine yazılmasına izin verilir, diğer yazılar yasaktır.
  6. Dallar, kurala göre boşlukta yerleştirilmelidir: daha sağa, daha sonra. Bir dal döngüsünün varlığı bu kuralı değiştirir.
  7. İlkel olanın mutlaka bir şişi vardır. Bu, "başlık" ve "son" ilkel simgelerinin her zaman "şiş" olarak adlandırılan aynı dikey üzerinde bulunduğu anlamına gelir.
  8. Her dalın bir şiş olması gerekir. Sağ dalda, şiş “dal adı” ve “bitiş” simgelerini birbirine bağlayan dikeydir. Dalların geri kalanı için şiş, “şube adı” ve “adres” simgelerini ve birkaç adres varsa soldakiyle birleştiren dikey bir çizgidir.
  9. Algoritmanın her zaman şişin üzerinden geçmesi gereken bir ana yolu vardır.
  10. Yan yollar, seçilen kriterlerden birine göre soldan sağa sıralanmalıdır, örneğin: sağa ne kadar çoksa o kadar kötü.
  11. “End” ikonuna “end” kelimesi yazılmalıdır.
  12. Bağlantı hatları yatay veya dikey olarak çalışabilir. Eğimli çizgilere izin verilmez.
  13. Hat geçişleri yasaktır.
  14. Satır araları yasaktır.
  15. Konektörler yasaktır.

DRAKON programlama dili hakkında bir şey duydunuz mu? Biz değiliz. Ancak okuyucumuz, DRAGON'un zaten yüksek öğretimde bilgisayar bilimi dersinin müfredatına dahil edildiğini iddia ediyor.

DRAKON programlama dili hakkında bir şey duydunuz mu? Biz değiliz. Ancak okuyucumuz, DRAGON'un zaten yüksek öğretimde bilgisayar bilimi dersinin müfredatına dahil edildiğini iddia ediyor. Yazarın yazım ve noktalama işaretleri korunmuştur. - yakl. ed.

1976'da SSCB'de, Buran-Energy projesinin bir parçası olarak Buran yeniden kullanılabilir ulaşım uzay aracının gelişimi en katı gizlilik içinde başladı. Çok büyük bir projeydi. SSCB'nin 86 bakanlığı ve dairesi ve 1286 işletmesi (toplamda yaklaşık 2,5 milyon kişi) kuruluşunda yer aldı.

Buran, ilk ve tek uzay uçuşunu 15 Kasım 1988'de yaptı. Orbiter, Energia fırlatma aracı kullanılarak Baykonur Uzay Üssü'nden fırlatıldı. Buran, Dünya'nın etrafında uçtuktan sonra, Baykonur'daki özel donanımlı bir Yubileiny havaalanına indi. Uçuş mürettebatsız, tam otomatik modda gerçekleşti. Sadece manuel kontrolle inebilen American Shuttle'ın aksine. 1990'da SSCB'nin çöküşü ve geçiş döneminin zorluklarıyla bağlantılı olarak, Energia-Buran programı üzerindeki çalışmalar askıya alındı ​​ve 1993'te program nihayet kapatıldı.

Buran için programlama dillerinin geliştirilmesi

Buran'ın geliştirilmesi sırasında, yazılım geliştirme ve test etme sorunu en zorlarından biri olarak kabul edildi. Başlangıçta, sorunu çözmek için birkaç bin programcının gerekli olacağı varsayıldı. O sırada yerleşik bilgisayarın "Beads-4" bellek kapasitesi çok sınırlı olduğundan, programcılarımızın assembler'da program yazmaya alışkın olduklarına dikkat edilmelidir.

Uygulamalı Matematik Enstitüsü materyallerinde. M.V. Keldysh RAS'ın o dönemin zorlukları ve başarıları ile ilgili olarak şunları aktarıyor:

"1983'te Buran uzay aracının geliştiricileri, geminin yer testleri için yerleşik yazılım ve yazılımın geliştirilmesine yardımcı olma talebiyle [Uygulamalı Matematik Enstitüsü]'ne başvurdu. Tahminlerine göre, bunun için birkaç bin programcı gerekliydi. Problemi inceledikten sonra, gemi geliştiricileri tarafından kullanılan kontrol ve test algoritmalarının terimlerine, kavramlarına ve sunum şekline dayalı problem odaklı dillerin geliştirilmesine karar verildi.Bu dillerin uygulanması dahil etmeyi mümkün kıldı. gemi geliştiricilerin kendilerini gemide ve test yazılımlarının oluşturulmasında - kontrol ve test algoritmalarının yazarları.Dillerin ve ilgili araçların geliştirilmesi, Uygulamalı Matematik Enstitüsü'nün yüksek nitelikli programcılarından oluşan küçük bir ekip tarafından son derece hızlı bir şekilde gerçekleştirildi. kısa süre.Yerleşik yazılım geliştirmek için, özel bir gerçek zamanlı dil PROL2 oluşturuldu ve temel alındı SAPO PROL2 programlama ve hata ayıklama otomasyon sistemidir ... Uzay aracının yer testleri için yazılım geliştirmek, probleme yönelik bir dil DIPOLE ve buna dayalı programlama ve hata ayıklamayı otomatikleştirmek için bir sistem "...

Bu nedenle, Buran'ın yaratılması sırasında programcı eksikliği sorununu çözmek için, talebimiz üzerine, Rusya Bilimler Akademisi Uygulamalı Matematik Enstitüsü iki Rusça dil oluşturdu:

  • yerleşik karmaşık programların geliştirilmesi için gerçek zamanlı dil PROL2 (yazar Viktor Kryukov)
  • DIPOL yer test programlarının geliştirilmesi için problem odaklı bir dil (yazar Vladimir Lutsikovich)

Ayrıca, Konstantin Fedorov'un önderliğinde Pilyugin Merkezi'nde modelleme için LAKS dili geliştirildi. Böylece üç yeni dil ortaya çıktı: PROL2, DIPOLE ve LAKS.

DRAKON dili kozmik bir beşikte doğdu

Diller belirlenen görevleri başarıyla çözmüş olsa da, dillerin dar uzmanlaşmasının yoluna girdiği anlaşıldı. Bu fikir 1986 yılında karmaşık bölüm başkanı Yuri Trunov (daha sonra Genel Tasarımcı ve Pilyuginsky Merkezi'nin Genel Müdürü) tarafından dile getirildi. Trunov, Buran bilgisayar sisteminin entegre gelişimi için laboratuvar başkanı Vladimir Parondzhanov'u çağırdı ve ona yukarıdaki üçünün yerini alabilecek evrensel bir dil yaratmasını söyledi. Ancak Parondzhanov sorunu farklı bir şekilde ortaya koymaya karar verdi. Yeni dilin yalnızca uzay teknolojisinin pratik ihtiyaçlarını karşılamakla kalmayıp, aynı zamanda geleneksel programlamanın çok ötesine geçen son derece geniş bir dizi sorunu çözmesi gerektiğine inanıyordu.

Bu bağlamda, DRAKON dilini oluştururken, programcılar, matematikçiler ve "teknisyenler" için alışılmadık insani gereksinimler ortaya kondu.

1. İnsan zihninin işleyişini iyileştirin.
2. İnsan faaliyetinin yapısını tanımlamak için etkili araçlar önerin.
3. Bir kişiye karmaşık prosedürel problemlerin algılanmasını ve meslektaşları ile iletişimi önemli ölçüde basitleştiren, anlaşılmaz olanı anlaşılır kılan ve bu nedenle bir kişiyi tam anlamıyla net, derin ve üretken bir şekilde düşündüren dil araçları sağlamak. Bu koşullar altında yanılgı, yanlış hesap ve hata olasılığı kaçınılmaz olarak düşer ve verimlilik artar.
4. Farklı organizasyonların, bölümlerin, bölümlerin, laboratuvarların, bilim okullarının ve mesleklerin temsilcileri arasında sektörler arası ve disiplinler arası iletişimi kökten kolaylaştırın.
5. Çeşitli uzmanlık alanlarından (doktorlar ve fizikçiler, matematikçiler ve tasarımcılar, biyologlar ve ekonomistler, vb.) çalışanların yanı sıra programcılar ve herhangi bir programlamaya alerjisi olanlar arasındaki karşılıklı yanlış anlama engellerini ortadan kaldırın veya azaltın.
6. "Algoritmaların ve programların anlaşılırlığı" açısından yazılım kalitesinde temel bir gelişme sağlamak.

DRAKON dilinin ve yazılım araçlarının geliştirilmesi

Yeni bir programlama dili ve sisteminin geliştirilmesi 1986 yılında başladı. 11 yıl sonra, DRAKON temelinde algoritma ve program tasarlamak için otomatik bir teknoloji (CASE teknolojisi) "GRAPHITE-FLOX" adı verildi.

Tüm çalışmalar 1996 yılına kadar tamamlanmıştır. Ardından DRAKON dili ve GRAPHITE-FLOX sistemi devreye girdi. Onların yardımıyla, Uluslararası Deniz Fırlatma Projesi'nin uzay aracının ön hızlandırma modülü için algoritmalar ve programlar geliştirildi. Toplamda, yazılımı ve kontrol sisteminin diğer öğelerini geliştirmek ve iyileştirmek üç yıl sürdü. 1999 yılına kadar tüm çalışmalar tamamlandı. Sistem başlamaya hazırdı.

Sea Launch füze sisteminin ilk lansmanı 28 Mart 1999'da gerçekleşti. Saat 5'te oldu. 30 dakika. Kiribati adaları yakınlarındaki Pasifik Okyanusu'ndaki "Odyssey" fırlatma platformundan Moskova saati (27 Mart 1999, 18:30 Pasifik saati).

Bu lansman, DRAKON dilinin ateşinin vaftizi ve "Graphite-Phlox" programları oluşturma teknolojisiydi. Etkinliğini ve güvenilirliğini ikna edici bir şekilde gösterdi. O zamandan beri, Deniz Fırlatma programı kapsamında 29 roket fırlatma gerçekleştirildi. Son fırlatma 24 Eylül 2008'de gerçekleşti. DRAKON dili diğer birçok uzay programında da başarıyla kullanılmaktadır:

  • üst kademe uzay aracı "Fregat";
  • yükseltilmiş fırlatma aracı "Proton-M";
  • hızlanma öncesi uzay aracı modülü DM-SL-B (Çöl Fırlatma veya Yerden Fırlatma projesi), vb.

Ejderha kullanımının sonuçları sürekli olarak yüksek olduğundan, Pilyugin Merkezi yönetimi sonraki tüm projelerde ejderha teknolojisini kullanmaya karar verdi.

Programcılar olmadan programlama

DRAKON çok kolay bir dildir. O kadar kolay ki, pratikte uzay roketleri için birçok bilgisayar programının geliştirilmesi programcılar tarafından değil, mühendisler tarafından - "programcısız programlama" ilkesine göre gerçekleştirilir. Programcıları terk etmenin nedeni basittir. Pratik uygulamalı problemleri çözerken, mühendisler malzeme hakkında kapsamlı bir bilgiye sahiptir ve problem ifadesinin çok iyi farkındadır. Onlardan farklı olarak, programcılar "sürecin fiziğini" bilmezler ve bazı durumlarda (her zaman olmasa da) onsuz yapmanın oldukça mümkün olduğu "gereksiz insanlar" olurlar.

Bu, maliyetleri önemli ölçüde azaltmanıza, maliyet-fayda oranını iyileştirmenize ve işin ilerlemesini hızlandırmanıza olanak tanır. Ve programcılar ve mühendisler arasındaki karşılıklı yanlış anlamadan kaynaklanan "bozuk telefon" hatalarından tamamen kurtulun.

Uzay gelişiminin sırları - ulusal ekonomiye

DRAGON evrenseldir. Sadece "uzayda" değil, aynı zamanda "karasal" insan faaliyeti türlerinde de algoritmaların görsel temsili ve hızlı gelişimi için kullanılabilir. DRAKON'un pratik kullanışlılığı çok takdir edildi. DRAKON dilinin eğitim sistemi de dahil olmak üzere çeşitli alanlarda yaygınlaşacağı varsayılabilir. Bir zamanlar, Pascal dilinin yazarı Niklaus Wirth, Pascal'ın programlama öğrenmeye başlamak için ilk dil olması gerektiğini düşünüyordu. Bu görüş neredeyse evrensel olarak kabul edilmiştir.

O zamanlar programlar metin şeklinde yazılırdı. Metin programlama için Pascal gerçekten de en iyi öğrenme diliydi.

Ancak, bugün durum değişti. Gelecek ergonomik dillere aittir. Bu koşullar altında, büyükbaba Pascal, mükemmel bir eğitim aracı olarak eski ihtişamını kaybetti.

Günümüzde bu rol DRAKON görsel diline kaymaktadır. Algoritma ve programlama çalışmalarına başlamak için en basit, en hafif, en uygun ve mantıksal olarak tutarlı dil haline gelen DRAKON'dur.

Eğitim sisteminde ejderha

1996 yılında, Rusya Federasyonu Yüksek Öğrenim Devlet Komitesi, yüksek öğretimde bilgisayar bilimi dersinin müfredatına DRAKON dilinin çalışmasını dahil etti. Bu gerçek, Devlet Yüksek Öğrenim Komitesi'nin başlıklı belgesinde yansıtılmaktadır:

Şu anda ortaokul ve liseler için ders kitapları hazırlanıyor. Bunlardan ilki zaten yayınlandı - ortaokul çağındaki çocuklar için bir oyun ders kitabı.

Programın itici gücü nedir? Yararlı bir sonuç ne üretir? Tabii ki, algoritma. Algoritma, programın yazıldığı etkiyi yaratır. Algoritma tek başına çalışmıyor. Veri yapıları ile birlikte çalışır. Ancak programın en büyük bölümünü oluşturan algoritmalardır.


Tarihsel olarak, programlardaki algoritmalar kaynak metinler şeklinde yazılır. Neredeyse hiç kimse metnin algoritmaları temsil etmenin en iyi yolu olduğunu sorgulamaz. Algoritma, C veya JavaScript gibi bir programlama dilinde işlevlerin içinde kodlanmıştır. Algoritmayı kuş bakışı anlamak isteyenler için pseudocode sağlanmıştır. Ancak metinde ciddi sorunlar var. Gerçek şu ki, bir kişi katı metin için optimize edilmemiştir. Bir kişi grafik algısı için optimize edilmiştir. Metin nispeten yeni bir buluş, ancak grafik bilgi organizmalar tarafından milyonlarca yıldır işleniyor.


Buna dayanarak, algoritmaları grafiksel olarak hazırlamak mantıklı olacaktır. Mühendislere bakın. Her yerde planlar kullanırlar. Programcılar neden daha kötü? Onlar da algoritmalar için planlar yapabilirler. Bazıları burada itiraz edecek: görsel programlamanın verimsiz olduğu iddia ediliyor. UML gariptir ve akış şemalarının karıştırılması kolaydır. Geleneksel şekilde programlamak daha iyidir - metinle. Yapılandırılmış programlamada en azından bir yapı vardır ve düzen ve tekdüzelik sağlar. Ayrıca diyagram çizmek uzun ve zordur. Yazmak, çizmekten daha hızlıdır.


Peki, programcılar tüm yaşamları boyunca yalnızca metinle çalışmaya mahkum mudur?
Belki de her şey o kadar da kötü değildir. DRAGON, BPMN ve LML Eylem Diyagramları gibi düzen ve yapıya da sahip olan algoritmaları temsil etmek için görsel diller bulunmaktadır. Burada görsel algoritmik dil DRAKON'u ele alacağız.

DRAKON dilinde nasıl programlanır

DRAKON bağımsız bir programlama dili değildir. JavaScript, Python veya C++ gibi metin tabanlı bir dille birlikte çalışır. DRAKON, metin diliyle birlikte karma bir dil oluşturur: DRAKON-JavaScript, DRAKON-Python veya DRAKON-C++.


Hibrit bir dilde programlama şu şekildedir:

  1. Bir DRAGON şeması çiziyoruz.
  2. Simgelerin içine, ilgili programlama dilinde küçük kod parçaları yerleştiriyoruz.
  3. Çevirmen programı, DRAKON şemasını kaynak kodlu bir metin dosyasına dönüştürür.
  4. Bu metin dosyası projeye olağan şekilde dahil edilmiştir.
    Diyagramlardan kod üretimi şu anda birkaç editör tarafından desteklenmektedir. Bu makaledeki örnekler DRAKON Editor'da yapılmıştır.

Bir diyagramdan kod oluşturma

Diyagramda, DRAGON, yürütme akışının kontrolünü ele alır. Bu nedenle, simgelerdeki kaynak kod parçaları, aşağıdaki gibi anahtar kelimeler içermemelidir: eğer, başka, değiştirmek, dava, için, süre vb.


Simgelerin içinde yalnızca basit, açık kod bulunmalıdır: aritmetik ifadeler, değer atamaları, işlev çağrıları, karşılaştırmalar. Ancak dallanma ve döngüler, DRAKON dilinin yapıları tarafından uygulanır.



Kod oluşturma aşağıdaki gibidir:

  • Her diyagramdan bir fonksiyon oluşturulur.
  • Diyagramın adı, işlevin adı olur.
  • Fonksiyon parametreleri, diyagram adının sağ tarafında bulunan "Formal parametreler" simgesinden alınır.
  • Fonksiyonun gövdesi, diyagramın yapısına ve simgelerin içeriğine göre oluşturulur.

Şek. 1, DRAKON-JavaScript hibrit dilinde ve oluşturulan JavaScript kodunda küçük bir diyagram örneğini gösterir:


Metin içeren dikdörtgen konsol günlüğü (kedi, köpek) incirde. 1, "Eylem" simgesidir. Bir Eylem simgesine ne kadar kod yerleştirilebilir? Bir simgenin bir düşünce içermesini sağlamak için çaba gösterilmelidir. Bazen bir kod satırı, bazen birkaç satır.
Oluşturulan kod, simgelerin numaralarını gösteren yorumlarla sağlanır. Düzenleyicideyken Ctrl+I tuşlarına basarak herhangi bir simgeye hızlıca atlayabilirsiniz.

Şekil 1. DRAKON-JavaScript diyagramı ve ondan oluşturulan kod.

Soru Simgesi

Dallanma için Soru ve Seçim simgeleri kullanılır.


Simge "Soru" (Şekil 2) tasarıma karşılık gelir if-then-else.


kelimeler yerine dikkat doğru ve yanlış kelimeler kullanılır Evet ve Değil(geçilebilir Evet ve hayır).


"Doğru" ve "yanlış" - bir bilim adamının tarzında muhteşem görünüyor. Ancak, bir kişi erken çocukluktan tanıdık “evet” ve “hayır” a daha yakındır.


yazıtlar Evet ve Değil takas edilebilir. “Soru” simgesinden çıkışların konumu değişmeden kalır. Bir çıkış aşağı iner ve diğeri sağa gider. DRAKON dilinde dallanma her zaman sağa yönlendirilir, bu nedenle simgenin sol tarafından çıkmak yasaktır. Bu öngörülebilirlik, okuyucunun çıkışları nerede arayacağını önceden bildiği için grafiğin daha kolay okunmasını sağlar.


DRAKON dilinin bir başka özelliği de dallanma için tam eşkenar dörtgen değil, kesik bir eşkenar dörtgen kullanılmasıdır. Bu, grafikte yerden tasarruf sağlar.




İncir. 2. Soru Simgesi

Görsel mantık formülleri

DRAKON dili mantıksal operatörleri gereksiz kılıyor Ve, VEYA ve OLUMSUZLUK, ve "eşit değil" operatörü. Mantıksal işlemlerin kendileri elbette gereklidir. Ancak metin operatörleri yerine DRAKON görsel mantıksal formüller sunar.


Görsel bir mantıksal formül elde etmek için birkaç Soru ikonunu bağlamalısınız (Şekil 3'teki gibi).


İnkardan kurtulmak özellikle hoş. İnkar sezgisel değildir, hatalar ve rahatsızlık getirir. Olumsuzlama (mantıksal operatör OLUMSUZLUK) etiketleri yeniden düzenlenerek DRAKON dilinde elde edilir. Evet ve Değil.


Mantıksal ifadelerin metin gösterimi kesinlikle daha kompakttır. Ancak, görsel formüllerin okunması daha kolaydır. İşlenen değerlerinin olası kombinasyonlarının her biri bir parmakla izlenebilir.




Şek. 3. Görsel mantık formülleri

Bir ok ile döngü

DRAKON dilinde normal yürütme sırasını belirtmek için oklara gerek yoktur. Bir sonraki simge her zaman alttadır. Ok, yalnızca yürütme akışının diyagramı yukarı atlaması gerektiğinde gereklidir. Böyle bir yukarı sıçrama, bir döngü anlamına gelir. Bu nedenle DRAKON dilindeki ok bir döngünün işaretidir. DRAKON şemasına üstünkörü bir bakışla oklar hemen fark edilir. Bu, döngülerin hemen görünür olduğu anlamına gelir. Bu, diğer grafik dillerine kıyasla DRAKON'un ciddi bir avantajıdır. Döngü aramak zorunda değilsiniz.


Yani, “Soru” simgesini bir okla birleştirirseniz, bir döngü elde edersiniz. Bu yapıların bir analogudur. süre ve yaparken. Şekil 4, çeşitli ok döngülerini göstermektedir.
Döngüdeki oklu "Soru" simgesi, döngünün çıkış durumunu kontrol eder. Tabii ki, bir "Soru" simgesi yerine birkaç tane olabilir. Ardından, döngüden çıkmaktan görsel mantıksal formül sorumludur.




Şekil 4. Ok döngüleri

Seçim Simgesi

“Soru” simgesi mantıksal bir ifade içerir, yani iki değer alabilir: Evet ve Değil. Tipik bir örnek, iki nesneyi karşılaştırmaktır. Bazı ifadeleri birkaç değerle karşılaştırmanız gerekirse, "Seçim" simgesi kullanılır (Şekil 5). Bu tasarımla uyumludur cadı davası.


"Seç" simgesindeki ifadenin karşılaştırılacağı değerler "Seçenek" simgelerine yerleştirilir. En sağdaki seçenekte metin yoksa, "diğer tüm değerler" anlamına gelir. Böyle boş bir seçenek bir anahtar kelime gibidir varsayılan operatörün içinde değiştirmek.
En sağdaki seçenek, yukarı çıkan bir okla bitebilir. Bu durumda yine bir ok döngüsü ile uğraşıyoruz. Böyle bir döngüde, çıkış koşulundan “Soru” simgesi değil “Seçim” simgesi sorumlu olacaktır.




Şekil 5. Seçim Simgesi ve Seçenek Simgeleri

Simge "Çevrimi İÇİN"

Döngüler yerine için ve her biri için DRAGON-JavaScript "LOOP FOR" simgesini kullanır. "Çevrim İÇİ" (Şek. 6) simgesi birkaç türde olabilir.


anahtar kelimeden sonra ise her biri için ve noktalı virgülden önce bir değişken vardır, dizi üzerinde yineleme yapmak için kod oluşturulur. Dizi öğeleri (ancak dizinleri değil) değişkene yerleştirilecektir.


anahtar kelimeden sonra ise her biri için iki değişken vardır, DRAKON Editor nesnenin özellikleri (karma tablo girişleri) üzerinde yinelemenin gerekli olduğunu anlayacaktır. Numaralandırmaya yalnızca nesnelerin kendi özellikleri dahil edilecektir.


Döngünün üçüncü versiyonu, noktalı virgülle ayrılmış üç ifadenin varlığını ima eder. Bu geleneksel döngüdür. için C ve Java dilleri için tipik olan .


“Cycle FOR” simgesinin kontrolü altındaki döngüden “Soru” veya “Seçim” simgesi kullanılarak erken çıkış mümkündür. Bu çıktı kabaca anahtar kelimeye karşılık gelir kırmak.




Şekil 6. DRAGON-JavaScript'te "Döngü İÇİ" Simgesinin Farklı Görünümleri

Döngü başına yalnızca bir giriş

DRAKON dilinde çevrimlere bir kısıtlama getirilmiştir. Her çevrimin sadece bir girişi olabilir. Bu kısıtlamanın amacı okunabilirliği sağlamaktır. Bu kısıtlama, DRAKON'u Dijkstra'nın tanımladığı gibi yapılandırılmış programlama çerçevesinde tutar.


Birden çok döngü çıkışına izin verilir, ancak yalnızca bir giriş olmalıdır. Şek. 7, iki çıkışı olan döngüleri gösterir. İzin verilir. Şek. 8 yasak döngülerin örneklerini gösterir. Yasak çünkü farklı şekillerde girilebilirler.
Ancak bu yasak döngülerin görünümünü ezberlememelisiniz. DRAKON Editor bu tür döngüleri otomatik olarak algılayacak ve bir hata üretecektir.




Şekil 7.İki çıkışa sahip izin verilen döngüler


Şekil 8.İki girişli yasak döngüler

Metin yapılı programlamadan farklılıklar

Gördüğünüz gibi, DRAKON dilinin simgeleri ve makro simgeleri, metin tabanlı yapılandırılmış programlamanın standart yapılarına karşılık gelir. Bununla birlikte, farklılıklar da vardır. Metin, girintili olsa bile tek boyutlu bir nesnedir. Ve diyagram iki boyutludur. Diyagramda, ifade gücünü artıran ek bir serbestlik derecesi görünür. Örneğin, tekrarlamadan metin tabanlı bir programlama dilinde deneyin ve gitŞekil 1'deki gibi bir algoritmayı tasvir edin. 9.


Metne kıyasla ek özgürlüğe rağmen, DRAGON hala anarşiyi vurmanıza izin vermiyor. Kuralları düzensizliği önleyecek kadar katıdır. DRAKON, esneklik ve titizlik arasında makul bir uzlaşma sağlar.



Şekil 9. Yalnızca metinle tasvir edilmesi zor bir algoritma

Bir grafik dilin faydaları

DRAKON dilinin ilginç bir kaderi var. Temel ilkeleri Dijkstra'nın kendisi tarafından belirlendi. DRAKON, şu anki halini Rus uzay endüstrisinin derinliklerinde aldı. DRAKON dilinin kurallarının tesadüfen oluşmamış olması dikkat çekicidir. Önce odak gruplarında test edildiler ve ardından gerçek uzay projelerinde mükemmelleştirildiler.
Peki DRAGON'un güçlü yönleri tam olarak nedir?


DRAKON'un grafiksel bir dil olduğu gerçeğiyle başlayalım. Ve bir grafik dilin metne göre temel avantajları vardır.


İlk olarak, düşünceler çizgiler boyunca rastgele bulaşmaz, kareler veya simgeler içine alınır. Bir düşünce - bir kare. Farklı düşünceler bir karmaşada birbirine yapışmaz.


İkinci olarak, algoritmadan geçen yol bir parmakla (veya bir bakışla) izlenebilir. Sonrasında eğer aramaya gerek yok başka. Çizgiyi takip edin ve sağ kareye ulaşacaksınız. Şu soruya bir cevap aramak için gözlerinizi kaynak kodun üzerinde gezdirmeye gerek yok: Sonra ne oldu?


Grafiklerin de neredeyse sihirli bir özelliği vardır. Bir kişi bir şemaya bakar ve aniden ek bir anlayış gelir. Daha önce görünmeyen bağlantılar görünür hale gelir. Bu nadiren metinle olur.

Özel ergonomik kurallar

Ancak DRAKON sadece çizelgeler değil, ayrıntılı çizelgelerdir. DRAGON diyagramlarının anlaşılması, geleneksel akış şemalarından daha kolaydır. Bu, özel ergonomik tekniklerle sağlanır. İşte onlardan bazıları.

  • Hat geçişleri yasaktır. Genel olarak. Kavşaklar, görsel analizcimizi çizgilerin birbirine değdiğinden şüpheleniyor, bu da bir şekilde bağlantılı oldukları anlamına geliyor. Bu şüpheler ek zihinsel çalışma yaratır. Gereksiz işler atılmalıdır.
  • Başlangıç, algoritmanın adını içerir ve her zaman diyagramın sol üst köşesinde bulunur. Bu nedenle, başlangıç ​​için aramanıza bile gerek yoktur. Genelde olduğu yerdedir.
  • Diyagramın sadece bir ucu vardır. Yol boyunca ne olursa olsun (istisnalar hariç), her zaman sona geleceğiz.
  • Yalnızca düz çizgilere izin verilir. Eğriler ve kıvrımların yanı sıra gereksiz bükülmeler yok.
  • Yalnızca kesinlikle dikey ve kesinlikle yatay çizgilere izin verilir. Eğimli çizgiler yasaktır. Matematik hayranları için açıklama: DRAKON şeması düz bir dikdörtgen grafiktir (Manhattan grafiği). İnsan görsel aparatı, düz dikey çizgilerle birbirine bağlanan nesneleri anında kavrar. Ancak Amerikan Rüyası Eğrisinin nereye gideceğini takip etmek, okuyucunun ek konsantrasyonunu gerektirir.
  • DRAKON şeması yukarıdan aşağıya doğru yürütülür. Bu kural, bir sonraki simge için grafiği çılgınca tarama ihtiyacını ortadan kaldırır. Bir sonraki simge her zaman alttadır. Giriş, simgenin en üstünde, çıkış ise alttadır. Bir sonraki simgenin nerede olduğunu bildiğimiz için oklara gerek yoktur. Yeterince basit çizgiler. Her simgenin yanındaki oklar görsel gürültüdür. Oklardan simgeleri bağlama görevini kaldırdıktan sonra, onlara özel bir görev atayabilirsiniz. DRAKON'da ok, bir döngü anlamına gelir.
  • Dallanma sadece sağda gerçekleşir. Bu, öngörülebilirlik ve tekdüzelik açısından büyük bir yardımdır.
  • Aynı dikeyde bulunan simgeler aynı genişliğe sahip olmalıdır. Bu, simgelerin tek bir bütüne ait olduğu hissini verir. Herkes aynı genişliğe sahip olduğunda ve açılır simgeler olmadığında, göz diyagram üzerinde kolayca ve serbestçe kayar.

Yukarıdaki kurallar büyük pratik değere sahiptir. Bir yandan, sanatçının çılgınlığını dizginlemek için tasarlandılar. Onlarla karmaşık bir diyagram oluşturmak daha zordur. Öte yandan, çizelgelere tanınabilirlik getirirler. Diyagramlar sadece yazarları için netleşmez.


Şek. Şekil 10 ve 11, gerçek örnekler kullanarak DRAKON dilinin ergonomik tekniklerini göstermektedir.




Şekil 10. Bir örnek üzerinde DRAKON dilinin ergonomik teknikleri


Şekil 11. DRAKON dilinde başka bir diyagram örneği
Ergonomik tekniklerin yanı sıra DRAKON dili, başka hiçbir yerde bulunmayan benzersiz özelliklere sahiptir.

Ne kadar doğru, o kadar kötü

DRAGON'un görüntü için bir aracı var mutlu yol, veya Kraliyet Yolu. Kraliyet yolu, algoritmanın en başarılı yoludur. Bazı algoritmalarda “başarılı/başarısız”, “iyi/kötü” kavramları uygulanamaz. Onlarda kraliyet yolu en çok beklenen yolu gösterir. Kraliyet yolu, diyagramın sol tarafında bulunan dikey boyunca uzanır. Bu dikeye şiş denir. Daha az olası ve daha az başarılı senaryoların yanı sıra hata işleme, diyagramın sağ tarafında yer alır. Dahası, durum ne kadar kötüyse, o kadar sağa yerleştirilmelidir. İstisnalar atan veya diyagramın sağına bir hata kodu döndüren kodu yerleştirmek iyi bir stildir.


ortak kader

Bazen, algoritma boyunca farklı yollarda farklı, ancak bir şekilde ilgili eylemlerin gerçekleştirilmesi gerekir. Örneğin bir değişkene farklı değerler koyun. Ortak bir kader, ilgili eylemlerin farklı dikey çizgilerde, ancak aynı yatay çizgide yer almasıdır.


Pirinç. 12, kraliyet yolu ile bir şişin yanı sıra “ortak kader” tekniğinin kullanımını gösterir.




Şekil 12. Kraliyet yolu ve ortak kader

Siluet

Siluet, EJDERHA'nın gerçek bir pırlantasıdır. Siluet, diyagramı mantıksal parçalara ayırmanıza izin verir. Programlamada bu genellikle altyordam ayrıştırması kullanılarak yapılır. Alt programlar güçlü bir yöntemdir. Ancak bazen, alt programı görsel olarak ana programa yakın bir yere yerleştirmek ve ayrıca parametreleri geçmek ve değerleri döndürmek ile uğraşmaktan kaçınmak istenebilir. Bu amaçlar için siluet mükemmeldir. Siluetin başka bir kullanımı sonlu durum makineleridir. Ama bunu başka bir yerde konuşacağız.
Algoritma bir düzlemde ayrıştırılamaz, böylece çizgilerin kesişimi olmaz. Bu durumda, duruma bağlı olarak, ya altyordamlar kullanılarak ayrıştırma ya da bir siluet kullanılır.


Siluet, tek bir bütünleşik bloğa bağlanan birkaç küçük diyagramdan oluşur. Bu küçük diyagramlara siluet dalları denir. Her dalın üstünde "Şube Başlığı" simgesi, altta "Adres" simgesi bulunur. Şube başlığında şubenin adı, adreste ise bir sonraki şubenin adı belirtilir. Şube adları, diyagramın üst kısmındaki yatay bir satırda bulunur. Bu sayede sadece dal başlıklarından geçerek algoritmanın özünü yakalayabilirsiniz. Siluet üç asil soruyu yanıtlıyor:

  1. Sorunun adı nedir?
  2. Kaç parçadan oluşur?
  3. Bu parçalara ne ad verilir?

Şekildeki örneği düşünün. 13. Kraliyet sorularının cevapları:

  1. Sorunun adı nedir? Bağlantılı listeyi sıralayın.
  2. Kaç parçadan oluşur? Dört üzerinden.
  3. Bu parçalara ne ad verilir? Bir bağlantı matrisi oluşturun. Döngüleri kontrol edin. İlişki matrisini gözden geçirin. Tamamlamak.


Şekil 13. DRAGON-şeması "siluet"

Siluet döngüsü

Siluet dalları soldan sağa doğru sıralanmalıdır. Bazı durumlarda, bazı şubeleri veya şube gruplarını birkaç kez yürütmek gerekir. Bu tasarıma siluet döngüsü denir. "Adres" ikonu kendi şubesini veya solunda bulunan bir şubeyi gösteriyorsa, özel bir etiketle işaretlenmelidir. Aynı etiket ilgili "Dal Başlığı" simgesine de yerleştirilmelidir (bkz. Şekil 14). Etiketin amacı silüet döngüsünü görünür kılmaktır.




Şekil 14. Siluet döngüsü ve etiketleri

Siluet dallarının bağlanması yasaktır

İki siluet dalının bağlantıları (Şekil 15'teki gibi) yasaktır. Siluet içindeki her dal bağımsız olmalıdır.




Şekil 15. Siluet dallarının bağlanması yasaktır.

Grafik boyutu

DRAKON dilinde programlama yaparken şu soru ortaya çıkar: diyagramlar ne büyüklükte olmalıdır? Cevap: Ne kadar az, o kadar iyi. Görsel sahnede ne kadar az nesne olursa o kadar net olur. Metin programlamada böyle bir kılavuz vardır: tüm işlevin ekrana sığması iyidir. DRAKON şemaları için de benzer tavsiyeler verilebilir. Büyük çizelgelerden kaçının. Algoritmanın tamamı bir bütün olarak görüldüğünde, anlaşılması çok daha kolaydır.
DRAKON'da programlama yapmak için büyük bir monitöre sahip olmak daha iyidir. En az 1080 puan yüksekliğinde. O zaman DRAKON şemalarını yapay olarak kısaltmanız gerekmeyecek.


DRAGON şeması siluet ekrana yükseklikte sığmalıdır, ancak genişlik olarak olması gerekmez. diyagramlar siluet oldukça geniş olabilir, 2000 pikselden çok daha geniş olabilir. Bu iyi. Siluetin tüm dallarını aynı anda görmek gerekli değildir. Ana şey, şu anda üzerinde çalıştığınız dalın ekranda tam olarak görünmesi gerektiğidir.

DRAKON programlama eleştirisi

DRAKON programcılığına yönelik eleştirilerin ana yönlerini ele alalım ve bunlara cevap vermeye çalışalım.

  • "DRAGON şemaları, metin tabanlı programlardan daha fazla ekran alanı kaplar." Bu doğru. Ancak DRAGON'un görevinin karmaşıklığı olduğu gibi göstermek olduğunu unutmamalıyız. Programın okuyucusu karmaşık yapıları kafasında açmak zorunda değildir. Ona açıkça gösterilmelidirler.
  • "Basit algoritmalar metin biçiminde daha iyi görünür." Belki. Merhaba dünya herhangi bir dilde zarif görünüyor. Ancak gerçek hayatta her şey basit değildir. Biri ortaya çıkar çıkmaz eğer diğerinde yuvalanmış eğer, DRAGON kazanır.
  • "DRAGON'un istisnaları gösterecek bir yolu yok." Böyle bir sorun var. DRAKON diline son zamanlarda istisnalar eklendi, ancak tüm uygulamalar bunları desteklemez. Uygulamalar zamanında olmasa da uygun programlama dilinde try/catch blokları yazabilirsiniz.
  • "DRAGON şemalarının çizilmesi uzun zaman alır." DRAGON diyagramlarını özel düzenleyicilerde çizmek, örneğin Visio'da olduğundan çok daha kolaydır. Ve bazılarında çizim yapmak neredeyse yazmak kadar kolay hale geldi.
  • "Fark ve birleştirme için eksik araçlar." Bu maalesef böyle. Bir sürüm kontrol sistemi ile çalışırken, oluşturulan kaynak dosyaları karşılaştırmanız gerekir.
  • "DRAKON şemalarında hata ayıklamak için hiçbir araç yok." Bu doğru. Ancak oluşturulan kodda hata ayıklayabilirsiniz. Belirli bir kod parçasının diyagramda nereye ait olduğunu gösteren etiketlere sahiptir.

Dragon diline genel bakış

Şekil 16, DRAKON diline genel bir bakış sağlar.




Şekil 16. Dile genel bakış DRAKON

Ejderha dili araçları

DRAKON dilinin ilk uygulaması GRAPHITE-FLOX sistemiydi (Şekil 17). GRAPHITE-FLOX 1986-1996'da kuruldu. Federal Devlet Üniter Girişim NPT'lerinin uzmanları AP im. Pilyugin, V.D. Parondzhanov. Bu ortam, fırlatma araçları ve uzay araçları için kontrol sistemlerinin tasarımı için tasarlandı.


GRAPHITE-FLOX kapalı bir gelişmedir, bu nedenle bu konuda nispeten az şey bilinmektedir. GRAPHITE-FLOX kullanılarak oluşturulan bir uzay aracı listesi görüntülenebilir.


90'ların başında başka bir DRAKON editörü yaratıldı. Geliştirme, M.V.'nin adını taşıyan Uygulamalı Matematik Enstitüsü'nde gerçekleştirildi. Keldysh, L.K. Eisymont. Eisymont'un düzenleyicisi (Şekil 18) indirilebilir ve çalıştırılabilir, ancak artık desteklenmemektedir. Editör MS DOS altında yazılmıştır, bu nedenle DOSBox'ın modern bilgisayarlarda çalışması gerekebilir.


2008 yılında, Gennady Tyshov'dan IS Dragon'un editörü serbest bırakıldı (Şekil 19). IS Dragon aktif olarak desteklenir ve geliştirilir. IS Dragon, şemalardan program kodunun oluşturulmasını uygular. IS Dragon'un ilginç özelliklerinden biri, bir programlama dilinde bir kod ve doğal bir dilde bir açıklamayı tek bir simgeye yerleştirme yeteneğidir. IS Dragon'un koşulsuz saygınlığı, sözde "simgelerin hesabı"dır. Simge hesabı, kullanıcının diyagram çizmesine yardımcı olan ve diyagramın DRAKON dilinin kurallarını ihlal etmemesini sağlayan bir düzenleme tekniğidir. IS Dragon'un eksiklikleri arasında standart olmayan bir kullanıcı arayüzü ve kod oluşturmadaki bazı rahatsızlıklar not edilebilir. IS Dragon ticari bir üründür.


DRAKON Editor, başka bir modern DRAKON editörüdür (Şekil 20). DRAKON Editor, Stepan Mitkin liderliğindeki bir grup meraklı tarafından geliştirildi. DRAKON Editor simge hesabını desteklemez. Bu, DRAKON şemalarının, vektör grafik editörlerinde olduğu gibi, ilkellerden manuel olarak monte edildiği anlamına gelir. Ancak DRAKON Editor'daki kullanıcı arayüzü mümkün olduğu kadar basittir. IS Dragon'dan daha tanıdık bir düzende inşa edilmiştir. DRAKON Editor ortamının ana avantajı, programlama ve kod oluşturma kolaylığıdır. DRAKON Editor, C, C++, C#, Java, Processing, JavaScript, Lua, Erlang, Python, Tcl, Verilog, AutoHotkey, D ve Go dahil olmak üzere birden fazla programlama dilini destekler. Bazı diller için durum makineleri oluşturmak mümkündür. Nools uzman sistemi için kurallar desteklenir. E. Tyugu tarafından UTOPIST dilinin bir alt kümesini uyguladı. DRAKON Editor açık kaynak kodludur.


DRAKON dili için ilginç bir uygulama Oleg Garipov tarafından Integrator CodeView projesinde icat edildi. CodeView, mevcut kodu birbirine bağlı bir DRAGON şemaları seti olarak görselleştirmenizi sağlar. Entegratör CodeView'un özelliği, bireysel yöntemlerin değil, çağrı grafiği, yığın vb. dahil olmak üzere tüm projenin görselleştirilmesidir. Entegratör CodeView, yalnızca algoritmaları değil aynı zamanda verileri de görsel olarak göstermesi bakımından benzersizdir. Entegratör sistemindeki veri görselleştirme motoru DRAKON ile birlikte çalışır.


DRAKON Editor Web, DRAKON diline dayalı ticari bir bulut tabanlı çözümdür. DRAKON Editor Web, teknik özellikler, iş prosedürleri ve kontrol listeleri için tasarlanmıştır. DRAKON Editor Web, DRAKON Editor ile hiçbir şekilde bağlantılı değildir ve diyagramlardan kod oluşturmayı desteklemez. DRAKON Editor Web'in avantajları arasında uygun bir editör, işbirliği ve mobil cihazlar için destek belirtilmelidir.




Şekil 17. GRAPHITE-FLOX sisteminde DRAKON şeması


Şekil 18. DRAKON editörü Eisymont


Şekil 19. IS Dragon'da açıklamalar içeren program


Şekil 20. DRAKON Editörü

sonuçlar

Özetleyelim. DRAKON, uzayda sertleştirilmiş pratik bir dildir. Akış şemalarına yapı, düzen ve tekdüzelik getirdi. DRAKON şemalarının öngörülebilirliği ve temizliği, görsel programlamanın İşler.


Gerçek projelerin deneyimi, DRAKON üzerinde programlamanın mümkün olduğunu göstermiştir. Bir yandan, DRAGON metinden daha etkileyicidir. Diğer yandan programların okunabilirliğini arttırır. Ayrıca, DRAGON şemaları şeklindeki programlar, tıpkı bir uzaylı uzay gemisinden olduğu gibi görünüyor (birçok şey renk şemasına bağlı olsa da). Şahsen ben kolayca DRAKON'a geçtim. Aksine, bazen geleneksel metin stilinde programlamanız gerektiğinde sakıncalıdır.

Etiket ekle

"DRAKON" dilinin yaratılış tarihi

DRAKON dili, öncelikle insanlar arasında kusursuz karşılıklı anlayışı sağlamak için bir araç olarak yaratılmıştır. Buran uzay aracının tasarımında kazanılan deneyimin özetlenmesi sonucu ortaya çıktı.

DRAKON grafik dili, karmaşık bir algoritmayı basit bir resme (ejderha diyagramı) dönüştürmek için özel olarak tasarlanmıştır ve "Bak - ve hemen anla" ilkesiyle hızlı ve kolay anlama sağlar! Bölüm 1. EJDERHA kozmik beşikte doğdu
Bölüm 2. DRAKON dili, anlaşılabilir algoritmalar dünyasının kapısını açar
Bölüm 3. Bilgeliğe giden yol. DRAKON dili ve medeniyetin temel sorunları

Bölüm 1. "DRAKON" dili bir uzay beşiğinde doğdu, ancak çok geçmeden "kısa uzay külotlarından" çıktı.


`` Slide 1. DRAKON grafik dili, karmaşık bir algoritmayı basit bir resme (ejderha diyagramı) dönüştürmek için özel olarak tasarlanmıştır, bu da "Bak - ve hemen anlaşılır" ilkesiyle hızlı ve kolay anlama sağlar! ''

Nikolai Pilyugin ve çocukları.

"Ejderha" nın kökenleri

DRAKON dili, Rus Uzay Ajansı (NA Pilyugin Otomasyon ve Enstrümantasyon Araştırma ve Üretim Merkezi, Moskova) ve Rusya Bilimler Akademisi (M.V. Keldysh Uygulamalı Matematik Enstitüsü, Moskova) tarafından ortaklaşa geliştirildi.

Akademisyen Nikolai Pilyugin (1908-1982) - roket ve uzay sistemleri için otonom (tam otomatik) kontrol sistemlerinin kurucusu. Kozmonotiğin öncülerinden biri olarak ülkemizde fırlatma araçları, üst aşamalar ve diğer uzay nesneleri için otonom kontrol sistemleri geliştiren ilk enstitüyü kurdu.

Şefin yıldönümlerinden birinde, ona adanmış dizeler duyuldu:

Roket kör bir keçi gibidir!

İçinde hem anlam hem de parlaklık olsun diye,

Bir roketin gözlere ihtiyacı var

Ve en önemlisi - beyin!

Ve sen sonsuz endişeler ve gürültüler arasındasın,

Anne ilk doğanlara öğretirken,

Roketlere bakmayı ve düşünmeyi öğrettiler,

Ve bu uçmak demektir!

1957'de ilk uydunun fırlatılması dünyayı şok etti ve Amerikalıları şaşırttı. Yuri Gagarin'in 1961'deki uçuşu Sovyet bilimi için bir zaferdi. SSCB'nin ulusal kahramanı efsanevi tasarımcı Sergei Korolev'in fantastik projeleri hayat buldu ve gerçeğe dönüştü. Cesur projelerine entelektüel destek, roketin "sinir sistemi" - Nikolai Pilyugin tarafından oluşturulan yerleşik kontrol sistemi tarafından sağlandı.

Zamana ayak uyduran Pilyugin, kontrol sistemini analogdan dijital teknolojiye aktardı. Bu, güçlü yerleşik bilgi işlem sistemlerinin ve karmaşık programlama teknolojilerinin geliştirilmesini gerektiriyordu.

Yakında beklenmedik bir engel keşfedildi - insan faktörü araya girdi.Uzay sistemleri ne kadar karmaşık hale geldiyse, geliştiriciler arasında kusursuz bir anlayışa duyulan ihtiyaç o kadar güçlüydü. Karşılıklı anlayış eksikliği, büyük füze projelerinin ilerlemesi üzerinde acı verici bir etkiye sahipti. Karşılıklı anlayış sorunu, Energia-Buran uzay kompleksinin yaratılması sırasında özellikle keskin bir şekilde kendini gösterdi.

İleriye baktığımızda, DRAKON dilinin öncelikle insanlar arasında kusursuz karşılıklı anlayış sağlayan bir araç olarak yaratıldığını varsayalım. Buran uzay aracının tasarımında kazanılan deneyimin özetlenmesi sonucu ortaya çıktı.

` Slayt 2. Amerikan Uzay Mekiği ve Sovyet Buran, süper karmaşık uzay projeleridir. Bilim ve yüksek teknolojinin birçok alanında, özellikle yeni algoritmik diller oluşturma alanında yaratıcı aramayı teşvik ettiler. Ülkemizde de bu çabaların sonucu, kısa sürede “kısa alan külotu”ndan türeyen DRAKON dili olmuştur. Bugün, DRAGON, insan faaliyetinin ve algoritmaların yapısını tanımlamaya uygun, zihnin çalışmasını geliştirmek için güçlü bir araçtır. ''

entelektüel nedir

anlayış?

Modern uygarlık, büyük ölçekli araştırma ve geliştirme olmadan düşünülemez. Projeler giderek büyüyor. Büyük projelere örnek olarak Uzay Mekiği ve Buran, nükleer santraller ve kimya tesisleri verilebilir. Teorik fizik, biyoloji, tıp vb. alanlardaki bilimsel araştırmalar sürekli olarak daha karmaşık hale geliyor. Tüm bu durumlarda, şu soru ortaya çıkar: işin ortak yürütücüleri arasında karşılıklı anlayış nasıl sağlanır?

Zorluk, her araştırmacı ve geliştiricinin, ortak nedendeki her katılımcının, çok karmaşık (fikir derinliğinde) çalışma alanını da olsa, yalnızca nispeten küçük (boyut olarak) iyi bilmesidir. Ve oldukça belirsiz bir şekilde komşularla neler olduğunu hayal ediyor. Bu nedenle kavşaklarda karşılıklı yanlış anlamalar, tutarsızlıklar ve hatalar.

Şunu sormak mantıklı: Sorunun nedeni nedir? Ortak çalışmaya katılan uzmanlar arasında etkin etkileşimi sağlamak için çok büyük kaynaklar (insan, malzeme, finansal ve zaman) gerekli değil mi? Neden büyük araştırma ve geliştirme projeleri genellikle aylarca hatta yıllarca sürer?

Buran yörünge aracının geliştiricileri, bu tür veya yaklaşık olarak bu tür sorunlarla karşı karşıya kaldı. Buran'ın deneyimi, uzmanların karşılıklı entelektüel anlayışı konusunun genellikle kilit, temel bir rol oynadığını ve bir işletmenin başarısını büyük ölçüde belirlediğini göstermektedir. Buran'ın yerleşik ve yer programlarının en karmaşık kompleksini yaratırken, tamamen karmaşık problemlerin ustaca bir karmaşasını çözmek gerekir. Bu nedenle, birçok farklı kuruluştan farklı mesleklerden uzmanlardan oluşan bir ordu savaşa girer. İşin ilk aşamasında, bu insanlar birbirlerini çok az anlıyorlar. Bu, sorunun yasaklayıcı karmaşıklığının ve bununla ilişkili dar uzmanlığın, “lavman uzmanları” “bahşiş uzmanlarını” anlamadığında gülünç, ancak ne yazık ki gerçek bir paradoksa yol açtığı durumdur.

Ancak yarattıkları, daha çok ilkel algoritmik kaosu andıran, göze çarpan tutarsızlıkların yıldırımları tarafından parçalanan algoritmalar, sonunda Buran'ı muhteşem doğruluk ve güvenilirlikle kontrol eden tek bir telkari kalıba dönüşmelidir.

Dolayısıyla sorun dünya kadar eskidir. Babil Kulesi'ni inşa edenlerin üzücü kaderinden kaçınmak için karmaşık bir projeye katılanlar birbirlerini çok iyi anlamayı öğrenmelidir. Aksi takdirde, "kavşaklarda" çok sayıda hata, geliştirmenin başarısını engelleyebilir.


`` Slayt 3. Anlamak iş olarak görülmelidir. Bu emeğin üretkenliğini kökten artırmak (belki de bir büyüklük sırasına göre) gereklidir. "DRAKON" un çözdüğü bu görevdir. ''

"Ejderha" hikayesi nasıl başladı?

1982 yılında, Pilyuginsky Merkezi'nin karmaşık bölümünün başkanı (bugün - Genel Tasarımcı) Yuri Trunov, Buran kontrol sisteminin entegre geliştirilmesinden sorumlu olarak atandı. Trunov açıkça anladı: Etkili üst düzey algoritmik diller olmadan, Buran'ın geliştirilmesi imkansız.

Girişimiyle, SSCB Bilimler Akademisi Uygulamalı Matematik Enstitüsü ile birlikte üç dil oluşturuldu: PROL2 (karmaşık programlarda Buran'ın geliştirilmesi için), DIPOL (Buran yer programlarının oluşturulması için) ve LAKS ( modelleme için). Çalışma, Viktor Kryukov, Vladimir Lutsikovich ve Konstantin Fedorov liderliğindeki üç programcı ekibi tarafından gerçekleştirildi. Bu, tabiri caizse, DRAGON'un arka planıydı.

Diller belirlenen görevleri başarıyla çözmüş olsa da, dillerin dar uzmanlaşmasının yoluna girdiği anlaşıldı. Bu bağlamda, 1986'da Yuri Trunov, Buran bilgisayar sisteminin entegre gelişimi için laboratuvar başkanı Vladimir Parondzhanov'u çağırdı ve ona yukarıdaki üçünün yerini alabilecek evrensel bir dil yaratmasını söyledi.

"Dragon" dili için insani gereksinimler

Ancak Parondzhanov sorunu farklı bir şekilde ortaya koymaya karar verdi. Yeni dilin yalnızca uzay teknolojisinin pratik ihtiyaçlarını karşılamakla kalmayıp, aynı zamanda geleneksel programlamanın çok ötesine geçen son derece geniş bir dizi sorunu çözmesi gerektiğine inanıyordu.

Bu bağlamda, DRAKON dili oluşturulurken programcılar, matematikçiler ve "teknisyenler" için alışılmadık insani gereksinimler ortaya kondu.

1. İnsan zihninin işleyişini iyileştirin.

2. İnsan faaliyetinin yapısını tanımlamak için etkili araçlar sunun.

3. Bir kişiye karmaşık prosedürel problemlerin algılanmasını ve meslektaşları ile iletişimi önemli ölçüde basitleştiren, anlaşılmaz olanı anlaşılır kılan ve bu nedenle bir kişiyi tam anlamıyla net, derin ve üretken bir şekilde düşündüren dil araçları sağlamak. Bu koşullar altında yanılgı, yanlış hesap ve hata olasılığı kaçınılmaz olarak düşer ve verimlilik artar.

4. Farklı organizasyonların, bölümlerin, bölümlerin, laboratuvarların, bilim okullarının ve mesleklerin temsilcileri arasında sektörler arası ve disiplinler arası iletişimi kökten kolaylaştırın.

5. Çeşitli uzmanlık alanlarından (doktorlar ve fizikçiler, matematikçiler ve tasarımcılar, biyologlar ve ekonomistler, vb.) çalışanların yanı sıra programcılar ve herhangi bir programlamaya alerjisi olanlar arasındaki karşılıklı yanlış anlama engellerini ortadan kaldırın veya azaltın.

6. "Algoritmaların ve programların anlaşılabilirliği" açısından yazılım kalitesinde temel bir gelişme sağlamak.

`` Slayt 4. Pek çok programcı, altı ay, hatta bir ay sonra bile kendi programlarını güçlükle anladıklarından şikayet ederler. Ya bu başka birinin programıysa? O zaman gerçekten zor oluyor. Kendi programınızı yazmak, başka birinin ne yaptığını anlamaktan genellikle daha kolaydır. Bu nedenle modern algoritmik dillerin gereksinimleri arasında programların anlaşılırlığı (anlaşılabilirlik) giderek daha fazla ön plana çıkmaktadır. İkincisi, onu anlamak için gereken entelektüel çabayı en aza indirmek için bir programın özelliği olarak tanımlanır. DRAKON dili, algoritmaların ve programların mümkün olan en iyi şekilde anlaşılmasını sağlamak için tasarlanmıştır. Geliştiricilere göre, bu kriter ile algoritmik diller arasında "dünya şampiyonu" olabilir. ''

"Ejderha" dilinin bilimsel temelleri

DRAKON temelde yeni bir bilimsel temele sahiptir. "İçten dışa" klasik Ashcroft-Manna teoremine dayanır. Vladimir Parondzhanov, DRAKON dilinin grafik sözdiziminin grafiksel bir mantıksal hesap (“simge hesabı”) olduğunu kanıtladı.

Ancak, ana nokta bu değil. Herhangi bir dilin bir tür matematiksel zevki vardır. Matematiksel titizlik, dil tasarımcıları için bir zorunluluktur. Yani matematik bugünlerde sürpriz değil.

DRAKON'u bilinen tüm dillerden ayıran temel özelliği, sadece matematiksel değil, aynı zamanda güvenilir bir bilişsel-ergonomik temele sahip olmasıdır. Parondzhanov'un değeri, ilk kez göstermesidir:

İyi bir dil yaratmak için matematik tek başına yeterli değildir;

Buna bilişsel ergonominin fikirlerini eklemeliyiz;

Matematik ve ergonominin güçlü bir birleşimi, daha önce hayal bile edemediğiniz, niteliksel olarak yeni bir algoritmik dil düzeyi elde etmenizi sağlar.

Bu düşüncelere dayanarak, Parondzhanov, DRAKON dilini mesleki bilginin bilişsel-ergonomik biçimselleştirme yöntemlerine dayandırmayı önerdi.

`` Slayt 5. Algoritmaları ve karmaşık iş akışlarını anlamak, bunları açıklamak için DRAKON dilini kullanırsanız büyük ölçüde kolaylaştırılabilir. Ergonomi, insan faktörlerinin bilimidir. Bilişsel ergonomi, profesyonel bilginin sunumunun temelde yeni görsel biçimlerinin yaratılmasına yardımcı olarak göz ve beynin çalışması için maksimum entelektüel rahatlık yaratır. ''

Slayt 6. DRAKON dili, algoritmaların olağanüstü netliğini ve benzeri görülmemiş görünürlüğünü sağlar. Bu koşullar altında, gizli algoritmik hataların ve bunlardan kaynaklanan sıkıntıların ve kazaların olasılığı defalarca azalır. Mecazi olarak konuşursak, algoritmada gizlenen hata algoritmik çizimden (ejderha şeması) dışarı fırlar, geliştiricinin burnunu kırar ve gök gürültülü bir sesle bağırır: “Beni fark edin!”.

"Ejderha" sistem yazılımını kim geliştirdi?

Viktor Kryukov ve Vladimir Lutsikovich'in (Uygulamalı Matematik Enstitüsü) fikirlerini geliştiren Pilyugin Merkezi çalışanları, çevirmenler ve diğer DRAKON sistem programlarını geliştirmeye başladı. Çalışma Konstantin Fedorov bölümünde gerçekleştirildi. En büyük yaratıcı katkı, sistem programlama laboratuvarı başkanı Vladislav Baltrushaitis'in yanı sıra Sergey Kashinsky, Alexander Semenov ve diğerleri tarafından yapıldı.

Gelişme keskin bir anlaşmazlık ortamında ilerledi. Olağanüstü yaratıcı kişilikler tek bir çatı altında toplandı ve her birinin gelecekteki dilin doğası ve gelişim yolları hakkında kendi bakış açısı vardı. Tartışma gece yarısına kadar sürdü. Saldırıya gelmese de küfür binayı yerle bir etti. Bunun, bu tür çalışmaların tarihinde algoritmik bir dilin en skandal gelişimi olması mümkündür.

Neyse ki, şiddetli sözlü çatışmalar ve sağır edici skandallar işin ilerlemesini engellemedi. Dahası, paradoksal olarak yeni fikirlerin ve keşiflerin doğuşuna katkıda bulundular. Ancak, bu şaşırtıcı değil - anlaşmazlıklarda gerçek doğar!

`` Slayt 7. Ejderha dili evrenseldir ve örneğin tıpta olduğu gibi insan faaliyetinin herhangi bir alanında kullanılabilir. Slayt, DRAKON dilinde yazılmış "Gözün Kimyasal Yanıkları İçin İlk Yardım" adlı tıbbi algoritmayı göstermektedir. Bu algoritma ilginçtir çünkü çeviri gerektirmez. Önümüzde, gözün kimyasal yanması için ilk yardım sağlaması gereken bir aile hekimi (pratisyen hekim) için bir talimat var. Bu durumda çeviriden bahsetmek anlamsızdır. Şimdiye kadar, programcılar ve matematikçiler bu tür talimatları görmezden geldiler - diyorlar ki, bunlar algoritma değil. DRAKON dilinin felsefesi açısından durum farklıdır. Bu tür talimatlar (ergonomik biçimselleştirme gerektiren) klasik olmayan algoritmalar olarak düşünülmelidir. DRAKON'un temel yeniliği, hem klasik (çeviri gerektiğinde) hem de klasik olmayan (çeviri gerekli olmadığında) algoritmalar için standart görsel araçlar sağlamasında yatmaktadır. ''

"Ejderha" geliştiricilerinin kampındaki bölünme

Bu arada gerginlik de arttı. İdeolojik farklılıklar eşi görülmemiş bir şiddete ulaştı ve bölünmeye yol açtı. "Muhalifler" grubuna Gennady Gülenkov (Pilyuginsky Merkezi) ve Leonid Eisymont (Uygulamalı Matematik Enstitüsü) başkanlık etti. Onlarla birlikte sektör başkanı Vladimir Gora, Lyudmila Vlasova, Sergey Shcherbakov, Larisa Tyurina, Alexander Kopylov, Viktor Mironov, Alexander Rusanov, Sergey Shmakov ve diğerleri çalıştı.

Anlaşmazlığın özü nedir? Fedorov-Baltrushaitis grubu, DRAKON dilinin (Grafit olarak adlandırılan) basitleştirilmiş bir versiyonunu savundu.

"Muhalif" Gülenkov-Eisymont grubu (Pilyugin Merkezi'nin liderlerinden biri olan Vladimir Morozov tarafından desteklenen) tam ölçekli DRAKON projesini savundu. Bu seçenek elbette daha umut vericiydi.

SSCB'nin çöküşü ejderhanın kanatlarını kesti

Ne yazık ki, "muhalifler" bir felaket yaşadı. İşte o anda dünyanın en büyük güçlerinden biri (SSCB) çöktü. Yeni Rusya'nın ekonomisi harabeye dönmüştü. Buran'ın ilk parlak uçuşundan sonra olaylar beklenmedik bir hal aldı. İkinci uçuş için tam hazırlık arifesinde, yukarıdan trajik bir emir geldi: "Uçuşu iptal edin!" Para eksikliği nedeniyle, Buran-Enerji projesi üzerindeki tüm çalışmalar önce güvenilmezdi ve sonra tamamen durduruldu. Sonsuza dek. Sonsuza dek.

Yeni Rusya'da uzay gelişiminin finansmanı neredeyse sıfıra düştü. Pilyugin Merkezi ile Rusya Bilimler Akademisi Uygulamalı Matematik Enstitüsü arasındaki on yıllardır inşa edilen en yakın işbirliği neredeyse tamamen yok edildi. Pilyugin'in firmasının uzun yıllardır Uygulamalı Matematik Enstitüsü için güvenilir bir finansman kaynağı olduğunu ve karşılığında paha biçilmez entelektüel hizmetler ve gelişmeler aldığını hatırlamakta fayda var.

Ama artık bu sona erdi. Para musluğu kapatıldı. Pilyuginsky merkezi neredeyse iflas etti. Artık Matematik Enstitüsü'nü besleyemezdi. Sonuç olarak, Leonid Eisymont (IPM) tarafından bir grup programcı geçim kaynağı olmadan kaldı. Ve DRAKON'daki çalışmayı durdurmak zorunda kaldı ve solvent müşterilerine geçti.

`` Slayt 8. Buran'da çalışmaların durması sert vurdu
DRAKON geliştiricileri tarafından. Durum kritik hale geldi. ''

Ejderha anka kuşu gibi küllerinden doğdu

Ancak iyilik olmadan kötülük olmaz. Bu dönemde Vladimir Morozov, Pilyuginsky Merkezi'nin karmaşık bölümünün başı oldu. Enerjik yönetici German Kostochkin'i programlama departmanının başına atadı. DRAKON yazılımının oluşturulması çalışmaları hızla ivme kazanmaya başladı. Uygulamalı Matematik Enstitüsü'nün yardımı olmadan bırakılan Vladislav Baltrushaitis ve ekibi, zirveyi kendi başlarına fethetmeye karar verdi. İnanılmaz derecede zordu. Ama imkansızı başardılar.

1998 yılına kadar sistem programlama ile ilgili tüm çalışmalar tamamlandı. DRAKON temelinde, "Graphite-Flox" çalışma adı altında yazılım sistemleri tasarlamak için otomatik bir teknoloji (CASE teknolojisi) oluşturuldu. DRAKON teknolojisi çok çeşitli yazılım araçları içerir: prosedürel düzenleyici, bildirim düzenleyici, veri tabanı, çevirmen, analizör, kod üreteci, vb.

`` Slayt 9. "Gözün sıvı ile kimyasal yanması için ilk yardım" algoritması üç daldan oluşur. Dal, DRAKON dilinin en büyük algoritmik yapısıdır. Diğer dillerde benzeri yoktur. Dal, algoritmanın çok uygun ve görsel bir yapılanmasını sağlar.

(DRAKON'un sadece uzay biliminde değil, herhangi bir profesyonel faaliyet alanında algoritmaları ve prosedürel uzmanlığı tanımlama yeteneğini göstermek için tıbbi algoritmayı düşünmeye devam ediyoruz).





Ejderhanın Ateş Vaftizi

DRAKON'un gelişimi yaklaşık on beş yıl sürdü. Buran'da ejderha teknolojisinin ayrı unsurları zaten kullanılıyordu. Ama temelde bir "kağıt" EJDERHA idi. Algoritmalar kağıda ejderha diyagramları şeklinde çizilmiş ve PROL2, DIPOLE ve LAKS dillerinde programlama yapılmıştır.

İlk kez, uluslararası uzay projesi "Sea Launch" (Sea Launch) için otonom ve entegre testler için yazılımın geliştirilmesinde otomatik ejderha teknolojisi test edildi.

Projeye ABD, Norveç, Rusya ve Ukrayna katıldı. Füzeler, Pasifik Okyanusu'nun batı kesiminde, Kiribati adalarının yakınında ekvatorda bulunan yüzer bir fırlatma platformundan fırlatıldı. Fırlatma, yakındaki bir montaj ve komuta gemisinden kontrol edildi. Her fırlatma için, fırlatma platformu ve montaj ve komuta gemisi, ABD'nin batı kıyısında bulunan bir üsten Kiribati adalarına bir deniz yolculuğu yaptı ve ardından geri döndü.

Ejderha teknolojisi uygulamasının sonuçları mükemmeldi. Tüm beklentileri aştılar.

Bundan sonra, ejderha teknolojisi, Rus-Fransız uzay projesi Fregat'ta ve Proton-M fırlatma aracının modernizasyonunda kullanıldı. Sonuçlar sürekli olarak yüksek olduğundan, Pilyuginsky Merkezinin yönetimi sonraki tüm projelerde ejderha teknolojisini kullanmaya karar verdi.

`` Slayt 13. DRAKON dilinin grafik alfabesi. Yalnızca yirmi üç grafik öğesi (23 simge) içerir. Ancak, bu miktar, herhangi bir mesleki faaliyet alanı ile ilgili prosedürel mesleki bilgi ve algoritmaları görsel bir çizim şeklinde görüntülemek için oldukça yeterlidir. ''

DRAGON'un öne çıkan özelliği nedir?

Geleneksel yaklaşımın dezavantajı, dillerin ve bilgisayar sistemlerinin tasarımcılarının genellikle yanlış sondan başlayıp arabayı atın önüne koymasıdır. Psikolog Donald Norman'ın belirttiği gibi, "sıklıkla makineyle başlarlar ve insanı ancak sonunda, çok geç olduğunda düşünürler."

Bu tür hatalardan kaçınmak için DRAKON dilinin geliştirilmesi sırasında tamamen farklı bir yaklaşım seçilmiştir. Stratejik bir hedef açıklandı: insan aklının çalışması için en rahat koşulları yaratmak, uzmanların kolektif zihninin verimliliğini artırmak için en iyi fırsatları sağlamak.

Bu program ayarına uygun olarak, görev belirlendi: genel olarak erişilebilir, öğrenmesi son derece kolay ve kullanımı kolay, algoritmik problemlerin minimum entelektüel çaba pahasına çözülmesine izin veren bir dil yaratmak. Başlangıçta bir kişiye odaklanması nedeniyle, neredeyse her profilden uzmanlar için (sadece programcılar için değil) gerçekten “halk”, yani “yerli” olabilecek bir dil.

Bu sayede DRAKON, "iş dünyası için Esperanto dili" rolünü oynayabiliyor. Farklı uzmanlıklardan temsilciler prosedür bilgilerini DRAKON dilinde gösterirlerse, profesyonellerin karşılıklı anlayışı önemli ölçüde geliştirilebilir.

programcılar olmadan programlama

DRAKON çok kolay bir dildir. O kadar kolay ki, uzay roketleri için birçok bilgisayar programının pratikte geliştirilmesi, programcılar tarafından değil, sıradan uzmanlar (kompleksistler) tarafından gerçekleştirilir. "Programcısız programlama" ilkesiyle çalışırlar.

Programcıları terk etmenin nedeni basittir. Pratik uygulamalı problemleri çözerken, uzmanlar materyal hakkında kapsamlı bilgiye sahiptir ve problem ifadesinin farkındadır. Onlardan farklı olarak, programcılar "sürecin fiziğini" bilmezler ve onsuz yapmanın oldukça mümkün olduğu "gereksiz insanlar" olurlar.

Bu, maliyetleri önemli ölçüde azaltmanıza, maliyet-fayda oranını iyileştirmenize ve işin ilerlemesini hızlandırmanıza olanak tanır. PROGRAMCILAR ve UZMANLAR arasındaki karşılıklı yanlış anlaşılmadan kaynaklanan “hasarlı telefon” hatalarından da tamamen kurtulun.

`` Slayt 14. Bir insan figürünü aynı anda algılarız, yani. hepsi bir anda, tamamen ve çok hızlı bir şekilde. Beynimizde bu algıyı sağlayan nöral mekanizmalar vardır. Ejderha şemalarının algılanmasında da aynı mekanizmalar kullanılmaktadır. ''

`` Slayt 15. Ejderha şeması insan figürüne biraz benziyor. Ayrıca üstte bir şapka ve altta "çizmeler" var. Tek fark, "çizmelerin" farklı bir isme sahip olmasıdır - "adresler" ''

`` Slayt 16. Ejderha şeması başlığı, ejderha şemasını yapılandırmak ve algoritmayı anlamsal parçalara - dallara bölmek için son derece etkili bir araçtır. Ergonomik hile, okuyucunun gizli arzusunu tahmin eden kapağın ona güçlü bir ipucu vermesidir - tüm "kraliyet" sorularına cevap. İşte tıbbi algoritmanın cevapları. ''

Görevin adı nedir? (Algoritmanın başlığını okuyoruz). Bir sıvı ile gözün kimyasal yanması için ilk yardım.

Kaç parçadan oluşur? ("Şube adı" simgelerini sayarız). Üç üzerinden.

Her bölümün adı nedir? ("Şube adı" simgelerindeki metni okuyoruz). 1. Gözü suyla yıkamak. 2. Nötrleştirici ile gözü yıkamak. 3. Tıbbi tedavi.

Ek ergonomik kolaylıklar, şapkanın çizimin üst kısmında “tören” bir yer işgal etmesi ve anlamsal parçaların adlarının, bir bakışta bulunması kolay benzersiz bir şekle sahip özel çerçevelere yerleştirilmesi ile ilişkilidir. Bu sayede kapak, okuyucunun dikkatini herhangi bir çaba harcamadan anında yakalar. Bu çok önemlidir, çünkü okuyucu gerekli bilgileri toplamaya çalışarak algoritmanın karanlık köşelerini gözleriyle taramak zorunda kalmaz.

Sonuç olarak DRAKON, okuyucuya bilinmeyen veya unutulmuş bir problem hakkında bilgi edinmek için ergonomik olarak verimli üç adımlı bir yöntem sunar. İlk aşamada, başlığı analiz eden okuyucu, algoritmanın amacını ve anlamsal parçalara (dallara) bölünmesini öğrenecektir. İkincisi - her dalın derinlemesine bir analizini yapar. Üçüncüsü, şubelerin etkileşimini analiz eder.

Dragon, Karmaşık Geliştiriciler ve Programcılar arasındaki etkileşimi tamamen değiştirdi

Daha önce, iş bu şekilde organize edildi. Karmaşık uzman, programlama departmanına bir kağıt belge yayınladı - programların geliştirilmesi için ilk veriler ve programcı ile koordine edildi. Daha sonra programcı bu belgeye dayanarak programı geliştirdi.

Karmaşık standda, genellikle programın düzgün çalışmadığı ortaya çıktı. Kim hata yaptı: karmaşık bir insan mı yoksa bir programcı mı? Öğrenmek için, programın geliştirilmesi için ilk veriler olan belgeye dönerler. Aptal sahnenin geldiği yer burasıdır. Belgenin bu konuda hiçbir şey söylemediği ortaya çıktı. Ya da o kadar beceriksizce ve muğlak bir şekilde yazılmıştır ki, kişi onu şu şekilde anlayabilir.

Bu nedenle, bu belge ana işlevini yerine getirmiyor ve şu sorunun yanıtlanmasına izin vermiyor: hata için kim suçlanacak. Özünde kusurlu böyle bir çalışma sistemi sorumsuzluğa, büyük bir hata akışına ve düşük kaliteli işlere yol açar.

DRAKON bu rezaleti kesin olarak ortadan kaldırıyor. Ejderha teknolojisine geçerken, karmaşık bir uzman, bir bilgisayar aracı - bir grafik ejderha editörü - emrine amade olur. Bununla bilgisayar ekranında bir ejderha diyagramı tasarlar (çizir). İkincisi otomatik olarak matematiksel olarak kesin bir algoritmaya dönüştürülür.

Bu durumda, kağıt belge (programın geliştirilmesi için ilk veriler) artık kullanılmaz. Karmaşık, programlama departmanına “kirli ve kafası karışmış bir kağıt parçası” değil, (karmaşıkçının) programcıların yardımı olmadan kendi elleriyle geliştirdiği bir algoritmaya sahip bir disket verir.

Disketi aldıktan sonra, programlama departmanı otomatik kod çevirisini gerçekleştirir ve sonunda programın nesne modülünü alır. İkincisi, füze sisteminin yerleşik veya yer bilgisayarına yüklenir.

DRAGON sayesinde, karmaşık uzman, minimum çaba pahasına, algoritmasını tüm ayrıntılarıyla bağımsız olarak geliştirmek ve analiz etmek, yani mesleki bilgilerini resmileştirmek için değerli bir fırsat elde etti.

Böylece, DRAGON'u kullanırken akıllıca bir ilke gerçekleşir: bilgisi olan bunu resmileştirmeli. Füze sisteminin fiziği ve çalışması hakkında bilgi, hiçbir şekilde bir programcı değil, karmaşık bir uzmana aittir. Bu nedenle, karmaşık uzman bilgisini resmileştirmelidir. Bu durumda, kompleks ve programcı arasındaki sonsuz "hasarlı telefon" oyunu tamamen hariç tutulur.

Ejderha teknolojisinin tanıtımının sonuçları hemen etkilendi. Daha önce, karmaşık uzman, çalışmasının algoritmik kısmını nispeten sığ, hatta yüzeysel olarak anlıyordu. Şimdi, bilgisayarda ejderha editörüyle çalışması ve daha eksiksiz bir genel bakış için sonuçları anında yazdırması sayesinde, her ayrıntısını anlamaya başladı. Çünkü ejderha şeması ona kendi düşüncelerini -gelişmiş algoritmayı- görsel, anlaşılır ve belirgin bir biçimde gösterir.

Sonuç olarak, algoritmanın entelektüel gelişim derinliği önemli ölçüde artmıştır. İşin kalitesi katlanarak arttı. Emek verimliliği arttı.

Pascal'dan Dragon'a

Bir zamanlar, Pascal dilinin yazarı Niklaus Wirth, Pascal'ın programlama öğrenmeye başlamak için ilk dil olması gerektiğini söyledi. Bu görüş genel kabul görmüştür.

O zamanlar programlar metin şeklinde yazılırdı. Metin programlama için Pascal gerçekten de en iyi öğrenme diliydi.

Ancak, bugün durum değişti. Gelecek görsel ve grafik dillere aittir. Bu koşullar altında, "dede Pascal", "mükemmel bir eğitim aracı" olan eski ihtişamını kaybetti.

Bugün bu rol DRAKON grafik diline aktarılmıştır. Algoritma ve programlama çalışmalarına başlamak için en kolay ve mantıksal olarak en tutarlı dil haline gelen DRAKON'dur.

Dragon Dili ve Eğitim Sistemi

DRAGON'un pratik kullanışlılığının çok takdir edildiği zaten söylenmişti. Eğitim Bakanlığı, DRAKON dilinin çalışmasını yüksek öğrenim bilgisayar bilimleri dersi programına dahil etti (bakınız: "Bilişimin örnek bir programı" Enformatik ". Resmi yayın. - M.: Goskomvuz, 1996."

Ortaokul ve liseler için ders kitapları hazırlanıyor. Bunlardan ilki zaten yayınlandı - ilkokul ve ortaokul çağındaki çocuklar için bir oyun ders kitabı: bkz. “V.D. Parondzhanov. Eğlenceli bilgisayar bilimi: Murzik'i ziyaret eden Magic Dragon. - M.: Rosmen, 1998, 2000. 160'lar. 200 illüstrasyon.

`` Slayt 18. DRAKON dili çok kullanışlı fakat sıra dışı iki kavram kullanır. Şiş, bir algoritmanın (veya dalının) başlangıcını ve sonunu birleştiren dikey bir çizgidir. Ana rota, en büyük başarıya götüren algoritmanın başından sonuna kadar olan yoldur. ''

Kural diyor ki: algoritmanın ana yolu şiş boyunca gitmelidir. Bu, "kraliyet" rotasının, gün boyunca ateşle bulunamayacağı ejderha şemasının arka bahçesinde bir yerde olamayacağı anlamına gelir. Hayır, her zaman "en onurlu" yerde olmalıdır - en soldaki dikeyde. Bu kurala uygunluk, şemayı görsel olarak düzenli, öngörülebilir ve sezgisel hale getirir.

`` Slayt 19. Mantıksal bir bakış açısından, her iki algoritma da eşdeğerdir. Ancak ergonomik bir bakış açısından, ana rotada bükülme olmadığından sol şema daha iyidir. ''

`` Slayt 20. Ejderha diyagramı soldan sağa doğru sıralanmıştır
ilkeye göre: "Ne kadar sağa, o kadar kötü." ''

Slayt 21. "Kale" işlemini doğrulayan grafiksel matematiksel formül. Yukarıdaki iki kural için matematiksel bir temel görevi görür: ''

Ana rota şiş boyunca ilerlemelidir (bkz. soldaki slayt 19).

Yan yollar ana yolun sağına çizilir: “Ne kadar sağa, o kadar kötü” (bkz. slayt 20).

Bölüm 2

"DRAKON" dili, ANLAŞILABİLİR ALGORİTMALARIN KRALLIĞINA AÇILAN KAPIYI AÇIYOR

ultra yüksek anlama kriteri

DRAKON dili için temel gereksinim, insanlar arasındaki karşılıklı anlayışı geliştirmek, karmaşık zihinsel çalışmayı kolaylaştırmak ve algoritmaların anlaşılırlığını geliştirmektir. Bu gereksinimi belirlemek için, "ultra yüksek anlayış kriteri" kavramı tanıtılmıştır.

Bir dil, içinde yazılan planlar, algoritmalar ve süreçler en yüksek bilişsel-ergonomik kaliteye sahipse bu kriteri karşıladığı kabul edilir.

ergonomik algoritmalar

Başka bir şekilde de söylenebilir. Ultra yüksek anlama kriteri, algoritma yazma biçiminin mümkün olduğunca uygun olmasını ve bir kişinin herhangi bir algoritmayı "olağanüstü entelektüel kolaylıkla" okumasına izin vermesini gerektirir.

Böyle bir kolaylık yaratmak için, yeni, açıkçası, matematikçiler için alışılmadık, ancak algoritma yazmak için "insanlar için" anlaşılabilir kurallara ihtiyacımız var.

Ergonomik bir algoritma, süper yüksek anlayış kriterini karşılayan bir algoritmadır. Ergonomik algoritmaların avantajı, geleneksel algoritmalardan çok daha net, daha net, daha net ve daha anlaşılır olmalarıdır. Algoritma anlaşılmaz ise, içindeki gizli hatayı fark etmek zor hatta imkansızdır. Tersine, algoritma ne kadar net olursa, bir kusur bulmak o kadar kolay olur. Bu nedenle, daha anlaşılır, ergonomik bir algoritma, normalden çok daha iyidir. Hataları tespit etmeyi kolaylaştırması açısından daha iyi, ki bu çok önemli. Sonuçta, görsel doğrulama sırasında ne kadar çok hata tespit edilebilirse, yeni oluşturulan algoritmanın doğru, hatasız, güvenilir olması o kadar olasıdır. Ayrıca ergonomik algoritmaların öğrenilmesi ve başka birine anlatılması daha kolaydır.

Anlaşılabilir algoritmalar çağı

DRAKON dilini tasarlama ve çalıştırma pratiği, yukarıda açıklanan stratejik hedefin - anlama ve karşılıklı anlama sorununu çözmeye uygun algoritmaların oluşturulması - oldukça ulaşılabilir olduğunu göstermektedir. Eğer bu doğruysa, yeni bir çağın, anlaşılabilir algoritmalar çağının eşiğindeyiz.

Tarihte ilk kez, dünya çapında karmaşık algoritmalar anlaşılması kolay hale gelecek! Bu, en ileri görüşlü matematikçilerin ve programcıların aziz rüyasının gerçekleşeceği anlamına gelir. Mevcut “anlaşılmaz” algoritmik orman yerine, “algoritmaların ve süreçlerin şaşırtıcı derecede görsel açıklamaları” her yerde sihirli bir ışıkla parlayacak. Hayran gözlerimizin önünde yeni bir dünya açılacak - olağanüstü bir hafiflik ve anlayış derinliğinin hüküm süreceği dost canlısı algoritmalar dünyası.

Algoritma ergonomisinin teori ve pratiğinin daha da geliştirilmesinin önemli sonuçları olacağı umulabilir. DRAKON dilinin kitlesel kullanımının evrensel algoritmik okuryazarlığın yolunu açacağına inanmak için sebepler var (böyle bir görevin prensipte çözülebileceği ölçüde).

`` Slayt 23. İki eşdeğer mantıksal formül. Solda - dar bir matematikçi ve programcı çemberi tarafından anlaşılabilir geleneksel bir metin formülü ("VEYA" şeması). ''

Sağda DRAKON dilinde yazılmış "demokratik" bir grafik formülü ("VEYA" grafik şeması) var. Çok daha geniş bir işçi çevresi için anlaşılabilir. Pratikte görüldüğü gibi, doğru formül, karmaşık bir sol formülle çalışırken büyük zorluklar yaşayan kişiler için bile mevcuttur.

Vurgulanmalıdır: DRAKON sol formülle çalışmayı yasaklamaz. Ama zor gelenlere daha insancıl ve kolay bir seçenek sunuyor.

`` Slayt 24. İki eşdeğer mantıksal formül. Solda, herkes için net olmayan geleneksel formül (“Ben” şeması) var. '

DRAKON dilinde yazılmış sağdaki formülün ("VE" grafik diyagramı) anlaşılması çok daha kolaydır. A , B , C , F soyut harflerini belirli üretim konseptleriyle değiştirirsek daha da görsel hale gelir. Örneğin:

A = yakıt oranı C = güç oranı;

B = ateşleme hızı F = motoru çalıştırın.

3. Bölüm

Bilgeliğe Giden Yol

DRAKON dili ve medeniyetin temel sorunları

gelecekte bizi neler bekliyor?

Son yüz yılda, gezegendeki durum kökten değişti. İşler beklenenden daha kötü gidiyor. Küresel sorunlar daha da kötüye gidiyor. Bunların üstesinden gelme girişimleri somut başarıya yol açmaz. İnsan aklının çağımızın yakıcı sorunlarının çoğuna çözüm bulamaması, gün geçtikçe daha da belirgin hale geliyor.

İkincisi, dünyevi uygarlığın iyi bilinen sıkıntılarını içerir: sürekli askeri çatışmalar, büyük askeri harcamalar, nükleer silahların yayılması, uluslararası terörizm, suç, aşırı nüfus, yoksulluk, sosyal patlamalar ve dini aşırılık. Çevresel hastalıkları atın: kirlilik, ozon tabakasının incelmesi, kaynakların tükenmesi, biyosferdeki tehlikeli süreçler, artan sera gazı konsantrasyonları, küresel ısınma ve olası deniz seviyesinin yükselmesi. Ve asteroit tehlikesini de unutmayın, yani. Çılgın bir kozmik bedenle Dünya'nın çarpışma olasılığı.

Bu sorunları çözmek için benzeri görülmemiş önlemlere ihtiyaç var. Tarihte ilk kez akıl, dünyayı kurtarmaya yönelik bilinçli çabaların ana aracı haline geliyor. Zihnin aktif müdahalesi olmadan, bu karmaşık problemlerin makul bir zamanda çözülmesi olası değildir. Aynı zamanda, insanlığın mevcut aklının bu tür karmaşık sorunları çözmek için çok zayıf ve açıkça yetersiz olduğunu kabul etmeliyiz.

Zekanın zayıflığı, durumun genellikle kontrolden çıkmasına ve yerel veya küresel nitelikte ciddi olumsuz sonuçlara neden olmasına yol açar. Küreyi aydınlatan uğursuz ateşler gibi, her yerde aklın öngöremediği ve önleyemediği büyük ve küçük felaketler, savaşlar ve diğer felaketler alevlenir. Böylece hataların, hareketsizliğin ve aklın zayıflığının bedeli kabul edilemez derecede yüksek hale geldi. Sonuçların geldiği yer burasıdır:

Zekayı geliştirmek gerekir, yani. bilim, teknoloji, işletme, eğitim, siyaset, ekonomi ve diğer önemli alanlarda entelektüel aktiviteyi geliştirmek.

İnsanlığın kolektif zihnini daha güçlü ve verimli hale getirebilecek yeni, daha verimli entelektüel araçlar ve araçlar yaratmamız gerekiyor.

Uygarlık tarihini analiz ederek, insanlığın entelektüel gelişiminin uzun bir sürecini seçebiliriz. İnsanlar uzun zamandır düşünce gücünün sınırlarını zorlamak için entelektüel araçlarını geliştirmeye çalıştılar.

Yakın zamana kadar bu süreç kendiliğinden, yavaş ve çok etkili değildi. Ama bugün durum değişti. Bu önemli süreci kontrol altına almak, özelliklerini incelemek, kalıpları anlamak ve nasıl yönetileceğini öğrenmek mümkün oldu. Yönetimin amacı, insanlığın entelektüel üretkenliğini arttırmaktır.

En başından beri zihnin çalışmasını iyileştirmenin bir aracı olarak tasarlanan DRAKON dilinin, eldeki görevi çözmek için bilinçli ve etkili bir yaklaşım örneği olarak hizmet edebileceği aşağıda gösterilecektir - iyileştirme görevi. insan beyninin yaratıcı üretkenliği.

Hangisi daha önemli: bilgisayar mı yoksa insan beyni mi?

Bilgisayar teknolojisi ve programlamanın gelişiminde iki dönem ayırt edilebilir. Birincisi, zihinsel çalışmanın otomasyonunun gerçekleştirildiği kaba bilgisayarlaşma dönemidir. Bu en büyük başarıydı. Birkaç yıl içinde, daha önce sadece insan beyni tarafından gerçekleştirilebilen sayısız görevi güçlü omuzlarına alan gezegenin bir bilgisayar kabuğu oluştu.

Ancak, defnelerimize güvenmek için çok erken. Bunun yeterli olmadığı ortaya çıktı. Neden? Niye?

Cevap açık. Yüz milyonlarca bilgisayar dünyayı sihirli çiçekler gibi noktaladı ve modern entelektüel ortamın ayrılmaz bir parçası oldu. Ancak, entelektüel alandaki ana oyuncu hala insan beynidir. Bilgisayar sadece bir araçtır. Bilgisayarlar karar vermez, insanlar verir.

medeniyetin en önemli özelliği?

Gezegenimiz dev bir depo, daha doğrusu çözülmemiş sorunların üreticisi: küçük, orta, büyük ve küresel. Bunlar ne kadar erken çözülürse, toplumun gelişimi o kadar başarılı olur, insanlık için beklentiler o kadar olumlu olur.

Bu, beynin hızının uygarlığın en önemli özelliği haline geldiği anlamına gelir. Beynin en yüksek üretkenlikle çalışması, sorunları en hızlı şekilde çözmesi son derece arzu edilir.

Yeni bir entelektüel devrimin eşiğinde

Konuyu netleştirmek için bir soru soralım. Otomasyondan sonra insan beyni nasıl çalışır, yani. bir dizi entelektüel görevi bilgisayarlara aktardıktan sonra? Zihnin çalışması için en iyi koşulları yaratmayı başardınız mı? Değilse, beyin üretkenliği nasıl en üst düzeye çıkarılır?

Kaba bilgisayarlaşma ile bu sorular yalnızca çözülmekle kalmaz, aynı zamanda gündeme bile gelmez. Bu arada, bugün dünyaya hakim olan kaba bilgisayarlaşmadır. Bu hoş olmayan sonuçlara yol açar. Gezegenin bilgilendirilmesi stratejisini belirleyen bilim adamları, tasarımcılar, programcılar, modası geçmiş görüşlerin esareti altında, çok önemli bir şey fark etmiyorlar - geleceğin ait olduğu fikir (fili bile fark etmedim!). Bilgisayarların, programların, ağların ve ilkel olarak anlaşılan kullanıcı arayüzlerinin geliştirilmesine odaklanarak, beynin daha kolay ve daha yaratıcı çalışmasını sağlama sorununu tamamen gözden kaçırıyorlar.

Sonuç olarak, beynin yetenekleri yeterince kullanılmamaktadır. Yönetim ve karar almanın tüm seviyelerindeki devasa insan zekası rezervleri sahiplenilmeden kalır. Ve tam da daha akıllı, entelektüel temelli ve dengeli kararlara duyulan ihtiyaç, denilebilir ki, küresel bir keskinliğe ulaştığı zamandı.

Buradan ne çıkar? Bugün yeni bir bilgisayar çağının eşiğindeyiz - ince bilgi işlem çağı. Amacı, zihnin işleyişini iyileştirmektir, yani. bilgi çalışanlarının ve öğrencilerin (beynin) maksimum performansını sağlamak.

Beynin sırlarını istila etmek ve daha iyi, daha hızlı ve daha verimli çalışmasını sağlamak için çok daha karmaşık, gerçekten görkemli bir görevi çözmesi gereken yeni bir bilgisayar devriminden bahsediyoruz.

DRAKON dili bu yönde ilk kanıta dayalı adımdır. Başka bir şekilde de söylenebilir. DRAKON, beynin yaratıcı üretkenliğini artırmanın doğru - bilişsel-ergonomik - yolunu gösteren ilk işarettir. (Bu konuyla ilgili daha ayrıntılı argümanlar “V.D. Parondzhanov. Zihnin çalışması nasıl geliştirilir: Programcılar olmadan algoritmalar çok basittir! M.: Delo, 2001. 360s.” monografisinde bulunabilir).

İnsanlığın ve süper dillerin entelektüel tarihi

İnsanlığın entelektüel tarihi, dilin gelişimi ile ayrılmaz bir şekilde bağlantılıdır. Dilin tarihinde kısmen örtüşen dört aşama vardır:

Okuryazarlık öncesi dönemin ses (sözlü) dilleri;

Yazılı diller (çivi yazısı, hiyeroglifler, alfabetik yazı);

Yapay diller (çizimler, grafikler, kimyasal ve matematiksel formüller, mantıksal ve matematiksel hesaplamalar, programlama dilleri);

Ergonomik süper diller.

Okuryazarlık öncesi dönemin konuşulan dillerinin ortaya çıkışı, insanı hayvan dünyasından ayırdı ve hayvan zekasının gelişiminde büyük bir sıçramaya işaret etti. Aynı zamanda, “okuma yazma bilmeyen” bir kişinin zihni, son derece düşük bir gelişme aşamasındaydı. Bir insandan ziyade bir vahşinin zekasıydı.

Yazılı dillerin icadı, zekanın evrimindeki ikinci dev sıçramayı sembolize etti. Bu olay vahşinin insana dönüşmesi olarak tanımlanabilir. Yazmak, insanlara bilgi üzerinde güç verdi. Yazının doğuşu, yazılı tarihin, medeniyet anlayışının başlangıcıdır.

Zekanın gelişimindeki üçüncü güçlü sıçrama, aralarında mantıksal-matematiksel analiz ve binlerce programlama dili tarafından özel bir yer işgal edilen yapay dillerin yoğun gelişimi ile ilişkilidir.

Nikolai Lobachevsky'nin sözlerini hatırlayalım:

Bilimdeki parlak başarılarını neye borçlular - modern zamanların görkemi, insan aklının zaferi? Şüphesiz, onun yapay diline!

En ilginç yere geldik. Günümüzde insanlığın entelektüel gücünün artması, büyük ölçüde çok çeşitli yapay dillerin yaratılması ve kullanılmasıyla gerçekleşmektedir. Ancak yol boyunca beklenmedik bir zorluk ortaya çıkar. Mevcut dillerin ergonomik kusurunda yatmaktadır. Onlar çok zor. İnsan algısı için zor. Mevcut diller yalnızca belirli bir azınlığa açıktır ve toplu kullanım için uygun değildir. Bu durum, insanların entelektüel yeteneklerinin daha da büyümesini ciddi şekilde engellemektedir.

Programlama dillerinin temel dezavantajı

En önemli entelektüel sorunlardan birini düşünün - programlama sorunu. Akademisyen Andrey Ershov'un sözlerini hatırlayalım:

"Bir kişi, doğasının bir kısmını eylemlerini planlama yeteneğini yaparsa, zekasını ölçülemez bir şekilde artıracaktır ... tek kelimeyle, bir programcı olur."

Saygın akademisyen haklı mı? Hiç şüphe yok ki, iyi programlama yeteneği, uzmanların zihinsel yeteneklerini büyük ölçüde genişleterek, zihin çalışmalarını optimize etmelerine ve bilgisayarı çok daha verimli kullanmalarına olanak tanır. Ancak bir "ama" var. Pratikte, Ershov tarafından önerilen zekayı geliştirmenin yolu - ne yazık ki! - çalışmıyor. Sadece isteyenlerin büyük çoğunluğuna kapalıdır. Neden? Niye?

Sorun şu ki, istisnasız tüm iyi bilinen programlama dilleri çok karmaşık ve "insanlar için" erişilemez. Dar bir uzmanlar kastı için tasarlandılar ve başka hiç kimse yok. Programlamaya hakim olmak için entelektüel işgücü maliyetleri kabul edilemez derecede yüksektir.

Bu nedenle programlama dilleri, toplumun entelektüel yaşamında gerekli olan soylulaştırıcı etkiyi sağlayamamaktadır. Bireysel zekaların parçalanmasının üstesinden gelemezler ve modern gereksinimleri karşılayan küresel kolektif aklın gücünün gerekli güçlendirilmesini sağlayamazlar.

Programlama dilleri sınıfı ve diğer yapay diller (elbette kültürde çalışmaya devam etmesi gerekir) ile birlikte, “süper diller” teriminin kullanıldığı temelde yeni bir diller sınıfı oluşturmak gerekir. entelektüel iletişim” önerilmiştir (kısaca süper diller).

ejderha - ilk süper dil

(sonuncusu değil)

Uygarlığın gelişiminin mevcut aşamasının en dramatik çelişkilerinden biri şudur. Bir yandan, gezegensel zihnin zayıflığı, uygarlığın kaderini tehlikeye atıyor ve bilimin şu soruya bir yanıtı yok: kurtuluş için gerekli zekanın büyümesi nasıl elde edilir?

Öte yandan, insan beyninin muazzam entelektüel rezervleri hala kullanılmamaktadır. Çünkü insanlar beyinlerini kötü bir şekilde, okuma yazma bilmeden, "tasarım" (ergonomik ve nörobiyolojik) özelliklerinin gerektirdiği şekilde değil.

Peki neden süper dillere ihtiyacımız var? Bu çelişkiyi çözmek için, beynin gizli rezervlerini tanımlayarak ve bilimsel olarak temel alarak mevcut entelektüel açmazı aşın.

Herhangi bir yapay dilin sosyal başarısı, kültürdeki kökleri, kapsamının geniş çapta genişletilmesi ve uluslararası tanınırlığı, dilin genel mevcudiyetine ve kullanışlılığına bağlıdır. Süper dillerin kullanışlılığı, anlayışı ve karşılıklı anlayışı kolaylaştırmaları, uygarlığın zihinsel gücünde niteliksel bir artışa izin veren stratejik bir entelektüel atılım sağlamaları gerektiği gerçeğiyle belirlenir.

DRAKON dili, bilime dayalı ergonomik tasarım yöntemleri kullanılarak geliştirildiği için tarihteki ilk ergonomik üst dil olarak tanımlanabilir.

Başka bir şekilde de söylenebilir. DRAKON, dil inşasında bilinçli olarak atılan ilk ergonomik adımdır. Ergonomik, ilk olarak, zihnin çalışmasını iyileştirmeyi amaçlayan ve ikinci olarak, insan faktörleri biliminin tam gücüne dayanan - ergonomi ve bilişsel bilim anlamına gelir. Söylenenler kısa bir tez şeklinde özetlenebilir: DRAKON "dil inşasında" ergonomik bir devrimdir.

DRAKON'un bir dizi büyük roket ve uzay projesinde varlığı ve başarılı çalışması gerçeği, süper dillerin pratik olarak uygulanmasının oldukça mümkün olduğunu göstermektedir. Bu bir fantezi değil, ütopya değil, pembe bir rüya değil - bu zaten bir gerçek. Yeni nesil yapay diller olarak süper dillerin, zihnin çalışmasını optimize edeceği ve toplumun entelektüel yeteneklerini önemli ölçüde artıracağı umulabilir.

Geleceğe bakıldığında, muhtemelen üst dillerin ortaya çıkışıyla, insanlığın önünde yeni bir bilgi yolunun açıldığı varsayılabilir - gerçek bilgeliğe giden yol.
(transhumanism-russia.ru'dan dikkatlice çalındı)