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

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

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

تم تقديم فكرة التكوين الهيكلي للبرامج في مؤتمر حول الخوارزميات في الرياضيات الحديثة وعلم الحاسوب الذي نظمه أندري ارشوف ودونالد كانوث في عام 1979. نشأت الفكرة من كتاب جورج بوليا المعروف عن حل المشكلات. تم تقديم طريقة وضع خطة لحل مشكلة في التكوين الهيكلي للبرامج كنظام رسمي. تم إعادة هيكلة قواعد الاستدلال للنظام وتبريرها في المنطق من قبل G. Mints وإي تيجو في عام 1982. تم تطوير أداة برمجة PRIZ تستخدم التكوين الهيكلي للبرامج في الثمانينيات.

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

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

*X*1 ∧ *X*2 ∧ ... ∧ *X<sub>m</sub>* → *Y*1 ∧ *Y*2 ... *Y<sub>n</sub>*,

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

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

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

## مراجع

## روابط خارجية

* Automated Software Engineering Homepage

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