# تكوين هيكلي للبرامج

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

## تاريخ

بدأ التكوين التلقائي للبرنامج في مجال الذكاء الاصطناعي، باستخدام برنامج مخصص لحل المشكلات تلقائيًا. بدأ التكوين التلقائي للبرنامج في مجال الذكاء الاصطناعي، باستخدام برنامج مخصص لحل المشكلات تلقائيًا. في نفس الوقت تقريبًا، شرح علماء الرياضيات بما في ذلك ر. كونستابل وZ. Manna ور.والدينجر الاستخدام المحتمل للمنطق الرسمي للتكوين التلقائي للبرنامج. ظهرت تكوينات البرنامج القابلة للتطبيق عمليًا في وقت لاحق إلى حد كبير.
تم تقديم فكرة التكوين الهيكلي للبرامج في مؤتمر حول الخوارزميات في الرياضيات الحديثة وعلم الحاسوب الذي نظمه أندري ارشوف ودونالد كانوث في عام 1979. نشأت الفكرة من كتاب جورج بوليا المعروف عن حل المشكلات. تم تقديم طريقة وضع خطة لحل مشكلة في التكوين الهيكلي للبرامج كنظام رسمي. تم إعادة هيكلة قواعد الاستدلال للنظام وتبريرها في المنطق من قبل G. Mints وإي تيجو في عام 1982. تم تطوير أداة برمجة PRIZ تستخدم التكوين الهيكلي للبرامج في الثمانينيات.
إن CoCoViLa هي بيئة تطوير متكاملة حديثة تدعم التكوين الهيكلي للبرامج، وهي منصة تطوير برمجيات قائمة على النموذج لتطبيق لغات خاصة بالمجال وتطوير برامج جافا كبيرة.

## منطق التكوين الهيكلي للبرامج

التكوين الهيكلي للبرامج هو طريقة لتكوين البرامج من المكونات التي تم تنفيذها بالفعل (على سبيل المثال من أوامر الحاسوب أو أساليب كائن البرنامج) التي يمكن اعتبارها وظائف. يتم إعطاء مواصفات التكوين في المنطق الافتراضي الحدسي عن طريق كتابة البديهيات حول قابلية تطبيق الوظائف.بديهية حول قابلية تطبيق دالة f هي استتباع منطقي
X$_1$ ∧ X$_2$ ∧ ... ∧ X$_m$ → Y$_1$ ∧ Y$_2$ ... Y$_n$,
حيث X1 ،X2 ،...Xm هي شروط مسبقة وY1 ،Y2 ،...Yn هي شروط لاحقة لتطبيق الوظيفة f. في المنطق الحدسي، تسمى الوظيفة f تحقيق هذه الصيغة. يمكن أن يكون الشرط المسبق اقتراحًا يشير إلى وجود بيانات الإدخال، على سبيل المثال قد يكون لـ Xi معنى "تلقى المتغير xi قيمة"، ولكنه قد يشير أيضًا إلى بعض الشروط الأخرى، على سبيل المثال: أن الموارد اللازمة لاستخدام الوظيفة f متاحة، إلخ. قد يكون الشرط المسبق أيضًا ضمنيًا من نفس شكل البديهية المذكورة أعلاه، ثم يطلق عليه مهمة فرعية. تشير المهمة الفرعية إلى وظيفة يجب أن تكون متاحة كمدخل عند تطبيق الوظيفة f. يجب تكوين هذه الوظيفة نفسها في عملية التكوين الهيكلي للبرامج. في هذه الحالة، فإن تحقيق البديهية هو دالة مرتبة عليا، أي وظيفة تستخدم دالة أخرى كمدخل. على سبيل المثال، الصيغة:
(الحالة ← الحالة التالية) الحالة الأولية ← النتيجة
يمكن تحديد وظيفة ترتيب أعلى مع مدخلين ونتائج الإخراج. المدخل الأول هو وظيفة يجب تكوينها لحساب الحالة التالية من الحالة، والمدخل الثاني هو الحالة الأولية. وظائف النظام الأعلى تعطي عمومية للتكوين الهيكلي للبرامج، يمكن برمجة أي هيكل تحكم مطلوب في برنامج مركب واستخدامه تلقائيًا مع المواصفات ذات الصلة. على وجه الخصوص، فإن البديهية الأخيرة المعروضة هنا هي مواصفات برنامج معقد، محرك محاكاة لمحاكاة الأنظمة الديناميكية على النماذج حيث يمكن حساب الحالة التالية من حالة النظام.

## مراجع

* ↑ Maigre, Riina; Küngas, Peep et al. (2009). Dynamic service synthesis on a large service models of a federated governmental information system. International Journal on Advances in Intelligent Systems, 2(1), 181 - 191.
* ↑ Kotkas, Vahur; Ojamaa, Andres; Grigorenko, Pavel et al. (2011). CoCoViLa as a multifunctional simulation platform. In: SIMUTOOLS 2011 - 4th International ICST Conference on Simulation Tools and Techniques : March 21–25 - Barcelona, Spain: Brussels: ICST, 2011, [1 - 8].
* ↑ Grosschmidt, Gunnar; Harf, Mait (2009). COCO-SIM - object-oriented multi-pole modelling and simulation environment for fluid power systems. Part 1: Fundamentals. International Journal of Fluid Power, 10(2), 91 - 100.
* ↑ Green, Cordell (1969) Application of Theorem Proving to Problem Solving. Proceedings of the International Joint Conference on Artificial Intelligence. Donald E. Walker and Lewis M. Norton, editors, Gordon and Breach Science Publishers, New York, New York, 219–239.
* ↑ Tyugu, E.H. (1981). The structural synthesis of programs. In: Algorithms in Modern Mathematics and Computer Science : Proceedings, Urgench, Uzbek SSR September 16–22, 1979: Ershov, A.P.; Knuth, D.E. (Eds.) Berlin: Springer, 1981 (Lecture Notes in Computer Science; 122), 290 - 303.
* ↑ Pólya, G. (1957) How to solve it. Princeton University Press.
* ↑ Mints, G.; Tyugu, E. (1982). Justification of the structural synthesis of programs. Science of Computer Programming, 2(3), 215 - 240.
* ↑ Mints, G.; Tyugu, E. (1988). The programming system PRIZ. Journal of Symbolic Computation, 5(3), 359 - 375.
* ↑ http://www.cs.ioc.ee/cocovila نسخة محفوظة 2019-07-18 على موقع واي باك مشين.