دراكون

خوارزمية البحث A* في دراكون
الجزء الخارجي من خوارزمية الفرز السريع في DRAKON-C
مخطط دراكون يصف عملية نقل مريض مجمد.

DRAKON ( بالروسية : Днаглядность، Который Обеспечивает Наглядность ، أشعل. " لغة خوارزمية روسية صديقة، توفر الوضوح " ) هي لغة خوارزمية مرئية مجانية ومفتوحة المصدر . تم تطوير اللغة كجزء من برنامج بوران الفضائي للاتحاد السوفييتي البائد [ 2 ] في عام 1986 بعد الحاجة إلى زيادة إنتاجية تطوير البرمجيات. توفر اللغة المرئية طريقة موحدة لتمثيل العمليات في المخططات الانسيابية .

توجد تطبيقات متنوعة لمواصفات اللغة يمكن استخدامها لرسم وتصدير مخططات التدفق الفعلية. ومن الأمثلة البارزة على ذلك برنامج DRAKON Editor المجاني والمفتوح المصدر (سبتمبر 2011).

تاريخ

بدأ تطوير برنامج دراكون في عام 1986 لمعالجة المخاطر المتزايدة لسوء الفهم - وما يترتب عليه من أخطاء - بين مستخدمي لغات البرمجة المختلفة في برنامج الفضاء الروسي. وقد أشرف على تطويره فلاديمير باروندجانوف بمشاركة وكالة الفضاء الفيدرالية الروسية ( مركز الأكاديمي بيليوجين ، موسكو ) والأكاديمية الروسية للعلوم ( معهد كيلديش للرياضيات التطبيقية ).

تم بناء اللغة من خلال الصياغة الرسمية، والتحسينات المريحة، والهيكلة غير التقليدية لمخططات التدفق الموصوفة في معيار ISO 5807-85 والمعيار الروسي «Гост 19.701-90». [ 3 ] [ 4 ]

كان الهدف هو استبدال اللغات المتخصصة المستخدمة في مشروع بوران بلغة برمجة عالمية واحدة . وهي PROL2 (ПРОЛ2)، المستخدمة لتطوير برامج أنظمة الطيران لنظام الحاسوب Biser-4 (Бисер-4)، [ 5 ] وDIPOL (ДИПОЛЬ)، المستخدمة لتطوير برامج أنظمة الحاسوب الخاصة بالصيانة الأرضية، [ 5 ] وLAKS (ЛАКС)، المستخدمة للنمذجة.

بالمقارنة، في برنامج مكوك الفضاء ، تم استخدام لغة البرمجة HAL/S ، التي صممتها شركة Intermetrics لصالح وكالة ناسا ، على نطاق واسع، حيث تمت برمجة حوالي 85٪ من برامج المكوك بلغة HAL/S.

تم الانتهاء من العمل في عام 1996 (بعد 3 سنوات من الإغلاق الرسمي لمشروع بوران)، عندما تم تطوير نظام برمجة CASE آلي يسمى "Grafit-Floks". [ 6 ]

يتم استخدام هذا CASE منذ عام 1996 في: مشروع دولي Sea Launch ، المرحلة العليا الروسية لإدخال المدار Fregat (بالروسية: Фрегат، الفرقاطة) لأنظمة التحكم والاختبارات على متنها، [ 7 ] مركبة الإطلاق الثقيلة المطورة (صاروخ حامل) Proton-M .

ملخص

اسم DRAKON هو الاختصار الروسي لـ "Днаглядность"، والذي يُترجم إلى "خوارزمية روسية ودية [لغة] توضح (أو توفر الوضوح)". تشير كلمة "наглядность" (تُنطق تقريبًا باسم "na-GLYA-dnost") إلى مفهوم أو فكرة يسهل تخيلها وفهمها، ويمكن ترجمتها إلى "الوضوح".

على عكس فلسفة لغة النمذجة الموحدة (UML )، تعتمد فلسفة لغة دراكون على إمكانية توسيعها عند الحاجة، باستخدام لغة هجينة، يمكن وصفها بأنها "دمج مقتطفات برمجية من لغة نصية مستخدمة في بنية دراكون". وبهذه الطريقة، تظل دراكون لغة بصرية بسيطة يمكن استخدامها كإضافة للمبرمجين الراغبين في تسهيل دعم كود مشاريعهم أو تلبية احتياجات أخرى طويلة الأجل، مثل تحسين بيئة العمل في عملية البرمجة أو تسهيل مراجعة الكود وفهمه.

