التركيب الهيكلي للبرامج
التركيب الهيكلي للبرامج (SSP) هو شكل خاص من أشكال تركيب البرامج (التلقائي) يعتمد على حساب القضايا . وبشكل أدق، يستخدم المنطق الحدسي لوصف بنية البرنامج بتفصيل دقيق يسمح بتركيب البرنامج تلقائيًا من أجزاء مثل الإجراءات الفرعية أو حتى أوامر الحاسوب. يُفترض أن هذه الأجزاء قد نُفذت بشكل صحيح، وبالتالي لا حاجة للتحقق من صحتها. يُعد التركيب الهيكلي للبرامج مناسبًا تمامًا للتركيب التلقائي للخدمات [ 1 ] في البنى الموجهة نحو الخدمات، ولتوليف برامج المحاكاة الكبيرة . [ 2 ] [ 3 ]
تاريخ
بدأ توليف البرامج الآلي في مجال الذكاء الاصطناعي، ببرامج مصممة لحل المشكلات تلقائيًا. طُوّر أول مُولِّد برامج بواسطة كورديل غرين عام ١٩٦٩. [ ٤ ] في نفس الفترة تقريبًا، شرح علماء رياضيات، من بينهم ر. كونستابل ، وز. مانا ، ور. والدينغر، إمكانية استخدام المنطق الصوري في توليف البرامج الآلي. ظهرت مُولِّدات البرامج العملية القابلة للتطبيق بعد ذلك بفترة طويلة.
طُرحت فكرة التركيب البنيوي للبرامج في مؤتمر حول الخوارزميات في الرياضيات الحديثة وعلوم الحاسوب [ 5 ] ، نظّمه أندريه إرشوف ودونالد كنوث عام 1979. وقد استُلهمت هذه الفكرة من كتاب جي. بوليا الشهير حول حل المشكلات [ 6 ] . وقُدّمت طريقة وضع خطة لحل مشكلة في التركيب البنيوي للبرامج كنظام رسمي . وفي عام 1982، أعاد جي. مينتس وإي. تيوجو [ 7 ] هيكلة قواعد الاستدلال في النظام وتبريرها منطقيًا. وفي ثمانينيات القرن العشرين، طُوّرت أداة برمجة تُدعى PRIZ [ 8 ] تستخدم التركيب البنيوي للبرامج.
بيئة التطوير المتكاملة الحديثة التي تدعم SSP هي CoCoViLa [ 9 ] - وهي منصة تطوير برمجيات قائمة على النموذج لتنفيذ لغات خاصة بالمجال وتطوير برامج Java كبيرة.
منطق SSP
التركيب البنيوي للبرامج هو أسلوب لتكوين البرامج من مكونات مُنفذة مسبقًا (مثل أوامر الحاسوب أو دوال كائنات البرمجيات) والتي يمكن اعتبارها دوالًا. يُحدد هذا الأسلوب في منطق القضايا الحدسي من خلال كتابة بديهيات حول قابلية تطبيق الدوال. وتُعدّ بديهية قابلية تطبيق دالة 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 . يجب توليف هذه الدالة نفسها في عملية SSP. في هذه الحالة، يكون تحقيق البديهية دالة من الرتبة العليا ، أي دالة تستخدم دالة أخرى كمدخل. على سبيل المثال، الصيغة
- ( الحالة → الحالة التالية ) ∧ الحالة الابتدائية → النتيجة
يمكن تحديد دالة من الرتبة العليا بمدخلين ونتيجة إخراج . المدخل الأول هو دالة يجب توليفها لحساب الحالة التالية (nextState) من الحالة الحالية (state) ، والمدخل الثاني هو الحالة الابتدائية (initialState) . تمنح الدوال من الرتبة العليا عموميةً لبرمجة SSP، حيث يمكن برمجة أي بنية تحكم مطلوبة في برنامج مُولَّف مسبقًا واستخدامها تلقائيًا وفقًا للمواصفات المناسبة. على وجه الخصوص، تُعدّ البديهية الأخيرة المعروضة هنا مواصفات لبرنامج معقد، وهو محرك محاكاة لمحاكاة الأنظمة الديناميكية على نماذج يمكن فيها حساب الحالة التالية (nextState) من حالة النظام.
مراجع
- ↑ مايغري، رينا؛ كونغاس، بيب وآخرون (2009). توليف الخدمات الديناميكي على نماذج خدمات كبيرة لنظام معلومات حكومي اتحادي. المجلة الدولية للتطورات في الأنظمة الذكية، 2(1)، 181-191.
- ↑ كوتكاس، فاهور؛ أوجاما، أندريس؛ غريغورينكو، بافيل وآخرون (2011). CoCoViLa كمنصة محاكاة متعددة الوظائف. في: SIMUTOOLS 2011 - المؤتمر الدولي الرابع لـ ICST حول أدوات وتقنيات المحاكاة : 21-25 مارس - برشلونة، إسبانيا: بروكسل: ICST، 2011، [1 - 8].
- ↑ غروسشميدت، غونار؛ هارف، مايت (2009). COCO-SIM - بيئة نمذجة ومحاكاة متعددة الأقطاب موجهة للكائنات لأنظمة الطاقة المائية. الجزء 1: الأساسيات. المجلة الدولية للطاقة المائية، 10(2)، 91-100.
- ↑ غرين، كورديل (1969) تطبيق إثبات النظريات على حل المشكلات. وقائع المؤتمر الدولي المشترك حول الذكاء الاصطناعي. دونالد إي. ووكر ولويس إم. نورتون، محرران، دار نشر غوردون وبريتش للعلوم، نيويورك، نيويورك، 219-239.
- ↑ تيوجو، إي إتش (1981). التركيب الهيكلي للبرامج. في: الخوارزميات في الرياضيات الحديثة وعلوم الحاسوب : وقائع، أورغنش، جمهورية أوزبكستان الاشتراكية السوفيتية، 16-22 سبتمبر 1979: إرشوف، إيه بي؛ كنوت، دي إي (محرران) برلين: سبرينغر، 1981 (سلسلة محاضرات في علوم الحاسوب؛ 122)، 290-303.
- ↑ بوليا، ج. (1957) كيفية حلها. مطبعة جامعة برينستون.
- ↑ مينتس، جي.؛ تيوجو، إي. (1982). تبرير التركيب الهيكلي للبرامج. علم برمجة الحاسوب، 2(3)، 215-240.
- ↑ مينتس، جي.؛ تيوجو، إي. (1988). نظام البرمجة PRIZ. مجلة الحوسبة الرمزية، 5(3)، 359-375.
- ↑ "نبذة عن كوكوفيلا" . مؤرشف من الأصل بتاريخ 18 يوليو 2019. تم الاطلاع عليه بتاريخ 30 ديسمبر 2011 .
روابط خارجية
- هندسة البرمجيات
- البرمجة المنطقية
