تاريخيًا ، تم تطوير البرامج عن طريق كتابة نص عادي. لعدة عقود ، كان النهج الرئيسي للبرمجة عبارة عن مجموعة متسلسلة من الأحرف التي يجب أن تشكل هياكل على مستوى أعلى من هذه الأحرف. يجب على المبرمج ليس فقط كتابة نفس اختصارات لوحة المفاتيح مرارًا وتكرارًا ، ولكن أيضًا لمراقبة التنسيق الصحيح للشفرة ، وإلا فإن الكمبيوتر سيرفض ببساطة فهم ما هو مكتوب في الكود. شخصية منسية واحدة "؛" قد يؤدي إلى أخطاء تجميع / تفسير غير مفهومة تمامًا. علاوة على ذلك ، لا يؤدي استخدام التمثيل النصي للبرنامج إلى تحديد متطلبات إضافية للبرمجة فحسب ، بل يحد أيضًا بشكل كبير من قدرة المبرمج على كتابة التعليمات البرمجية واستخدامها بشكل فعال.كما أن التمثيل النصي للمعلومات يعقد بشكل كبير تحليل هذه المعلومات برمجيًا. دعونا نلقي نظرة على نهج بديل لكتابة البرامج.
- MetaIDE. / . ( for, if, while) , . - , . , AST - Abstract syntax tree ( ). MetaIDE AST, .
. , MetaIDE : wh while, fo for .. , . , , , , . . . , IDE . , , . . , .. , - () VR. - , - .
, . , (Scratch, Blockly), (UML, ), (blueprints - Unreal, Unity). MetaIDE . .
, . , , -, .
. , . (enum) . - , . - ( ), ( ), ( " " ).
. MetaIDE ( ), - , . (, , ), , . , . . , , . , . MetaIDE . . , .
MetaIDE MVC (Model-View-Controller, --) . . , ( , , ) , - . , , .
- ( ), , . . .
MetaIDE , IDE, . . , IDE IDE - ( SDK API, ).
, DSL
fix code main table
name: varLocal node: var get local fn: varLocal switch: ndPtr
name: varMember node: var get member fn: varMember switch: ndPtr
name: varGlobal node: var get global fn: varGlobal switch: ndPtr
name: varUnkn node: var unknown fn: varUnkn switch: ndPtr
name: call node: call fn fn: call switch: ndPtr
name: inline node: inlineCall fn: inline switch: ndPtr
name: subClass node: getSubClass fn: subClass switch: ndPtr
name: subNode node: var get subnode fn: subNode switch: ndPtr
name: nextFn node: nextFn fn: nextFn switch: ndPtr
, , , enum, , .. . , , , . , - . . , . MetaIDE - DSL ( UI) , . .
IDE
MetaIDE , . MetaIDE ( ) - (mind map), (outliner), ( HSB, LCH, HSLuv, HPLuv). , MetaIDE, , , (undo/redo) . ( git), , .
, . – , , , . , , .
Delight
MetaIDE Delight. ++, , - ( ), .
MetaIDE. Lazarus, . , . , . , ( , ). , , . , . Delight, – , Delight. ( ), . IDE Delight. , - . . , , , . . , . , , Delight - . . MetaIDE Delight - , .
. , , . , , IDE .
№2
يجري حاليًا تطوير MetaIDE و Delight وهما متاحان فقط كمعاينة (وليس حتى كإصدار ألفا). بعيدًا عن كل شيء تم الانتهاء منه ولم يتم صنع كل الأشياء بشكل ملائم. حجم التطوير ضخم للغاية ولا يوجد وقت كافٍ للعمل على كل التفاصيل دفعة واحدة.
الاستنتاجات
في الوقت الحالي ، تمثل MetaIDE طريقة جديدة تمامًا لكتابة البرامج ، مما يفتح آفاقًا جديدة للمبرمج في تنظيم سير العمل بأكمله. كلاهما يعمل مع الكود ككل ويتم تبسيط الجوانب الفردية للبرمجة بشكل كبير.