يمكن استخدام لغة DRAKON كلغة نمذجة / "ترميز" (والتي تعتبر برنامج "DRAKON" مستقل) ولغة برمجة (كجزء من لغة هجينة).

بمساعدة برامج الدردشة الآلية التوليدية مثل ChatGPT أو Gemini أو Grok ، يمكن للمطورين استخدام برامج "DRAKON" النقية لإنشاء رمز قابل للتنفيذ بلغات البرمجة التقليدية.

إن دمج نسخة أكثر صرامة و"أكاديمية" من لغة الترميز في البرمجة، كما هو الحال في DRAKON، يضيف تسهيلات نحوية تسمح لمستخدمي لغات البرمجة المختلفة بفهم مساهمات بعضهم البعض في المشروع ككل، وحتى تقديم التعليقات إذا لزم الأمر.

عائلة لغات دراكون

رموز لغة دراكون
أيقونات ماكرو للغة دراكون.

تم تصميم DRAKON ( بالروسية : ДРАКОН ؛ وتعني " التنين " باللغة الإنجليزية) بهدف السماح بسهولة الفهم والقراءة، حيث أن استخدام لغات متعددة في مشروع واحد يمكن أن يؤدي إلى الارتباك.

دراكون هي عائلة من اللغات الهجينة، مثل دراكون-سي، ودراكون-إيه إس إم، ودراكون-جافا، وغيرها. تشترك جميع لغات عائلة دراكون في بنية رسومية موحدة تعتمد على مخططات التدفق. توفر هذه البنية الرسومية القياسية تشابهًا في مخططات دراكون بين مختلف اللغات الهجينة. أما لغة النصوص، فتستخدم بنيتها الخاصة.

أساس التركيب النحوي الرسومي هو أبجدية رسومية. تُسمى العناصر الرسومية ("الحروف") في أبجدية دراكون أيقونات (وليست رموزًا). تحتوي دراكون أيضًا على أيقونات كلية . الأيقونات الكلية هي الكلمات الرسومية للغة دراكون؛ وهي تتكون من أيقونات. يوجد في لغة دراكون 27 أيقونة و21 أيقونة كلية.

تتكون مخططات دراكون من أيقونات وأيقونات كبيرة.

تُعدّ نقاط التكافؤ (الموضحة في الرسم التوضيحي على شكل دوائر سوداء) الأجزاء المهمة في الأيقونات الكبيرة. ويمكن إدخال الأيقونات أو الأيقونات الصغيرة في هذه النقاط تباعًا، ثم يقوم محرر دراكون بترتيبها في أعمدة.

تصميم

تم إنشاء DRAKON كلغة بصرية سهلة التعلم للمساعدة في فهم برامج الكمبيوتر المكتوبة بلغات برمجة مختلفة لأغراض التوضيح والتخطيط والاستراتيجية.

يستخدم برنامج DRAKON مخطط drakon، وهو عبارة عن صياغة رسمية للمخططات الانسيابية التقليدية لعرض البنية العامة للبرنامج. تُضاف مقتطفات من لغة برمجة إلى أيقونات DRAKON. يُسهم دمج العناصر المرئية مع التعليمات البرمجية في إنشاء وصيانة مخططات انسيابية سهلة القراءة بالتزامن مع تطوير البرنامج المعني.

تم تحسين قواعد برنامج DRAKON لإنشاء المخططات من الناحية المعرفية لتسهيل فهمها، مما يجعلها أداة لتعزيز الذكاء . [ 3 ] [ 8 ] [ 9 ] [ 10 ]

قد تكون مخططات دراكون للبرامج الكبيرة متعددة الأغراض معقدة ويصعب فهمها. أما مجموعة البرامج الأصغر، التي تؤدي معًا نفس الغرض، فغالبًا ما يسهل فهمها عند تمثيلها بمخططات دراكون. وتوجد مشكلة مماثلة في صيانة شفرة البرامج الكبيرة، ويُشار إليها أحيانًا بين المبرمجين بـ"قاعدة الثلاثين سطرًا من الشفرة".

