استمرارية (معلوماتية)

استمرارية (معلوماتية)
في علم الحاسوب، تعد الاستمرارية تمثيلاً تجريديًا لحالة التحكم في برنامج حاسوب. الاستمرار يطبق (يعيد reifies) حالة التحكم في البرنامج، أي أن الاستمرارية هي بنية بيانات تمثل العملية الحسابية عند نقطة معينة في تنفيذ العملية؛ يمكن الوصول إلى بنية البيانات التي تم إنشاؤها بواسطة لغة البرمجة، بدلاً من إخفاءها في بيئة وقت التشغيل. تفيد عمليات الاستمرارية في تشفير آليات التحكم الأخرى في لغات البرمجة مثل الاستثناءات والمولدات والروتينات المساعدة وما إلى ذلك.
" الاستمرارية الحالية current continuation أو "استمرار خطوة الحساب" هي الاستمرارية، من منظور الكود المشغّل، الذي سيتم اشتقاقهمن النقطة الحالية في تنفيذ البرنامج. يمكن أيضًا استخدام مصطلح استمرارية للإشارة إلى استمرارية الدرجة الأولى، والتي هي عبارة عن تركيبات تعطي لغة البرمجة القدرة على حفظ حالة التنفيذ في أي نقطة والعودة إلى تلك النقطة في وقت لاحق في البرنامج، ربما عدة مرات.
دعم لغة البرمجة
تعرض العديد من لغات البرمجة استمرارية من الدرجة الأولى تحت أسماء مختلفة؛ على وجه التحديد:
ليسب الشائع: cl-cont . يمكن للمرء أيضًا استخدام وحدات الماكرو المخصصة
C # / VB. NET : async و await : «الاشتراك بقية الطريقة باعتبارها استمرارا، ومن ثم العودة إلى المتصل على الفور، فإن المهمة الاحتجاج على استمرار عندما يكمل». البرمجة غير المتزامنة لـ C #
فاكتور: callcc0 و callcc1
هاسكل: استمرار الكائن الدقيق الاحادي الخلية في Control. Monad. Cont
Haxe : haxe متابعة
أيقونة، Unicon : create, suspend, @ عامل التشغيل: coexpressions
جافا: Lightwolf javaflow (يتطلب معالجة الرمز الثانوي في وقت التشغيل أو وقت الترجمة)
كوتلن: Continuation
جافا سكريبت وحيد القرن: Continuation
باروت: Continuation PMC ؛ يستخدم أسلوب التمرير المستمر لجميع تدفق التحكم
بيرل: كورو والاستمرارية
Pico : call(exp()) continue(aContinuation, anyValue)
بايثون: استمرار _continuation.continulet
راكيت: call-with-current-continuation (عادة ما يتم اختصاره call/cc)
روبي: callcc
سكالا: scala.util.continuations يوفر shift / reset scala.util.continuations
سكيم: call-with-current-continuation (عادة ما يتم اختصاره call/cc)
Smalltalk : Continuation currentDo: يمكن تنفيذ عمليات الاستمرارية في معظم بيئات Smalltalk الحديثة بدون دعم VM إضافي.
معيار ML لنيوجيرسي: SMLofNJ. Cont.callcc
Unlambda : c ، عملية التحكم في التدفق للمكالمة مع استمرار التيار
انظر أيضًا
تدفق التحكم
اذهب إلى
كومة السباغيتي
Quajects ، نوع من الكائن الذي يسمح بتعيين عمليات الاستمرارية القابلة للتحديد (تسمى «وسائل الشرح») للطرق على أساس كل كائن، من خلال حقن التبعية.
المراجع
قراءة متعمقة
بيتر لاندين. تقرير تعميم القفزات والتسميات . UNIVAC Systems Programming Research. أغسطس 1965. أعيد طبعها بترتيب أعلى وحساب رمزي، 11 (2): 125-143، 1998، مع مقدمة كتبها Hayo Thielecke.
درو ماكديرموت وجيري سوسمان. دليل Conniver المرجعي MIT AI Memo 259. مايو 1972.
دانيال بوبرو: نموذج لهياكل التحكم في لغات برمجة الذكاء الاصطناعي IJCAI 1973.
كارل هيويت وبيتر بيشوب وريتشارد ستيجر. شكلية فاعلية عالمية للذكاء الاصطناعي IJCAI 1973.
كريستوفر ستراشي وكريستوفر ب. وادسورث. تابع: دلالات رياضية للتعامل مع القفزات الكاملة دراسة فنية PRG-11. مختبر الحوسبة بجامعة أكسفورد. يناير 1974. أعيد طبعها بترتيب أعلى وحساب رمزي، 13 (1/2): 135-152، 2000، مع مقدمة بقلم كريستوفر ب. وادسورث.
جون سي رينولدز. المترجمون التعريفيون لجلسات البرمجة عالية المستوى في المؤتمر الوطني الخامس والعشرين لـ ACM ، ص. 717-740، 1972. أعيد طبعه في الحساب الأعلى والحساب الرمزي 11 (4): 363-397، 1998، مع مقدمة.
جون سي رينولدز. حول العلاقة بين وقائع الدلالات المباشرة والاستمرارية للندوة الثانية حول الأتمتة واللغات والبرمجة. المجلد LNCS. 14، ص. 141-156، 1974.
جيرالد سوسمان وجاي ستيل. SCHEME: مترجم لـ Extended Lambda Calculus AI Memo 349، MIT Artificial Intelligence Laboratory ، كامبريدج، ماساتشوستس، ديسمبر 1975. أعيد طبعه في الحساب الأعلى والحساب الرمزي 11 (4): 405-439، 1998، مع مقدمة.
روبرت هايب، ر. كينت ديبفيج، كارل بروجمان. تمثيل التحكم في وجود إجراءات استمرار من الدرجة الأولى لمؤتمر ACM SIGPLAN '90 حول تصميم لغة البرمجة وتنفيذها، ص. 66-77.
ويل كلينجر، آن هارتهايمر، إريك أوست. استراتيجيات تنفيذ إجراءات المتابعة لمؤتمر ACM لعام 1988 حول LISP والبرمجة الوظيفية، ص. 124-131، 1988. إصدار المجلة: الحوسبة العليا والرمزية، 12 (1): 7-45، 1999.
كريستيان كوينيك. عكس عكس التحكم أو، المتابعة مقابل البرمجة المتمركزة على الصفحة إشعارات SIGPLAN 38 (2)، ص. 57-64، 2003.
روابط خارجية
ورشة عمل ACM SIGPLAN حول الاستمرارية 2011 في ICFP .
استمرار Curmudgeons لسام روبي
قم بتدريس مخطط نفسك في Fixnum Days by Dorai Sitaram فصلًا رائعًا عن التتابعات .
استمرار و Python Stackless بواسطة Tismer كريستيان
وقائع ورشة العمل الرابعة عبر الإنترنت ACM SIGPLAN حول الاستمرارية
الإجراءات عبر الإنترنت لورشة العمل الثانية ACM SIGPLAN حول الاستمرارية
الاستمرارية والوظائف والقفزات
http://okmij.org/ftp/continuations/ بواسطة أوليغ كيسليوف
https://wiki.haskell.org/Continuations
وحيد القرن مع استمرار
استمرار في Java خالص من إطار تطبيق الويب RIFE
استمرار تصحيح الأخطاء في Java خالص من إطار عمل تطبيق الويب RIFE
مقارنة المولدات والملاحق والمواصلات، مصدر المثال أعلاه
تدفق السيطرة