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

التكوين الهيكلي للبرامج (SSP) هو شكل خاص من تكوين البرنامج (التلقائي) الذي يعتمد على حساب التفاضل والتكامل. بتعبير أدق، يستخدم المنطق الحدسي لوصف هيكل البرنامج بمثل هذه التفاصيل بحيث يمكن أن يتكون البرنامج تلقائيًا من قطع مثل الدالات أو حتى أوامر الحاسوب. من المفترض أن هذه القطع قد تم تنفيذها بشكل صحيح، وبالتالي لا حاجة للتحقق من صحة هذه القطع. التكوين الهيكلي للبرامج مناسب تمامًا للتكوين التلقائي للخدمات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. في نفس الوقت تقريبًا، شرح علماء الرياضيات بما في ذلك ر. كونستابل وZ. Manna ور.والدينجر الاستخدام المحتمل للمنطق الرسمي للتكوين التلقائي للبرنامج. ظهرت تكوينات البرنامج القابلة للتطبيق عمليًا في وقت لاحق إلى حد كبير.

تم تقديم فكرة التكوين الهيكلي للبرامج في مؤتمر حول الخوارزميات في الرياضيات الحديثة وعلم الحاسوب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. الذي نظمه أندري ارشوف ودونالد كانوث في عام 1979. نشأت الفكرة من كتاب جورج بوليا المعروف عن حل المشكلات.Pólya, G. (1957) How to solve it. Princeton University Press. تم تقديم طريقة وضع خطة لحل مشكلة في التكوين الهيكلي للبرامج كنظام رسمي. تم إعادة هيكلة قواعد الاستدلال للنظام وتبريرها في المنطق من قبل G. Mints وإي تيجوMints, G.; Tyugu, E. (1982). Justification of the structural synthesis of programs. Science of Computer Programming, 2(3), 215 - 240. في عام 1982. تم تطوير أداة برمجة PRIZMints, G.; Tyugu, E. (1988). The programming system PRIZ. Journal of Symbolic Computation, 5(3), 359 - 375. تستخدم التكوين الهيكلي للبرامج في الثمانينيات.

إن CoCoViLa هي بيئة تطوير متكاملة حديثة تدعم التكوين الهيكلي للبرامج،http://www.cs.ioc.ee/cocovila  وهي منصة تطوير برمجيات قائمة على النموذج لتطبيق لغات خاصة بالمجال وتطوير برامج جافا كبيرة.

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

X1 ∧ X2 ∧ ... ∧ Xm → Y1 ∧ Y2 ... Yn,

حيث X1 ،X2 ،...Xm هي شروط مسبقة وY1 ،Y2 ،...Yn هي شروط لاحقة لتطبيق الوظيفة f. في المنطق الحدسي، تسمى الوظيفة f تحقيق هذه الصيغة. يمكن أن يكون الشرط المسبق اقتراحًا يشير إلى وجود بيانات الإدخال، على سبيل المثال قد يكون لـ Xi معنى "تلقى المتغير xi قيمة"، ولكنه قد يشير أيضًا إلى بعض الشروط الأخرى، على سبيل المثال: أن الموارد اللازمة لاستخدام الوظيفة f متاحة، إلخ. قد يكون الشرط المسبق أيضًا ضمنيًا من نفس شكل البديهية المذكورة أعلاه، ثم يطلق عليه مهمة فرعية. تشير المهمة الفرعية إلى وظيفة يجب أن تكون متاحة كمدخل عند تطبيق الوظيفة f. يجب تكوين هذه الوظيفة نفسها في عملية التكوين الهيكلي للبرامج. في هذه الحالة، فإن تحقيق البديهية هو دالة مرتبة عليا، أي وظيفة تستخدم دالة أخرى كمدخل. على سبيل المثال، الصيغة:

(الحالة ← الحالة التالية) الحالة الأولية ← النتيجة

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

 مراجع 

 روابط خارجية 

 Automated Software Engineering Homepage

تصنيف:برمجة منطقية
تصنيف:هندسة البرمجيات