بناء الجملة المرئي

المقال الكامل الذي يحتوي على وصف للبنية البصرية للغة دراكون باللغة الإنجليزية، 12 صفحة، متاح للتنزيل مجاناً بصيغة PDF. [ 11 ]

أمثلة

مثال على لعبة تتريس

مثال بسيط لبرنامج مكتوب بلغة دراكون

هذه الأمثلة عبارة عن شفرة برمجية حقيقية من تطبيق للعبة تتريس . كُتبت الأمثلة بلغة دراكون جافا سكريبت. تُحدد الرموز (العناصر المرئية) في لغة دراكون البنية العامة للخوارزميات. أما مقاطع الشفرة البرمجية داخل هذه الرموز (العناصر المرئية) فهي مكتوبة بلغة جافا سكريبت.

خطوة متقدمة

تُنفّذ دالة advanceStep المنطق الأساسي للعبة. تُمثّل advanceStep آلة حالة على شكل شجرة قرارات . [ 12 ] يستدعي مُحرك اللعبة دالة advanceStep دوريًا. تحتوي آلة الحالة هذه على ثلاث حالات: "اللعب"، و "الإسقاط"، و"الانتهاء". تتخذ اللعبة إجراءات مختلفة بناءً على الحالة الحالية. على سبيل المثال، في حالة "اللعب"، عندما يكون هناك مقذوف ساقط ويمكنه التحرك لأسفل، فإنه يتحرك لأسفل خطوة واحدة.

المنطق الأساسي للعبة تتريس بلغة جافا سكريبت DRAKON

باستخدام DRAKON، يمكن لقارئ الخوارزمية تتبع جميع المسارات الممكنة في شجرة القرار بصريًا.

كود جافا سكريبت مُولّد من مخطط دراكون:

دالة advanceStep () { var _sw_8 ; _sw_8 = module.state ; if ( _sw_8 === "playing" ) { if ( module.projectile ) { if ( canMoveDown ()) { moveDown () return getStepPeriod () } else { freezeProjectile ( ) return noProjectile () } } else { return noProjectile ( ) } } else { if ( _sw_8 === " dropping" ) { if ( canMoveDown ()) { moveDown ( ) return DropPeriod } else { freezeProjectile ( ) module.state = "playing" return getStepPeriod () } } else { if ( _sw_8 === " finished" ) { } else { throw new Error ( "قيمة اختيار غير متوقعة: " + _sw_8 ); } return undefined } } }

noProjectile

دالة noProjectile للعبة Tetris بلغة DRAKON-JavaScript

تعالج دالة noProjectile الحالة الخاصة التي لا يوجد فيها مقذوف ساقط. إذا كان هناك صف ممتلئ، يُزال هذا الصف من الشبكة. وإلا، تحاول اللعبة إدخال مقذوف جديد. إذا لم يكن هناك مكان للمقذوف، تخسر اللعبة.

كود جافا سكريبت مُولّد من مخطط دراكون:

دالة noProjectile () { إذا ( clearRow ()) { إرجاع getStepPeriod () } وإلا { إنشاء مقذوف () إذا ( isGameLost ()) { gameOver () module.state = " finished" إرجاع undefined } وإلا { إرجاع getStepPeriod ( ) } } }

كلير رو

خوارزمية إزالة خط من شبكة لعبة تتريس في لغة جافا سكريبت DRAKON

تقوم دالة clearRow بمسح جميع الصفوف من الأسفل إلى الأعلى حتى تصل إلى صف بدون فراغات. في هذه الحالة، يُزال الصف من الشبكة، وتزداد النتيجة، ويتسارع إيقاع اللعبة.

كود جافا سكريبت مُولّد من مخطط دراكون:

دالة clearRow ( ) { var row , rows ; rows = module.glass.rows row = rows.length - 1 ; while ( true ) { if ( row > = 0 ) { if ( rowHasHoles ( row ) ) { row-- ; } else { deleteRow ( row ) increaseScore ( ) increaseSpeed ( ) return true } } else { module.addedScore = 0 return false } } }

رسوم متحركة لإعدام دراكون

