الدلالات التشغيلية
الدلالات التشغيلية هي فئة من دلالات لغات البرمجة الرسمية، حيث يتم التحقق من خصائص معينة مرغوبة للبرنامج ، مثل صحته وسلامته وأمانه، من خلال بناء براهين من عبارات منطقية حول تنفيذه وإجراءاته، بدلاً من إضفاء معانٍ رياضية على مصطلحاته ( الدلالات التفسيرية ). تُصنف الدلالات التشغيلية إلى فئتين: الدلالات التشغيلية البنيوية (أو دلالات الخطوات الصغيرة ) التي تصف رسميًا كيفية تنفيذ الخطوات الفردية لعملية حسابية في نظام حاسوبي؛ وعلى النقيض، الدلالات الطبيعية (أو دلالات الخطوات الكبيرة ) التي تصف كيفية الحصول على النتائج الإجمالية للتنفيذ. تشمل المناهج الأخرى لتوفير دلالات رسمية للغات البرمجة الدلالات البديهية ، والدلالات التفسيرية ، والدلالات الجبرية .
تصف الدلالات التشغيلية للغة البرمجة كيفية تفسير البرنامج الصحيح على أنه سلسلة من الخطوات الحسابية. هذه السلاسل هي التي تمثل معنى البرنامج. في سياق البرمجة الوظيفية ، تُعيد الخطوة الأخيرة في سلسلة الإنهاء قيمة البرنامج. (بشكل عام، يمكن أن يكون هناك العديد من القيم المُعادة لبرنامج واحد، لأن البرنامج قد يكون غير حتمي ، وحتى بالنسبة للبرنامج الحتمي، يمكن أن يكون هناك العديد من سلاسل الحساب لأن الدلالات قد لا تُحدد بدقة تسلسل العمليات الذي يُؤدي إلى تلك القيمة).
ربما كان أول تجسيد رسمي للدلالات التشغيلية هو استخدام حساب لامدا لتعريف دلالات لغة ليسب . [ 1 ] كما أن الآلات المجردة في تقليد آلة SECD مرتبطة ارتباطًا وثيقًا.
تاريخ
استُخدم مفهوم الدلالات التشغيلية لأول مرة في تعريف دلالات لغة Algol 68. العبارة التالية مقتبسة من التقرير المنقح للغة Algol 68:
يُشرح معنى البرنامج في اللغة الدقيقة من خلال حاسوب افتراضي يقوم بتنفيذ مجموعة الإجراءات التي تُشكل عملية تطوير ذلك البرنامج. ( Algol68 ، القسم 2)
يُنسب أول استخدام لمصطلح "الدلالات التشغيلية" بمعناه الحالي إلى دانا سكوت ( بلوتكين 04 ). وفيما يلي اقتباس من ورقة سكوت الرائدة حول الدلالات الرسمية، حيث يشير إلى الجوانب "التشغيلية" للدلالات.
من الجيد السعي إلى اتباع نهج أكثر "تجريدًا" و"وضوحًا" في علم الدلالة، ولكن لكي تكون الخطة ناجحة، لا يمكن تجاهل الجوانب التشغيلية تمامًا. ( سكوت 70 )
الأساليب
قدم جوردون بلوتكين الدلالات التشغيلية الهيكلية، وقدم ماتياس فيليسين وروبرت هيب دلالات الاختزال، [ 2 ] وقدم جيل كان الدلالات الطبيعية.
دلالات الخطوات الصغيرة
الدلالات التشغيلية الهيكلية
قدّم غوردون بلوتكين في ( Plotkin81 ) مفهوم الدلالات التشغيلية البنيوية (SOS، ويُسمى أيضًا الدلالات التشغيلية المهيكلة أو دلالات الخطوات الصغيرة ) كوسيلة منطقية لتعريف الدلالات التشغيلية. تقوم الفكرة الأساسية وراء SOS على تعريف سلوك البرنامج بدلالة سلوك أجزائه، مما يوفر رؤية بنيوية، أي نحوية واستقرائية ، للدلالات التشغيلية. يحدد مواصفة SOS سلوك البرنامج بدلالة علاقة (أو مجموعة علاقات) انتقالية . تتخذ مواصفات SOS شكل مجموعة من قواعد الاستدلال التي تحدد الانتقالات الصحيحة لجزء مركب من بناء الجملة بدلالة انتقالات مكوناته.
كمثال بسيط، سننظر في جزء من دلالات لغة برمجة بسيطة؛ توجد أمثلة توضيحية مناسبة في بلوتكين 81 وهينيسي 90 ، وكتب أخرى.نطاق واسع على برامج اللغة، ودعنطاق على الحالات (مثل الدوال من مواقع الذاكرة إلى القيم). إذا كان لدينا تعبيرات (نطاق عليها بواسطة)، قيم () والمواقع ()، عندئذٍ سيكون لأمر تحديث الذاكرة دلالات:
بشكل غير رسمي، تنص القاعدة على أنه " إذا كان التعبيرفي الولايةيتقلص إلى قيمةثم البرنامجسيتم تحديث الحالةمع المهمة".
يمكن تحديد دلالات التسلسل من خلال القواعد الثلاث التالية:
- 1.
- 2.
- 3.
بشكل غير رسمي، تنص القاعدة الأولى على أنه إذا كان البرنامجفي الولايةينتهي في الولايةثم البرنامجفي الولايةسيتحول إلى البرنامجفي الولاية(يمكنك اعتبار هذا بمثابة إضفاء الطابع الرسمي على عبارة "يمكنك تشغيلثم قم بتشغيل (باستخدام مخزن الذاكرة الناتج.) تنص القاعدة الثانية على أنه إذا كان البرنامجفي الولايةيمكن اختزالها إلى البرنامجمع الدولةثم البرنامجفي الولايةسيتحول إلى البرنامجفي الولاية(يمكنك اعتبار هذا بمثابة صياغة رسمية لمبدأ المُصرّف المُحسِّن: "يُسمح لك بتحويلكما لو كان برنامجًا قائمًا بذاته، حتى لو كان مجرد الجزء الأول من برنامج. الدلالة هيكلية، لأن معنى البرنامج التسلسلي، يتم تعريفها من خلال معنىومعنى.
إذا كان لدينا أيضًا تعبيرات منطقية على مستوى الولاية، مرتبة حسبثم يمكننا تحديد دلالات أمر while :
يُتيح هذا التعريف إجراء تحليل رسمي لسلوك البرامج، مما يسمح بدراسة العلاقات بينها. ومن العلاقات المهمة ترتيبات المحاكاة المسبقة والمحاكاة الثنائية . وتُعد هذه العلاقات مفيدة بشكل خاص في سياق نظرية التزامن .
بفضل تصميمها البديهي وبنيتها سهلة الفهم، اكتسبت لغة SOS شعبية واسعة وأصبحت معيارًا فعليًا في تعريف الدلالات التشغيلية. ودليلًا على نجاحها، حظي التقرير الأصلي (المعروف بتقرير آرهوس) حول SOS ( بلوتكين 81 ) بأكثر من 1000 استشهاد وفقًا لموقع CiteSeer.مما يجعله أحد أكثر التقارير الفنية استشهاداً في علوم الحاسوب .
دلالات الاختزال
تُعدّ دلالات الاختزال عرضًا بديلًا للدلالات التشغيلية. طُبّقت أفكارها الأساسية لأول مرة على متغيرات حساب لامدا الوظيفية البحتة ، سواءً بالاسم أو بالقيمة، على يد غوردون بلوتكين عام 1975 [ 3 ] ، ثم عُمّمت لتشمل لغات وظيفية من الرتبة العليا ذات خصائص إجرائية على يد ماتياس فيليسين في أطروحته عام 1987 [ 4 ] . وقد طوّر ماتياس فيليسين وروبرت هيب هذه الطريقة عام 1992 لتصبح نظرية معادلاتية كاملة للتحكم والحالة [ 2 ] . أما مصطلح "دلالات الاختزال" نفسه، فقد صاغه فيليسين ودانيال ب. فريدمان لأول مرة في ورقة بحثية نُشرت في مؤتمر PARLE عام 1987 [ 5 ] .
تُعرَض دلالات الاختزال على شكل مجموعة من قواعد الاختزال ، تُحدِّد كلٌّ منها خطوة اختزال واحدة محتملة. على سبيل المثال، تنص قاعدة الاختزال التالية على أنه يمكن اختزال عبارة الإسناد إذا كانت مجاورة مباشرةً لتعريف المتغير:
للوصول بعبارة التخصيص إلى هذا الموضع، يتم تمريرها تصاعديًا عبر تطبيقات الدوال والجانب الأيمن من عبارات التخصيص حتى تصل إلى النقطة الصحيحة. منذ التدخلقد تُعلن التعبيرات عن متغيرات متميزة، كما يتطلب حساب التفاضل والتكامل قاعدة بثق لـالتعبيرات. تُعرّف معظم الاستخدامات المنشورة لدلالات الاختزال "قواعد الفقاعة" هذه بسهولة سياقات التقييم. على سبيل المثال، يمكن كتابة قواعد سياقات التقييم في لغة بسيطة تعتمد على الاستدعاء بالقيمة على النحو التالي:
أينيشير إلى تعابير عشوائية ويشير إلى القيم المختزلة بالكامل. يتضمن كل سياق تقييم ثقبًا واحدًا فقط.حيث يُدرج المصطلح بطريقةٍ تُمكّن من استيعابه. ويُشير شكل السياق إلى موضع الاختزال المحتمل من خلال هذه الثغرة. ولوصف "الفقاعات" باستخدام سياقات التقييم، يكفي استخدام بديهية واحدة:
تُعدّ قاعدة الاختزال هذه قاعدة الرفع من حساب التفاضل والتكامل اللامدا لفيلسين وهيب لعبارات الإسناد. تُقيّد سياقات التقييم هذه القاعدة بفصول دراسية مُحدّدة، ولكنها قابلة للتطبيق بحرية في أي فصل دراسي، بما في ذلك تحت اللامدا.
استنادًا إلى بلوتكين، يتطلب إثبات جدوى حساب التفاضل والتكامل المُستمد من مجموعة من قواعد الاختزال ما يلي: (1) مبرهنة تشيرش-روسر للعلاقة أحادية الخطوة، والتي تُنتج دالة تقييم، و(2) مبرهنة كاري-فايز للتوحيد القياسي للإغلاق المتعدي-الانعكاسي للعلاقة أحادية الخطوة، والتي تستبدل البحث غير الحتمي في دالة التقييم ببحث حتمي من اليسار/الخارج. وقد أثبت فيليسين أن الامتدادات الإجرائية لهذا الحساب تُحقق هذه النظريات. ومن نتائج هذه النظريات أن نظرية المعادلات - الإغلاق المتناظر-المتعدي-الانعكاسي - تُعد مبدأ استدلال سليمًا لهذه اللغات. مع ذلك، عمليًا، تستغني معظم تطبيقات دلالات الاختزال عن حساب التفاضل والتكامل وتستخدم الاختزال القياسي فقط (والمُقيِّم الذي يُمكن اشتقاقه منه).
تُعدّ دلالات الاختزال مفيدةً للغاية نظرًا لسهولة نمذجة سياقات التقييم لحالات أو بنيات تحكم غير مألوفة (مثل الاستمراريات من الدرجة الأولى ). إضافةً إلى ذلك، استُخدمت دلالات الاختزال لنمذجة لغات البرمجة كائنية التوجه ، [ 6 ] وأنظمة العقود ، والاستثناءات، والمستقبلات، والاستدعاء عند الحاجة، والعديد من ميزات اللغة الأخرى. ويُقدّم ماتياس فيليسين وروبرت بروس فيندلر وماثيو فلات معالجةً شاملةً وحديثةً لدلالات الاختزال، تُناقش العديد من هذه التطبيقات بالتفصيل، في كتابهم " هندسة الدلالات باستخدام PLT Redex" . [ 7 ]
دلالات الخطوة الكبيرة
الدلالات الطبيعية
يُعرف علم الدلالة التشغيلية الهيكلية ذو الخطوة الكبيرة أيضًا بأسماء الدلالة الطبيعية ، والدلالة العلائقية ، ودلالة التقييم . [ 8 ] وقد قدّم جيل كان علم الدلالة التشغيلية ذو الخطوة الكبيرة تحت اسم الدلالة الطبيعية عند عرضه للغة Mini-ML، وهي لهجة خالصة من لغة ML .
يمكن اعتبار تعريفات الخطوات الكبيرة بمثابة تعريفات للدوال، أو بشكل أعم للعلاقات، حيث تُفسَّر كل بنية لغوية في مجالها المناسب. إن سهولة استخدامها تجعلها خيارًا شائعًا لتحديد الدلالات في لغات البرمجة، ولكن لها بعض العيوب التي تجعل استخدامها غير ملائم أو مستحيلاً في كثير من الحالات، مثل اللغات ذات الميزات التي تتطلب تحكمًا مكثفًا أو التزامن. [ 9 ]
يصف علم الدلالة ذو الخطوة الكبيرة بطريقة فرق تسد كيف يمكن الحصول على نتائج التقييم النهائية لبنى اللغة من خلال الجمع بين نتائج تقييم نظائرها النحوية (التعبيرات الفرعية، والعبارات الفرعية، وما إلى ذلك).
مقارنة
هناك عدد من الفروق بين دلالات الخطوات الصغيرة ودلالات الخطوات الكبيرة التي تؤثر على ما إذا كان أحدهما يشكل أساسًا أكثر ملاءمة لتحديد دلالات لغة البرمجة.
تتميز دلالات الخطوة الكبيرة بميزة كونها في كثير من الأحيان أبسط (تحتاج إلى قواعد استدلال أقل) وغالبًا ما تتوافق مباشرة مع تنفيذ فعال لمترجم للغة (ومن هنا أطلق عليها كان اسم "طبيعية"). ويمكن أن يؤدي كلاهما إلى براهين أبسط، على سبيل المثال عند إثبات الحفاظ على الصحة في ظل بعض تحويلات البرنامج . [ 10 ]
تتمثل العيوب الرئيسية لدلالات الخطوة الكبيرة في أن العمليات الحسابية غير المنتهية ( المتشعبة ) لا تمتلك شجرة استدلال، مما يجعل من المستحيل تحديد وإثبات خصائص هذه العمليات الحسابية. [ 10 ]
تُتيح دلالات الخطوات الصغيرة مزيدًا من التحكم في تفاصيل وترتيب التقييم. في حالة الدلالات التشغيلية المُجهزة، يسمح هذا للدلالات التشغيلية بتتبع سلوك اللغة أثناء التشغيل، وللباحث الدلالي بصياغة وإثبات نظريات أكثر دقة حول هذا السلوك. تجعل هذه الخصائص دلالات الخطوات الصغيرة أكثر ملاءمة عند إثبات سلامة أنواع نظام ما مقابل الدلالات التشغيلية. [ 10 ]
انظر أيضاً
مراجع
- ↑ مكارثي، جون . "الدوال التكرارية للتعبيرات الرمزية وحسابها بواسطة الآلة، الجزء الأول" . مؤرشف من الأصل بتاريخ 4 أكتوبر 2013. تم الاطلاع عليه بتاريخ 13 أكتوبر 2006 .
- 1 2 فيليسين، م.؛ هيب، ر. (1992). "التقرير المنقح حول النظريات التركيبية للتحكم التسلسلي والحالة". علوم الحاسوب النظرية . 103 (2): 235-271 . doi : 10.1016/0304-3975(92)90014-7 .
- ↑ بلوتكين، جوردون (1975). "الاستدعاء بالاسم، والاستدعاء بالقيمة، وحساب لامدا" (ملف PDF) . علوم الحاسوب النظرية . 1 (2): 125-159 . doi : 10.1016/0304-3975(75)90017-1 . تاريخ الاسترجاع: 22 يوليو 2021 .
- ↑ فيليسين، ماتياس (1987). حسابات تحويل لامدا-v-CS: نظرية نحوية للتحكم والحالة في لغات البرمجة الإجرائية عالية الرتبة (PDF) (أطروحة دكتوراه). جامعة إنديانا . تم الاطلاع عليه بتاريخ 22 يوليو 2021 .
- ↑ فيليسين، ماتياس؛ فريدمان، دانيال ب. (1987). "دلالات اختزال للغات الرتبة العليا الإجرائية". وقائع مؤتمر البنى واللغات المتوازية في أوروبا . المؤتمر الدولي حول البنى واللغات المتوازية في أوروبا. المجلد 1. سبرينغر-فيرلاغ. الصفحات 206-223 . doi : 10.1007/3-540-17945-3_12 .
- ↑ العبادي، م. كارديلي ، إل. (8 سبتمبر 2012). نظرية الكائنات . سبرينغر. رقم ISBN 9781441985989.
- ↑ فيليسين، ماتياس؛ فيندلر، روبرت بروس؛ فلات، ماثيو (2009). هندسة الدلالات باستخدام PLT Redex . مطبعة معهد ماساتشوستس للتكنولوجيا. ISBN 978-0-262-06275-6.
- ↑ جامعة إلينوي CS422
- ^ نيبكو، توبياس. كلاين، جيروين (2014). دلالات ملموسة (PDF) . ص 101 – 102. دوى : 10.1007 / 978-3-319-10542-0 . رقم ISBN 978-3-319-10541-3تم الاطلاع عليه بتاريخ 13 مارس 2024 .
- 1 2 3 كزافييه ليروي . "دلالات العمليات ذات الخطوة الكبيرة الاستقرائية".
للمزيد من القراءة
- جيل كان . "الدلالات الطبيعية". وقائع الندوة السنوية الرابعة حول الجوانب النظرية لعلوم الحاسوب . سبرينغر-فيرلاغ. لندن. 1987.
- غوردون د. بلوتكين. منهج بنيوي للدلالات التشغيلية . (1981) تقرير فني DAIMI FN-19، قسم علوم الحاسوب، جامعة آرهوس، آرهوس، الدنمارك. (أعيد طبعه مع تصحيحات في مجلة البرمجة المنطقية والجبرية 60-61: 17-139 (2004)، ( نسخة أولية )).
- غوردون د. بلوتكين. أصول الدلالات التشغيلية الهيكلية. مجلة المنطق والجبر والبرمجة. 60-61:3-15، 2004. ( نسخة أولية ).
- دانا س. سكوت. مخطط لنظرية رياضية للحوسبة، مجموعة أبحاث البرمجة، دراسة فنية PRG-2، جامعة أكسفورد، 1970.
- أدريان فان فيجنجاردن وآخرون. تقرير منقح عن اللغة الخوارزمية ALGOL 68 . إيفيب. 1968.
- ماثيو هينيسي . دلالات لغات البرمجة. وايلي، 1990. متاح على الإنترنت .
روابط خارجية
الوسائط المتعلقة بالدلالات التشغيلية على ويكيميديا كومنز
- الدلالات التشغيلية
- لغات المواصفات الرسمية
- المنطق في علوم الحاسوب
- دلالات لغة البرمجة