توضح الصورة أدناه تنفيذ خوارزمية Silhouette DRAKON. يتم تحريك تنفيذ الخوارزمية من خلال تمييز عناصر الرسم البياني بترتيب التشغيل.

يتكون شكل "الصيد" من أربع أشجار:

  • الاستعداد للصيد.
  • في انتظار العضة.
  • عمل صيد الأسماك.
  • الطريق إلى الوراء.

يتم إظهار المسار الرئيسي لكل شجرة من خلال تمييز خط عمودي سميك يسمى سيخًا.

يحتوي مخطط التدفق دائمًا على مسار من أيقونة العنوان إلى كل رأس (عقدة) في مخطط تدفق التحكم. وبالتالي، لا يمكن أن يحتوي أي عنصر على رمز غير قابل للوصول إليه تحت أي ظرف من الظروف.

يتم تحريك تنفيذ خوارزمية DRAKON عن طريق تمييز عناصر الرسم التخطيطي بترتيب التشغيل.

الاستخدام الحديث

دراكون في المركز الألماني لأبحاث الفضاء

تُستخدم لغة DRAKON في المركز الألماني للفضاء لتنفيذ بعض الوظائف الحرجة التي تمليها لوائح السلامة لاختبارات الطيران، حيث يكون التشغيل الآلي مهمًا بسبب أقصى مسافة إلى المحطة الأرضية وتحتاج العملية إلى تنفيذ آلي سريع.

استُخدم برنامج DRAKON Editor لبرمجة مخططات التدفق بشكل رسومي، والتي خضعت لفحص خاص. وتم توليد كود C من مخططات DRAKON، على سبيل المثال، لتمثيل كود DRAKON الخاص باكتشاف الإطلاق. [ 13 ]

نمذجة عمليات الأعمال

يمكن استخدام لغة DRAKON كلغة لنمذجة وتصوير العمليات التجارية. "طُبقت لغة DRAKON كلغة أساسية لبناء نماذج العمليات التجارية، مما يُتيح الحصول على نموذج أولي لآلة ذات حالات محدودة عند بناء نماذج العمليات التجارية. ويُمكّن تصوير العمليات التجارية في فضاء الحالة صانع القرار من تحسين كفاءة عملية اتخاذ القرار". [ 14 ]

استخدامات خارج نطاق البرمجة

بينما تم تصميم DRAKON في المقام الأول كأداة لفهم برامج الكمبيوتر، يمكن أيضًا استخدام مخططات drakon لتوضيح العمليات في المجالات غير المتعلقة بالحوسبة.

في محرر DRAKON، يُمكن إضافة صور إلى أيقونات DRAKON. تُستخدم هذه الميزة في بعض المجالات لإنشاء رسوم بيانية انسيابية بسهولة . في روسيا، يُعرف محرر DRAKON باستخدامه في المجال الطبي كأداة لإنشاء مخططات توضيحية للمرضى أو الطاقم الطبي. [ 15 ]

انظر أيضاً

مراجع

  1. تيريكوف، أندريه؛ بريكسين، تيموفي؛ ليتفينوف، يوري. كيفية جعل النمذجة المرئية أكثر جاذبية لمطوري البرمجيات / الدورة الصيفية الحادية عشرة لـ LASER في هندسة البرمجيات. هندسة البرمجيات المتطورة. 7-13 سبتمبر 2014 - جزيرة إلبا، إيطاليا
  2. ^ "ستيبان-ميتكين/Drakon_editor" . جيثب . 28 سبتمبر 2022.
  3. 1 2 أوكولوفا ل. ص. عملية الإنشاء ذات الصلة ببيئة العمل التربوية // فيستنيك. التدريب والممارسة. مواد المؤتمرات «الابتكار والتعلم، بالإضافة إلى مبادئ الممارسة \ Innowacje i badania naukowe، jak Rowniez ich zastosowanie w praktyce. — 29.05.2012- 31.05.2012. فارشافا \ وارسو».
  4. باروندجانوف، ف. د.، التركيب المرئي للغة دراغون // البرمجة وبرامج الحاسوب، 01/1995؛ المجلد 21 (العدد 3): ص 142-153. (هذه ترجمة غير صحيحة. يجب قراءتها على النحو التالي: "لغة دراكون".)
  5. 1 2 مضرب شتورمان / POOD OBEBEOEY PREDACCIIEEY E. إل. ميريسكوغو. — م.: بلوك-إنفورم-إكسبريس، 2008. — 384 ص. - ج 192. - ردمك 978-5-93735-008-4
  6. "تقنية تطوير الخوارزميات والبرامج "Grafit-Floks."( ملف PDF) . مؤرشف من النسخة الأصلية (ملف PDF) بتاريخ 27-12-2012 . تم الاطلاع عليه بتاريخ 27-12-2012 .
  7. موروزوف في.ف.، ترونوف في.دي.، المفوض إيه.إي.، باك إي.إي.، جوتشكوف إيه.دي.، ديزل في.دي.، زاليخينا إي.إي.، بارونجانوف د. نظام إدارة البيئة الكونية للملاكمة «فريجيت» // НПО имени S.А. لافوشكين: الفضاء والصواريخ. — 2014، رقم 1 (22). — س. 16-25. (بالروسية) Morozov VV، Trunov Yu.V.، Komissarov AI، Pak EA، Zhuchkov AG، Dishel VD، Zalihina EE، Parondzhanov VD نظام التحكم لقاطرة الفضاء متعددة الاستخدامات "Fregat" // Vestnik NPO imeni SA Lavochkina. الملاحة الفضائية وهندسة الصواريخ – 2014، 1 (22). — ص 16-25.
  8. بيزل يا. ف. هل من الممكن تحسين وظائف العقل؟ نظرة جديدة على المشكلة. - مجلة الأكاديمية الروسية للعلوم. المجلد 73، العدد 4، 2003.
  9. سوزروف ن. ج.، تروسين م. ب. التنين المنقّح هو الحل الأساسي لصياغة الموارد التعليمية الشهيرة لبناء الموارد التعليمية التفاعلية دورة . مواد المؤتمرات الإقليمية ذات المنهجية الجيدة DDH جامعة تومسكو البوليتيكنيكية «التعليم الإلكتروني» المواد في الهندسة الهندسية» 11-12 أكتوبر 2009 م.
  10. ^ بارونجانوف ف. د. (2012). "فرصة جيدة للاستماع إلى صوت دراكون". تعلم كتابة الخوارزميات وقراءتها والتعامل معها. خوارزميات الصبغة الصحيحة. أساسيات الخوارزمية . م: صحافة دي إم كيه. ص. 520. ردمك  978-5-94074-800-7.вуз ов". تعلم كتابة وقراءة ومناقشة الخوارزميات. خوارزميات للأسلوب الصحيح. الخوارزميات الأساسية . م.: DMK صحافة ص  520. ردمك 978-5-94074-800-7.
  11. باروندجانوف، ف. د. (1995). التركيب البصري للغة دراكون . المجلد 21. البرمجة وبرمجيات الحاسوب. الترجمة الإنجليزية الرسمية لكتاب Programmirovanie. الصفحات 142-153 .  
  12. ^ ميتكين سي.بي. البرمجة التلقائية على سبيل المثال DRАKОН // برمجة المعدات. توم 10، رقم 1، 2019 (بالروسية). Mitkin Stepan B. البرمجة القائمة على الأتمتة في لغة DRAKON. Programmnaya Ingeneria، 2019، المجلد. 10، لا. 1، ص 3-13. DOI: 10.17587/prin.10.3-13
  13. "مارك شوارزباخ، سفين ولاخ، ماكسيميليان لايكر. تعديل نظام تحكم طيران علمي لمهام الطائرات بدون طيار التي تُطلق من البالونات // المركز الألماني لأبحاث الفضاء DLR // IEEE، 2015" (ملف PDF) . drakon.su . تاريخ الاسترجاع: 3 ديسمبر 2017 .
  14. فالييف إس إس، كوندراتيفا إن في تحليل عمليات الأعمال في نظام تنظيمي وتقني موزع قائم على اللقطات // التقنيات الحاسوبية. 2023. المجلد 28. العدد 1. ص 41-47.
  15. مثال على برنامج طبي لتقليل دهون الجسم (باللغة الروسية)

مصادر