التواصل بشأن العمليات المتسلسلة

في علوم الحاسوب ، تُعدّ العمليات المتسلسلة المتصلة ( CSP ) لغةً رسميةً لوصف أنماط التفاعل في الأنظمة المتزامنة . [ 1 ] وهي تنتمي إلى عائلة النظريات الرياضية للتزامن المعروفة باسم جبر العمليات، أو حسابات العمليات ، والتي تعتمد على تمرير الرسائل عبر القنوات . كان لـ CSP تأثيرٌ كبيرٌ في تصميم لغة برمجة أوكام [ 1 ] [ 2 ] ، كما أثّرت أيضًا في تصميم لغات برمجة أخرى مثل ليمبو [ 3 ] ، ورافتليب ، وإرلانج [ 4 ] ، وجو [ 5 ] [ 3 وكريستال ، و core.async في كلوجر [ 6 ] .

وُصِفَ مفهوم CSP لأول مرة من قِبَل توني هوار في مقال نُشر عام 1978، [ 7 ] ومنذ ذلك الحين، شهد تطورًا كبيرًا. [ 8 ] وقد طُبِّقَ CSP عمليًا في الصناعة كأداة لتحديد جوانب التزامن والتحقق منها في مجموعة متنوعة من الأنظمة المختلفة، مثل T9000 Transputer ، [ 9 ] بالإضافة إلى نظام التجارة الإلكترونية الآمن . [ 10 ] ولا تزال نظرية CSP نفسها موضوعًا لبحوث نشطة، بما في ذلك الجهود المبذولة لزيادة نطاق تطبيقها العملي (على سبيل المثال، زيادة حجم الأنظمة التي يمكن تحليلها بسهولة). [ 11 ]

تاريخ

النسخة الأصلية

كانت نسخة CSP المُقدَّمة في مقالة هوار الأصلية عام 1978 لغة برمجة متزامنة في جوهرها، وليست حسابًا للعمليات . كان لها بناء جملة مختلف تمامًا عن الإصدارات اللاحقة من CSP، ولم تكن تمتلك دلالات مُحدَّدة رياضيًا، [ 12 ] ولم تكن قادرة على تمثيل عدم الحتمية غير المحدودة . [ 13 ] كُتِبت البرامج في CSP الأصلية كتركيب متوازٍ لعدد ثابت من العمليات المتسلسلة التي تتواصل فيما بينها حصريًا من خلال تمرير الرسائل المتزامن. على عكس الإصدارات اللاحقة من CSP، كان لكل عملية اسم صريح، وكان مصدر الرسالة أو وجهتها يُحدَّد بتحديد اسم عملية الإرسال أو الاستقبال المقصودة. على سبيل المثال، العملية

COPY = *[c:character; west?c → east!c]

يستقبل بشكل متكرر حرفًا من العملية المسماة westويرسل ذلك الحرف إلى العملية المسماة east. التركيب المتوازي

[west::DISASSEMBLE || X::COPY || east::ASSEMBLE]

[ 7 ] يُعيّن الأسماء westللعملية DISASSEMBLE، Xوللعملية COPY، eastوللعملية ASSEMBLE، وينفذ هذه العمليات الثلاث في وقت واحد.

التطور في جبر العمليات

بعد نشر النسخة الأصلية من نظرية العمليات المتسلسلة المتصلة (CSP)، قام كل من هوار وستيفن بروكس وإيه دبليو روسكو بتطويرها وتحسينها إلى شكلها الجبري الحديث القائم على العمليات. وقد تأثر النهج المتبع في تطوير CSP إلى جبر العمليات بعمل روبن ميلنر في حساب الأنظمة المتصلة (CCS)، والعكس صحيح. عُرضت النسخة النظرية من CSP مبدئيًا في مقال نُشر عام 1984 من قِبل بروكس وهوار وروسكو [ 14 ] ، ثم لاحقًا في كتاب هوار " العمليات المتسلسلة المتصلة" [ 12 ] الذي نُشر عام 1985. في سبتمبر 2006، كان هذا الكتاب لا يزال ثالث أكثر المراجع استشهادًا في علوم الحاسوب على الإطلاق وفقًا لموقع Citeseer (مع العلم أنه مصدر غير موثوق به نظرًا لطبيعة عينة البيانات التي يعتمدها). وقد شهدت نظرية CSP بعض التغييرات الطفيفة منذ نشر كتاب هوار. كانت معظم هذه التغييرات مدفوعة بظهور أدوات مؤتمتة لتحليل عمليات CSP والتحقق منها. ويصف كتاب روسكو " نظرية وممارسة التزامن" [ 1 ] هذا الإصدار الأحدث من CSP.

التطبيقات

كان من أوائل التطبيقات المهمة لتقنية CSP استخدامها في تحديد مواصفات عناصر معالج INMOS T9000 Transputer والتحقق منها ، وهو معالج معقد فائق القياس ذو بنية خطية مصمم لدعم المعالجة المتعددة واسعة النطاق . استُخدمت تقنية CSP للتحقق من صحة كل من خط أنابيب المعالج ومعالج القناة الافتراضية ، الذي كان يدير الاتصالات الخارجية للمعالج. [ 9 ]

عادةً ما تركز التطبيقات الصناعية لمنهجية CSP في تصميم البرمجيات على الأنظمة الموثوقة والحساسة للسلامة. فعلى سبيل المثال، قام معهد بريمن للأنظمة الآمنة وشركة دايملر-بنز للفضاء بنمذجة نظام إدارة الأعطال وواجهة إلكترونيات الطيران (يتكون من حوالي 23000 سطر برمجي) المُخصص للاستخدام في محطة الفضاء الدولية باستخدام منهجية CSP، ثم قاموا بتحليل النموذج للتأكد من خلو تصميمهم من حالات التعطل التام والتعطل الجزئي . [ 15 ] [ 16 ] وقد كشفت عملية النمذجة والتحليل عن عدد من الأخطاء التي كان من الصعب اكتشافها باستخدام الاختبار وحده. وبالمثل، طبقت شركة براكسيس للأنظمة عالية الموثوقية نمذجة وتحليل CSP أثناء تطوير برنامج (يتكون من حوالي 100000 سطر برمجي) لهيئة اعتماد بطاقات ذكية آمنة للتحقق من أمان تصميمها وخلوه من حالات التعطل التام. وتدعي براكسيس أن النظام يتميز بمعدل عيوب أقل بكثير من الأنظمة المماثلة. [ 10 ]

نظرًا لأن CSP مناسب تمامًا لنمذجة وتحليل الأنظمة التي تتضمن تبادلات رسائل معقدة، فقد تم تطبيقه أيضًا على التحقق من بروتوكولات الاتصالات والأمان. ومن الأمثلة البارزة على هذا النوع من التطبيقات استخدام لوي لـ CSP ومدقق تحسين FDR لاكتشاف هجوم غير معروف سابقًا على بروتوكول مصادقة المفتاح العام نيدهام-شرودر ، ثم تطوير بروتوكول مصحح قادر على صد الهجوم. [ 17 ]

وصف غير رسمي

كما يوحي اسمها، تسمح CSP بوصف الأنظمة من خلال عمليات مكونة تعمل بشكل مستقل، وتتفاعل فيما بينها فقط عبر تبادل الرسائل . مع ذلك، فإن مصطلح "التسلسلي" في اسم CSP أصبح غير دقيق إلى حد ما، إذ تسمح CSP الحديثة بتعريف العمليات المكونة كعمليات تسلسلية، وكتركيب متوازٍ لعمليات أولية. تُوصف العلاقات بين العمليات المختلفة، وكيفية تواصل كل عملية مع بيئتها، باستخدام عوامل جبرية متنوعة خاصة بالعمليات . وباستخدام هذا النهج الجبري، يمكن بسهولة بناء أوصاف معقدة للعمليات انطلاقًا من عدد قليل من العناصر الأولية.

البدائيون

يوفر CSP فئتين من العناصر الأولية في جبر العمليات الخاص به: الأحداث والعمليات الأولية.

الفعاليات

تمثل الأحداث الاتصالات أو التفاعلات. يُفترض أنها فورية، واتصالها هو كل ما يمكن أن تعرفه "البيئة" الخارجية عن العمليات. لا يتم إرسال الحدث إلا إذا سمحت البيئة بذلك. إذا قدمت عملية ما حدثًا وسمحت البيئة بذلك، فيجب إرسال هذا الحدث. قد تكون الأحداث أسماءً ذرية (مثل: تشغيل ، إيقاف )، أو أسماءً مركبة (مثل: valve.open ، valve.close )، أو أحداث إدخال/إخراج (مثل: mouse?xy ، screen!bitmap ). يُرمز إلى مجموعة جميع الأحداث بـΣ{\displaystyle \Sigma }[ 18 ]

العمليات البدائية

تمثل العمليات الأولية سلوكيات أساسية: ومن الأمثلة على ذلكSتيياP{\displaystyle \mathrm {توقف} }(العملية التي تؤدي إلى حالة جمود فورية)، وSكأناP{\displaystyle \mathrm {SKIP} }(العملية التي تنتهي بنجاح على الفور). [ 18 ]

المؤثرات الجبرية

تحتوي لغة CSP على مجموعة واسعة من المؤثرات الجبرية. ويمكن تلخيص أهمها بشكل غير رسمي كما يلي.

بادئة

يجمع عامل البادئة بين حدث وعملية لإنتاج عملية جديدة. على سبيل المثال،أP{\displaystyle a\to P}هي العملية التي ترغب في التواصل بشأن الحدثأ{\displaystyle a}مع بيئتها، وبعد ذلكأ{\displaystyle a}، يتصرف مثل العمليةP{\displaystyle P}[ 18 ]

التكرار

يمكن تعريف العمليات باستخدام الاستدعاء الذاتي. حيثF(P){\displaystyle F(P)}أي مصطلح من مصطلحات مزودي خدمات الحوسبة السحابية يتضمنP{\displaystyle P}العمليةμP.F(P){\displaystyle \mu PF(P)}يُعرّف عملية تكرارية معطاة بالمعادلة P=F(P){\displaystyle P=F(P)}يمكن أيضًا تعريف العلاقات التكرارية بشكل متبادل، مثل: Pu=uصPدPد=دowنPu{\displaystyle {\begin{aligned}&P_{u}=up\to P_{d}\\&P_{d}=down\to P_{u}\\\end{aligned}}} وهو ما يُعرّف زوجًا من العمليات المتكررة المتبادلة التي تتناوب بين التواصلuص{\displaystyle up}ودowن{\displaystyle down}[ 18 ]

الاختيار الحتمي

يُتيح عامل الاختيار الحتمي (أو الخارجي) تحديد التطور المستقبلي لعملية ما على أنه اختيار بين عمليتين مكونتين، كما يُتيح للبيئة حسم هذا الاختيار من خلال إرسال حدث أولي لإحدى العمليتين. على سبيل المثال،(أP)  (بسؤال){\displaystyle (a\to P)\ \Box \ (b\to Q)}هي العملية التي ترغب في إبلاغ الأحداث الأوليةأ{\displaystyle a}وب{\displaystyle b}ويتصرف لاحقاً إماP{\displaystyle P}أوسؤال{\displaystyle Q}، وذلك بحسب الحدث الأولي الذي تختاره البيئة للتواصل. [ 18 ]

الاختيار غير الحتمي

يُتيح عامل الاختيار غير الحتمي (أو الداخلي) تحديد التطور المستقبلي لعملية ما على أنه اختيار بين عمليتين مكونتين، ولكنه لا يمنح البيئة أي سيطرة على أي من العمليتين المكونتين سيتم اختيارها. على سبيل المثال،(أP)(بسؤال){\displaystyle (a\to P)\sqcap (b\to Q)}يمكن أن يتصرف مثل أي منهماأP{\displaystyle a\to P}أوبسؤال{\displaystyle b\to Q}يمكنها رفض القبولأ{\displaystyle a}أوب{\displaystyle b}ولا يكون ملزماً بالتواصل إلا إذا كانت البيئة توفر كلا الأمرينأ{\displaystyle a}وب{\displaystyle b}.

قد يُدخَل عدم الحتمية دون قصد إلى خيار يبدو ظاهريًا حتميًا إذا كانت الأحداث الأولية لكلا طرفي الخيار متطابقة. على سبيل المثال، (أأSتيياP)  (أبSتيياP){\displaystyle (a\to a\to \mathrm {STOP} )\ \Box \ (a\to b\to \mathrm {STOP} )}و أ((أSتيياP)(بSتيياP)){\displaystyle a\to {\big (}(a\to \mathrm {STOP} )\sqcap (b\to \mathrm {STOP} ){\big )}} متكافئان. [ 18 ]

التداخل

يمثل عامل التداخل نشاطًا متزامنًا مستقلًا تمامًا. العمليةP|||سؤال{\displaystyle P\;|||\;Q}يتصرف على كلا الجانبينP{\displaystyle P}وسؤال{\displaystyle Q}في آن واحد. تتداخل أحداث العمليتين بشكل عشوائي في الزمن. يمكن أن يؤدي التداخل إلى عدم الحتمية حتى لوP{\displaystyle P}وسؤال{\displaystyle Q}كلاهما حتمي: إذاP{\displaystyle P}وسؤال{\displaystyle Q}كلاهما يستطيعان نقل نفس الحدث، إذنP|||سؤال{\displaystyle P\;|||\;Q}يختار بشكل غير حتمي أي من العمليتين نقلت ذلك الحدث. [ 18 ]

واجهة متوازية

يمثل عامل التوازي في الواجهة (أو التوازي المعمم) نشاطًا متزامنًا يتطلب تزامنًا بين العمليات المكونة: لـP|[X]|سؤال{\displaystyle P\;|[X]|\;Q}أي حدث في مجموعة الواجهةXΣ{\displaystyle X\subseteq \Sigma }لا يمكن أن يحدث ذلك إلا عندما يكون كلاهماP{\displaystyle P}وسؤال{\displaystyle Q}قادرون على المشاركة في ذلك الحدث. [ 18 ]

على سبيل المثال، العمليةP|[{أ}]|سؤال{\displaystyle P\;|[\{a\}]|\;Q}يتطلب ذلكP{\displaystyle P}وسؤال{\displaystyle Q}يجب أن يكون كلاهما قادراً على أداء الحدثأ{\displaystyle a}قبل أن يحدث ذلك الحدث. لذا، فإن العملية(أP)|[{أ}]|(أسؤال){\displaystyle (a\to P)\;|[\{a\}]|\;(a\to Q)}يعادلأ(P|[{أ}]|سؤال){\displaystyle a\to (P\;|[\{a\}]|\;Q)}، بينما(أP)|[{أ،ب}]|(بسؤال){\displaystyle (a\to P)\;|[\{a,b\}]|\;(b\to Q)}يعادلSتيياP{\displaystyle \mathrm {توقف} }(أي أن العملية تتعطل).

إخفاء

يوفر عامل الإخفاء طريقة لتجريد العمليات عن طريق جعل بعض الأحداث غير قابلة للملاحظة من قبل البيئة.PX{\displaystyle P\setminus X}هي العمليةP{\displaystyle P}مع تحديد الحدثX{\displaystyle X}مختفي.

مثال بسيط على الاختباء هو(أP){أ}{\displaystyle (a\to P)\setminus \{a\}}وبافتراض أن الحدثأ{\displaystyle a}لا يظهر فيP{\displaystyle P}، ببساطة يختزل إلىP{\displaystyle P}تُستوعب الأحداث الخفية كأفعال تاو ، وهي غير مرئية للبيئة ولا يمكن التحكم بها. يُدخل وجود الإخفاء سلوكًا إضافيًا يُسمى التباعد ، حيث يتم تنفيذ سلسلة لا نهائية من أفعال تاو. ويتم التقاط هذا بواسطة العملية.دأناv{\displaystyle \mathbf {div} }، الذي يقتصر سلوكه على أداء أفعال τ إلى الأبد. [ 18 ] على سبيل المثال،(μP.أP){أ}{\displaystyle (\mu Pa\to P)\setminus \{a\}}يعادلدأناv{\displaystyle \mathbf {div} }.

أمثلة

أحد الأمثلة النموذجية لمسألة إرضاء العملاء هو تمثيل مجرد لآلة بيع الشوكولاتة وتفاعلها مع شخص يرغب في شراء الشوكولاتة. قد تتمكن هذه الآلة من تنفيذ حدثين مختلفين، "إدخال عملة" و"إعطاء شوكولاتة"، واللذان يمثلان إدخال العملة وتسليم الشوكولاتة على التوالي. يمكن كتابة آلة تطلب الدفع (نقداً فقط) قبل تقديم الشوكولاتة على النحو التالي:

Vهـندأنانزمأجحأنانهـ=جoأنانجحoجSتيياP{\displaystyle \mathrm {VendingMachine} =\mathrm {coin} \rightarrow \mathrm {choc} \rightarrow \mathrm {STOP} }

يمكن تمثيل الشخص الذي قد يختار استخدام عملة معدنية أو بطاقة لإجراء المدفوعات على النحو التالي:

Pهـرsoن=(جoأنانSتيياP)(جأردSتيياP){\displaystyle \mathrm {Person} =(\mathrm {coin} \rightarrow \mathrm {STOP} )\;\Box \;(\mathrm {card} \rightarrow \mathrm {STOP} )}

يمكن وضع هاتين العمليتين بالتوازي، بحيث تتفاعلان مع بعضهما البعض. ويعتمد سلوك العملية المركبة على الأحداث التي يجب أن تتزامن عليها العمليتان المكونتان لها. وبالتالي،

Vهـندأنانزمأجحأنانهـ|[{جoأنان،جأرد}]|PهـرsoنجoأنانجحoجSتيياP{\displaystyle \mathrm {VendingMachine} \left\vert \left[\left\{\mathrm {coin} ,\mathrm {card} \right\}\right]\right\vert \mathrm {Person} \equiv \mathrm {coin} \rightarrow \mathrm {choc} \rightarrow \mathrm {STOP} }

أما إذا كانت المزامنة مطلوبة فقط على "العملة"، فسنحصل على

Vهـندأنانزمأجحأنانهـ|[{جoأنان}]|Pهـرsoن(جoأنانجحoجSتيياP)(جأردSتيياP){\displaystyle \mathrm {VendingMachine} \left\vert \left[\left\{\mathrm {coin} \right\}\right]\right\vert \mathrm {Person} \equiv \left(\mathrm {coin} \rightarrow \mathrm {choc} \rightarrow \mathrm {STOP} \right)\Box \left(\mathrm {card} \rightarrow \mathrm {STOP} \right)}

إذا قمنا بتجريد هذه العملية المركبة الأخيرة عن طريق إخفاء أحداث "العملة" و"البطاقة"، أي

((جoأنانجحoجSتيياP)(جأردSتيياP)){جoأنان،جأرد}{\displaystyle \left(\left(\mathrm {coin} \rightarrow \mathrm {choc} \rightarrow \mathrm {STOP} \right)\Box \left(\mathrm {card} \rightarrow \mathrm {STOP} \right)\right)\setminus \left\{\mathrm {coin,card} \right\}}

نحصل على العملية غير الحتمية

(جحoجSتيياP)SتيياP{\displaystyle \left(\mathrm {choc} \rightarrow \mathrm {STOP} \right)\sqcap \mathrm {STOP} }

هذه عملية إما أن تُقدّم حدثًا مفاجئًا ثم تتوقف، أو تتوقف ببساطة. بعبارة أخرى، إذا تعاملنا مع التجريد باعتباره رؤية خارجية للنظام (مثل شخص لا يرى القرار الذي اتخذه الشخص)، فقد تم إدخال عنصر عدم الحتمية .

التعريف الرسمي

بناء الجملة

يُحدد بناء جملة CSP الطرق "القانونية" التي يمكن من خلالها دمج العمليات والأحداث. لنفترض أن e حدث، وb قيمة منطقية، و X مجموعة أحداث. عندئذٍ، يمكن تعريف بناء جملة CSP الأساسي على النحو التالي:

Pرoج::=SتيياP|SكأناP|هـPرoج(إضافة بادئة)|PرoجPرoج(خارجيخيار)|PرoجPرoج(غير حتميخيار)|Pرoج|||Pرoج(التداخل)|Pرoج|[{X}]|Pرoج(واجهة المستخدمموازي)|PرoجX(إخفاء)|Pرoج;Pرoج(تسلسليتعبير)|أناوبتحهـنPرoجهـلsهـPرoج(منطقيشرطي)|PرoجPرoج(نفذ الوقت)|PرoجPرoج(مقاطعة){\displaystyle {\begin{array}{lcll}{Proc}&::=&\mathrm {STOP} &\;\\&|&\mathrm {SKIP} &\;\\&|&e\rightarrow {Proc}&({\text{prefixing}})\\&|&{Proc}\;\Box \;{Proc}&({\text{external}}\;{\text{choice}})\\&|&{Proc}\;\sqcap \;{Proc}&({\text{nondeterministic}}\;{\text{choice}})\\&|&{Proc}\;\vert \vert \vert \;{Proc}&({\text{interleaving}})\\&|&{Proc}\;|[\{X\}]|\;{Proc}&({\text{interface}}\;{\text{parallel}})\\&|&{Proc}\setminus X&({\text{hiding}})\\&|&{Proc};{Proc}&({\text{sequential}}\;{\text{composition}})\\&|&\mathrm {if} \;b\;\mathrm {then} \;{Proc}\;\mathrm {else} \;Proc&({\text{boolean}}\;{\text{conditional}})\\&|&{Proc}\;\triangleright \;{Proc}&({\text{timeout}})\\&|&{Proc}\;\triangle \;{Proc}&({\text{interrupt}})\end{array}}}

لاحظ أنه، حرصًا على الإيجاز، فإن الصيغة المذكورة أعلاه تحذف الـدأناv{\displaystyle \mathbf {div} }العملية، التي تمثل التباعد ، بالإضافة إلى عوامل تشغيل مختلفة مثل التوازي الأبجدي، والتوصيل، والخيارات المفهرسة.

الدلالات الرسمية

لقد تم تزويد لغة CSP بالعديد من الدلالات الرسمية المختلفة ، والتي تحدد معنى تعبيرات CSP الصحيحة نحوياً. تشمل نظرية CSP الدلالات الدلالية المتسقة ، والدلالات الجبرية ، والدلالات التشغيلية .

الدلالات الدلالية

النماذج الدلالية الرئيسية الثلاثة لـ CSP هي نموذج الآثار ، ونموذج حالات الفشل المستقرة ، ونموذج حالات الفشل/الاختلافات . توفر عمليات الربط الدلالي من تعبيرات العمليات إلى كل نموذج من هذه النماذج الثلاثة الدلالات الدلالية لـ CSP. [ 1 ]

تسمح الدلالات التفسيرية بتعريفات متعددة لترتيب جزئي للتحسين على العمليات، والتي بدورها يمكن استخدامها لتمثيل العديد من خصائص العمليات بشكل أنيق. بشكل عام،Pسؤال{\displaystyle P\sqsubseteq Q}يشيرسؤال{\displaystyle Q}يُحسّنP{\displaystyle P}.

نموذج التتبع

يُعرّف نموذج التتبعات معنى تعبير العملية بأنه مجموعة من تسلسلات الأحداث (التتبعات) التي يمكن ملاحظة العملية وهي تقوم بها. على سبيل المثال،

  • ترأجهـs(SتيياP)={}{\displaystyle \mathrm {traces} \left(\mathrm {STOP} \right)=\left\{\langle \rangle \right\}}منذSتيياP{\displaystyle \mathrm {STOP} }لا يقوم بأي فعاليات
  • ترأجهـs(أبSتيياP)={،أ،أ،ب}{\displaystyle \mathrm {traces} \left(a\rightarrow b\rightarrow \mathrm {STOP} \right)=\left\{\langle \rangle ,\langle a\rangle ,\langle a,b\rangle \right\}}منذ العملية(أبSتيياP){\displaystyle (a\rightarrow b\rightarrow \mathrm {STOP} )}يمكن ملاحظة أنه لم يقم بأي أحداث، أو الحدث أ ، أو تسلسل الأحداث أ متبوعًا ب

بصورة أكثر رسمية، نموذج الآثارتي{\displaystyle {\mathcal {T}}}يُعرَّف بأنه مجموعة المجموعات الفرعية غير الفارغة المغلقة بالبادئة منΣ*{\displaystyle \Sigma ^{\ast }}يُعرَّف معنى العملية P في نموذج الآثار على النحو التالي:ترأجهـs(P)Σ*{\displaystyle \mathrm {traces} \left(P\right)\subseteq \Sigma ^{\ast }}بحيث:

  1. ترأجهـs(P){\displaystyle \langle \rangle \in \mathrm {traces} \left(P\right)}(أيترأجهـs(P){\displaystyle \mathrm {traces} \left(P\right)}(يحتوي على تسلسل فارغ)
  2. s1s2ترأجهـs(P)s1ترأجهـs(P){\displaystyle s_{1}\smallfrown s_{2}\in \mathrm {traces} \left(P\right)\implies s_{1}\in \mathrm {traces} \left(P\right)}(أيترأجهـs(P){\displaystyle \mathrm {traces} \left(P\right)}(مغلق بالبادئة)

أينΣ*{\displaystyle \Sigma ^{\ast }}هي مجموعة جميع التسلسلات المحدودة الممكنة للأحداث.

عمليةP{\displaystyle P}يقال إنه يتتبع ويصقل آخرسؤال{\displaystyle Q}إذا وفقط إذاترأجهـs(P)ترأجهـs(سؤال){\displaystyle \mathrm {traces} (P)\supseteq \mathrm {traces} (Q)}.P{\displaystyle P}تحسينات التتبعسؤال{\displaystyle Q}يُشار إليه بـسؤالتيP{\displaystyle Q\sqsubseteq _{\mathrm {T} }P}[ 18 ]

نموذج حالات الفشل المستقرة

نموذج الأعطال المستقرةF{\displaystyle {\mathcal {F}}}يوسع نموذج التتبعات ليشمل مجموعات الرفض، وهي مجموعات من الأحداثXΣ{\displaystyle X\subseteq \Sigma }أن العملية قد ترفض الأداء. الفشل هو زوج(s،X){\displaystyle \left(s,X\right)}يتكون من مسار s ومجموعة رفض X التي تحدد الأحداث التي قد يرفضها المعالج بمجرد تنفيذه للمسار s . ويتم وصف السلوك الملاحظ للمعالج في نموذج حالات الفشل المستقرة بواسطة الزوج(ترأجهـs(P)،وأأنالuرهـs(P)){\displaystyle \left(\mathrm {traces} \left(P\right),\mathrm {failures} \left(P\right)\right)}. على سبيل المثال،

وأأنالuرهـs((أSتيياP)(بSتيياP))={(،)،(أ،{أ،ب})،(ب،{أ،ب})}{\displaystyle \mathrm {failures} \left(\left(a\rightarrow \mathrm {STOP} \right)\Box \left(b\rightarrow \mathrm {STOP} \right)\right)=\left\{\left(\langle \rangle ,\emptyset \right),\left(\langle a\rangle ,\left\{a,b\right\}\right),\left(\langle b\rangle ,\left\{a,b\right\}\right)\right\}}وأأنالuرهـs((أSتيياP)(بSتيياP))={(،{أ})،(،{ب})،(أ،{أ،ب})،(ب،{أ،ب})}{\displaystyle \mathrm {failures} \left(\left(a\rightarrow \mathrm {STOP} \right)\sqcap \left(b\rightarrow \mathrm {STOP} \right)\right)=\left\{\left(\langle \rangle ,\left\{a\right\}\right),\left(\langle \rangle ,\left\{b\right\}\right),\left(\langle a\rangle ,\left\{a,b\right\}\right),\left(\langle b\rangle ,\left\{a,b\right\}\right)\right\}}

عمليةP{\displaystyle P}تحسينات الفشل المستقرسؤال{\displaystyle Q}إذا وفقط إذاترأجهـs(P)ترأجهـs(سؤال)وأأنالuرهـs(P)وأأنالuرهـs(سؤال){\displaystyle \mathrm {traces} (P)\supseteq \mathrm {traces} (Q)\land \mathrm {failures} (P)\supseteq \mathrm {failures} (Q)}.P{\displaystyle P}تحسينات الفشل المستقرسؤال{\displaystyle Q}يُشار إليه بـسؤالFP{\displaystyle Q\sqsubseteq _{\mathrm {F} }P}[ 18 ]

نموذج الإخفاقات/الانحرافات

نموذج الإخفاقات /التباعدشمال{\displaystyle {\mathcal {N}}}يُوسّع هذا النموذج نطاق نموذج الإخفاقات ليشمل التعامل مع التباين . دلالات العملية في نموذج الإخفاقات/التباينات هي زوج(وأأنالuرهـs(P)،دأناvهـرزهـنجهـs(P)){\displaystyle \left(\mathrm {failures} _{\perp }\left(P\right),\mathrm {divergences} \left(P\right)\right)}أيندأناvهـرزهـنجهـs(P){\displaystyle \mathrm {divergences} \left(P\right)}يُعرَّف بأنه الامتداد المغلق لمجموعة جميع الآثار التي يمكن للعملية بعدها أن تتباعد فورًا، ووأأنالuرهـs(P)=وأأنالuرهـs(P){(s،X)|sدأناvهـرزهـنجهـs(P)،XΣ*}{\displaystyle \mathrm {failures} _{\perp }\left(P\right)=\mathrm {failures} \left(P\right)\cup \left\{\left(s,X\right)\mid s\in \mathrm {divergences} \left(P\right),X\subseteq \Sigma ^{*}\right\}}، وهو امتداد لـوأأنالuرهـs(P){\displaystyle \mathrm {failures} (P)}مع جميع الآثار المتباينة.

عمليةP{\displaystyle P}الإخفاقات - التباينات - التحسيناتسؤال{\displaystyle Q}إذا وفقط إذاوأأنالuرهـs(P)وأأنالuرهـs(سؤال)دأناvهـرزهـنجهـs(P)دأناvهـرزهـنجهـs(سؤال){\displaystyle \mathrm {failures} _{\bot }(P)\supseteq \mathrm {failures} _{\bot }(Q)\land \mathrm {divergences} (P)\supseteq \mathrm {divergences} (Q)}.P{\displaystyle P}تحسينات ناتجة عن حالات الفشل والاختلافسؤال{\displaystyle Q}يُشار إليه بـسؤالFدP{\displaystyle Q\sqsubseteq _{\mathrm {FD} }P}[ 18 ]

نقاط ثابتة فريدة

يُعدّ مبدأ النقاط الثابتة الفريدة (UFP) من أهمّ مبادئ إرضاء القيود (CSP) . ينصّ هذا المبدأ عمومًا على أن العملية التي تُحقّق خصائص مُحدّدة لها تفسير دلالي واحد. يُمكن استخدامه لاستنتاج براهين جبرية تُثبت تساوي عمليتين في نموذج CSP. يُقدّم هذا النصّ شرحًا مُوجزًا ​​لصيغة التكرارات الفردية في نموذج الآثار.

اعتبر العمليات بمثابة مجموعات التتبع الخاصة بها. المشغل{\displaystyle \downarrow }يتم تعريفها لجميع العملياتP{\displaystyle P}، الجميعنشمال{\displaystyle n\in \mathbb {N} }لهذا السبب.Pن={sP:8sن}{\displaystyle P\downarrow n=\{s\in P:\#s\leq n\}}، أين8s{\displaystyle \#s}يشير إلى طول السلسلةs{\displaystyle s}: مجموعة الآثار فيP{\displaystyle P}بطول لا يتجاوزن{\displaystyle n}وهذا يسمح بتحديد مقياس علىتي{\displaystyle {\mathcal {T}}}لكلP{\displaystyle P}،سؤال{\displaystyle Q}، يتركد(P،سؤال)=أنانو{2-ن:Pن=سؤالن}{\displaystyle d(P,Q)=\mathrm {inf} \{2^{-n}:P\downarrow n=Q\downarrow n\}}بصورة غير رسمية، تُعتبر العملية التي تتفق في آثارها مع عملية أخرى حتى طول معين "أبعد" عنها من العملية التي تتفق معها حتى طول أكبر. ويمكن إثبات أن هذا يُشكّل فضاءً متريًا كاملاً .

دالة على مجموعات التتبعF:تيتي{\displaystyle F:{\mathcal {T}}\rightarrow {\mathcal {T}}}يُطلق عليه اسم البناء إذا وفقط إذا كان ذلك لجميع العملياتP{\displaystyle P}،سؤال{\displaystyle Q}، الجميعنشمال{\displaystyle n\in \mathbb {N} }، لوPن=سؤالن{\displaystyle P\downarrow n=Q\downarrow n}ثمF(P)(ن+1)=F(سؤال)(ن+1){\displaystyle F(P)\downarrow (n+1)=F(Q)\downarrow (n+1)}وهذا يعني أن الدالة تكون بناءة إذا وفقط إذا كانت عبارة عن دالة انكماشية بالنسبة للمقياس على مجموعات التتبع.

بحسب نظرية باناش للنقطة الثابتة ، إذاF{\displaystyle F}إذا كانت دالة بنائية، فإن لها نقطة ثابتة وحيدة . هذا يعني أنه إذاX{\displaystyle X}وY{\displaystyle Y}هي عمليات تُعرَّف بشكل متكرر على النحو التاليX=F(X){\displaystyle X=F(X)}وY=F(Y){\displaystyle Y=F(Y)}إذاً، فهما متكافئان في نموذج التتبعات. ويمكن أيضاً توسيع UFP ليشمل التكرارات المتبادلة (باستخدام متجهات العمليات) ونماذج أخرى من CSP (على سبيل المثال، فيF{\displaystyle {\mathcal {F}}}من خلال تعريف المقياس كما فيتي{\displaystyle {\mathcal {T}}}(فيما يتعلق بأجزاء التتبع من زوج التتبع والفشل الخاص بالعملية).

يمكن استنتاج ذلك باستخدام UFP (ونظرية النقطة الثابتة لتارسكي )، أنه بالنسبة للدالة الرتيبةF{\displaystyle F}، مصطلح متكرر يُعرَّف على النحو التاليX=F(X){\displaystyle X=F(X)}له تفسير دلالين=0Fن(){\displaystyle \sqcap _{n=0}^{\infty }F^{n}(\bot )}، أين{\displaystyle \bot }هو أصغر عنصر في النموذج. في نماذج الآثار، وحالات الفشل المستقرة، وحالات الفشل/التباعد،=دأناv{\displaystyle \bot =\mathbf {div} }(ما يعادلSتيياP{\displaystyle \mathrm {STOP} }( في نموذج الآثار). [ 1 ] [ 18 ]

أدوات

على مر السنين، تم تطوير العديد من الأدوات لتحليل وفهم الأنظمة الموصوفة باستخدام لغة CSP. استخدمت التطبيقات المبكرة لهذه الأدوات مجموعة متنوعة من الصيغ القابلة للقراءة آليًا للغة CSP، مما جعل ملفات الإدخال المكتوبة لأدوات مختلفة غير متوافقة. مع ذلك، اعتمدت معظم أدوات CSP الآن على اللهجة القابلة للقراءة آليًا للغة CSP التي ابتكرها برايان سكاترجود، والتي يُشار إليها أحيانًا باسم CSP M. [ 19 ] تتميز لهجة CSP M من لغة CSP بدلالات تشغيلية محددة رسميًا ، تتضمن لغة برمجة وظيفية مضمنة .

فرانكلين روزفلت

لعلّ أشهر أدوات حل مشكلات إرضاء القيود (CSP) هي أداة تحسين حالات الفشل والاختلاف (FDR )، وهي منتج تجاري طوّرته في الأصل شركة Formal Systems (Europe) Ltd. غالبًا ما يُوصف FDR بأنه مدقق نماذج ، ولكنه في الواقع مدقق تحسين ، إذ يحوّل تعبيرين من تعبيرات عمليات CSP إلى أنظمة انتقال مُصنّفة (LTSs)، ثم يحدد ما إذا كانت إحدى العمليتين تحسينًا للأخرى ضمن نموذج دلالي مُحدد (آثار، أو حالات فشل، أو حالات فشل/اختلاف). [ 20 ] يطبّق FDR خوارزميات ضغط فضاء الحالة المختلفة على أنظمة الانتقال المُصنّفة للعملية لتقليل حجم فضاء الحالة الذي يجب استكشافه أثناء فحص التحسين. وقد أعقب FDR كلٌّ من FDR2 وFDR3 وFDR4. [ 21 ]

قوس

مدقق تحسين أديلايد ( ARC ) [ 22 ] هو مدقق لتحسين مسائل إرضاء القيود (CSP) طوّره فريق النمذجة والتحقق الرسمي في جامعة أديلايد . يختلف ARC عن FDR2 في أنه يُمثّل عمليات CSP داخليًا على شكل مخططات قرار ثنائية مُرتبة (OBDDs)، مما يُخفف من مشكلة تضخم الحالات في تمثيلات LTS الصريحة دون الحاجة إلى استخدام خوارزميات ضغط فضاء الحالة مثل تلك المستخدمة في FDR2.

احتمال

مشروع ProB [ 23 ] ، الذي يستضيفه معهد المعلوماتية بجامعة هاينريش هاينه في دوسلدورف، أُنشئ في الأصل لدعم تحليل المواصفات المُنشأة باستخدام طريقة B. إلا أنه يدعم أيضًا تحليل عمليات CSP من خلال التحقق من التحسين والتحقق من نموذج LTL . ويمكن استخدام ProB أيضًا للتحقق من خصائص مواصفات CSP وB المُدمجة. وقد تم دمج مُحرك ProBE CSP في FDR3.

براءة اختراع

مجموعة أدوات تحليل العمليات (PAT) [ 24 ] [ 25 ] هي أداة لتحليل CSP طُوّرت في كلية علوم الحاسوب بالجامعة الوطنية في سنغافورة . تُتيح PAT إجراء عمليات التحقق من التحسين، والتحقق من نموذج LTL، ومحاكاة عمليات CSP وTimed CSP. تُوسّع لغة عمليات PAT نطاق CSP بدعم المتغيرات المشتركة القابلة للتغيير، وتمرير الرسائل غير المتزامن، ومجموعة متنوعة من بنيات العمليات المتعلقة بالإنصاف والكمية الزمنية . يقوم مبدأ التصميم الأساسي للغة عمليات PAT على دمج لغة مواصفات عالية المستوى مع البرامج الإجرائية (على سبيل deadlineالمثال waituntil، قد يكون الحدث في PAT برنامجًا تسلسليًا أو حتى استدعاء مكتبة C# خارجية) لزيادة القدرة على التعبير. تُوفّر المتغيرات المشتركة القابلة للتغيير والقنوات غير المتزامنة اختصارًا مناسبًا لأنماط نمذجة العمليات المعروفة المستخدمة في CSP القياسي. يُشابه بناء جملة PAT بناء جملة CSP M ، ولكنه ليس مطابقًا له تمامًا . [ 26 ] الاختلافات الرئيسية بين بناء جملة PAT و CSP M القياسي هي استخدام الفواصل المنقوطة لإنهاء تعبيرات العملية، وإدراج السكر النحوي للمتغيرات والتعيينات، واستخدام بناء جملة مختلف قليلاً للاختيار الداخلي والتركيب المتوازي.

آحرون

يقوم VisualNets [ 27 ] بإنتاج تصورات متحركة لأنظمة CSP من المواصفات، ويدعم CSP الموقوت.

CSPsim [ 28 ] هو برنامج محاكاة كسول. لا يقوم بفحص نموذج CSP، ولكنه مفيد لاستكشاف الأنظمة الكبيرة جدًا (التي قد تكون لا نهائية).

SyncStitch [ 29 ] هو برنامج لفحص تحسينات CSP، مزود ببيئة تفاعلية للنمذجة والتحليل. يحتوي على محرر رسومي لمخطط انتقال الحالة. يمكن للمستخدم نمذجة سلوك العمليات ليس فقط باستخدام تعبيرات CSP، بل أيضًا باستخدام مخططات انتقال الحالة. تُعرض نتائج الفحص أيضًا بشكل رسومي على هيئة أشجار حسابية، ويمكن تحليلها تفاعليًا باستخدام أدوات فحص إضافية. بالإضافة إلى فحوصات التحسين، يمكنه إجراء فحوصات حالات الجمود وحالات التعطل.

تم اشتقاق العديد من لغات المواصفات والصيغ الرسمية الأخرى من لغة CSP الكلاسيكية غير المحددة بوقت، أو استلهامها منها، بما في ذلك:

  • CSP الموقوت ، الذي يتضمن معلومات التوقيت للاستدلال حول الأنظمة في الوقت الحقيقي
  • نظرية العملية الاستقبالية ، وهي تخصص من نظرية سلامة الأنظمة (CSP) تفترض عملية إرسال غير متزامنة (أي غير مانعة ).
  • CSPP
  • برنامج الرعاية الصحية للمعلمين
  • TCOZ ، وهو تكامل بين Timed CSP و Object Z
  • سيرك ، وهو دمج بين CSP و Z استنادًا إلى النظريات الموحدة للبرمجة
  • تمت أرشفة CML في 2020-02-19 على Wayback Machine (لغة نمذجة COMPASS)، وهي مزيج من Circus و VDM تم تطويرها لنمذجة أنظمة الأنظمة (SoS).
  • CspCASL ، وهو امتداد لـ CASL يدمج CSP
  • LOTOS ، وهو معيار دولي [ 30 ] يتضمن ميزات CSP و CCS .
  • PALPS ، وهو امتداد احتمالي مع مواقع للنماذج البيئية، تم تطويره بواسطة آنا فيليبو وماوريسيو تورو بيرموديز

مقارنة مع نموذج الممثل

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

  • عمليات CSP مجهولة المصدر، بينما يمتلك الفاعلون هويات.
  • تستخدم أنظمة CSP قنوات صريحة لتمرير الرسائل، بينما تُرسل أنظمة الممثلين الرسائل إلى ممثلين وجهة مُسمّين. يمكن اعتبار هذين النهجين متقابلين، بمعنى أن العمليات المُستلمة عبر قناة واحدة لها هوية مُطابقة لتلك القناة، بينما يمكن كسر الارتباط القائم على الاسم بين الممثلين من خلال إنشاء ممثلين يتصرفون كقنوات.
  • تعتمد آلية تبادل الرسائل في أنظمة CSP بشكل أساسي على التقاء العمليات المشاركة في إرسال واستقبال الرسالة، أي لا يمكن للمرسل إرسال رسالة إلا بعد أن يكون المستقبل جاهزًا لقبولها. في المقابل، فإن تبادل الرسائل في أنظمة الممثلين غير متزامن بشكل أساسي، أي لا يشترط أن يتم إرسال واستقبال الرسالة في الوقت نفسه، ويمكن للمرسلين إرسال الرسائل قبل أن يكون المستقبلون جاهزين لقبولها. ويمكن اعتبار هذين النهجين متقابلين، بمعنى أنه يمكن استخدام الأنظمة القائمة على الالتقاء لإنشاء اتصالات مخزنة مؤقتًا تعمل كأنظمة مراسلة غير متزامنة، بينما يمكن استخدام الأنظمة غير المتزامنة لإنشاء اتصالات على غرار الالتقاء باستخدام بروتوكول رسالة/إقرار لمزامنة المرسلين والمستقبلين.

تجدر الإشارة إلى أن الخصائص المذكورة آنفًا لا تشير بالضرورة إلى ورقة CSP الأصلية لهوار، بل إلى النسخة الحديثة من الفكرة كما تظهر في تطبيقات مثل Go و core.async في Clojure . في الورقة الأصلية، لم تكن القنوات جزءًا أساسيًا من المواصفات، بل كانت عمليات الإرسال والاستقبال تتعرف على بعضها البعض بالاسم.

جائزة

في عام ١٩٩٠، مُنحت جائزة الملكة للإنجاز التكنولوجي لمختبر الحوسبة بجامعة أكسفورد . تُكرّم هذه الجائزة التعاون الناجح بين المختبر وشركة إنموس المحدودة. يُعدّ "المعالج المتوازي " ( Transputer ) المنتج الرئيسي لشركة إنموس ، وهو معالج دقيق يضمّ العديد من الأجزاء الإضافية التي عادةً ما تكون مطلوبة في مكوّن واحد . [ ٣١ ] ووفقًا لتوني هوار، [ ٣٢ ] كان "المعالج المتوازي من إنموس" تجسيدًا لأفكار بناء معالجات دقيقة قادرة على التواصل فيما بينها عبر أسلاك تمتد بين أطرافها. كان لدى المؤسس رؤية مفادها أن أفكار CSP جاهزة للاستغلال الصناعي، وجعلها أساسًا للغة برمجة المعالجات المتوازية، والتي سُمّيت أوكام . وقدّرت الشركة أن ذلك مكّنها من تسليم الأجهزة قبل عام من الموعد المُحدّد. تقدّمت الشركة بطلب للحصول على جائزة الملكة للإنجاز التكنولوجي وفازت بها، بالتعاون مع مختبر الحوسبة بجامعة أكسفورد.

انظر أيضاً

مراجع

  1. 1 2 3 4 5 روسكو، أ. و. (1997). نظرية وممارسة التزامن (ملف PDF) . برنتيس هول . ISBN 978-0-13-674409-2.
  2. إنموس (12-05-1995). دليل مرجعي لبرنامج أوكام 2.1 (ملف PDF) . شركة إس جي إس-تومسون للإلكترونيات الدقيقة المحدودة.، وثيقة INMOS رقم 72 occ 45 03.
  3. 1 2 كوكس، روس. "مختبرات بيل وخيوط CSP" . تم الاسترجاع في 15-04-2010 .
  4. "10 أسئلة أكاديمية وتاريخية" . تم الاطلاع عليه بتاريخ 15-11-2021 .
  5. "أسئلة وأجوبة: لماذا نبني التزامن على أفكار CSP؟" . لغة برمجة Go . تم ​​الاطلاع عليه بتاريخ 15-10-2021 .
  6. هيكي، ريتش (2013-06-28). "قنوات Clojure core.async" . تم الاسترجاع في 2021-10-15 .
  7. 1 2 هوار، سي. إيه. آر. (1978). "التواصل بين العمليات المتسلسلة" . اتصالات رابطة آلات الحوسبة . 21 (8): 666-677 . doi : 10.1145/359576.359585 . S2CID 849342 . 
  8. عبد الله، علي إي.؛ جونز، كليف ب.؛ ساندرز، جيف دبليو. (2005). توصيل العمليات المتسلسلة: أول 25 عامًا . سلسلة محاضرات في علوم الحاسوب . المجلد 3525. سبرينغر. ISBN  9783540258131.
  9. 1 2 باريت، ج. (1995). "التحقق من النموذج عمليًا: معالج القناة الافتراضية T9000". معاملات IEEE في هندسة البرمجيات . 21 (2): 69-78 . doi : 10.1109/32.345823 .
  10. هول ، أ ؛ تشابمان، ر. (2002). "الصحة بالتصميم: تطوير نظام تجاري آمن" (ملف PDF) . مجلة IEEE للبرمجيات . 19 (1): 18-25 . CiteSeerX 10.1.1.16.1811 . doi : 10.1109/52.976937 . 
  11. كريز، س. (2001). الاستقراء المستقل عن البيانات: التحقق من نموذج CSP للشبكات ذات الأحجام العشوائية (أطروحة دكتوراه). جامعة أكسفورد . CiteSeerX 10.1.1.13.7185 . 
  12. 1 2 هوار، سي. إيه. آر. (1985). التواصل بين العمليات المتسلسلة . برنتيس هول. ISBN 978-0-13-153289-2.
  13. Clinger, William (June 1981). Foundations of Actor Semantics (Mathematics Doctoral Dissertation). MIT. hdl:1721.1/6935.
  14. Brookes, Stephen; Hoare, C. A. R.; Roscoe, A. W. (1984). "A Theory of Communicating Sequential Processes". Journal of the ACM. 31 (3): 560–599. doi:10.1145/828.833. S2CID 488666.
  15. Buth, B.; M. Kouvaras; J. Peleska; H. Shi (December 1997). "Deadlock analysis for a fault-tolerant system". Proceedings of the 6th International Conference on Algebraic Methodology and Software Technology (AMAST’97). pp. 60–75.
  16. Buth, B.; J. Peleska; H. Shi (January 1999). "Combining methods for the livelock analysis of a fault-tolerant system". Proceedings of the 7th International Conference on Algebraic Methodology and Software Technology (AMAST’98). pp. 124–139.
  17. Lowe, G. (1996). "Breaking and fixing the Needham–Schroeder public-key protocol using FDR". Tools and Algorithms for the Construction and Analysis of Systems (TACAS). Springer-Verlag. pp. 147–166.
  18. 12345678910111213Roscoe, A.W. (2010). Understanding Concurrent Systems. Texts in Computer Science. doi:10.1007/978-1-84882-258-0. ISBN 978-1-84882-257-3.
  19. Scattergood, J. B. (1998). The Semantics and Implementation of Machine-Readable CSP (D.Phil.). Oxford University Computing Laboratory.
  20. Roscoe, A. W. (1994). "Model-checking CSP". A Classical Mind: Essays in Honour of C. A. R. Hoare. Prentice Hall.
  21. "Introduction — FDR 4.2.4 documentation". www.cs.ox.ac.uk.
  22. Parashkevov, Atanas N.; Yantchev, Jay (1996). "ARC – a tool for efficient refinement and equivalence checking for CSP". IEEE Int. Conf. on Algorithms and Architectures for Parallel Processing ICA3PP '96. pp. 68–75. CiteSeerX 10.1.1.45.3212.
  23. لويشل، مايكل؛ فونتين، مارك (2008). "استكشاف أعماق CSP-M: أداة تحقق جديدة متوافقة مع FDR" (ملف PDF) . المؤتمر الدولي لهندسة العوامل البشرية 2008. دار نشر سبرينغر. مؤرشف من النسخة الأصلية (ملف PDF) بتاريخ 19 يوليو 2011. تاريخ الاسترجاع: 26 نوفمبر 2008 .
  24. صن، جون؛ ليو، يانغ؛ دونغ، جين سونغ (2009). "PAT: نحو تحقق مرن في ظل العدالة" (ملف PDF) . وقائع المؤتمر الدولي العشرين للتحقق بمساعدة الحاسوب (CAV 2009) . سلسلة محاضرات في علوم الحاسوب. المجلد 5643. سبرينغر. مؤرشف من الأصل (ملف PDF) بتاريخ 11 يونيو 2011. تم الاطلاع عليه بتاريخ 16 يونيو 2009 . 
  25. صن، جون؛ ليو، يانغ؛ دونغ، جين سونغ (2008). "مراجعة التحقق من نموذج CSP: تقديم مجموعة أدوات تحليل العمليات" (ملف PDF) . وقائع الندوة الدولية الثالثة حول الاستفادة من تطبيقات الأساليب الرسمية والتحقق والتدقيق (ISoLA 2008) . سلسلة الاتصالات في علوم الحاسوب والمعلومات. المجلد 17. سبرينغر. الصفحات 307-322 . مؤرشف من النسخة الأصلية (PDF) بتاريخ 8 يناير 2009. تم الاطلاع عليه بتاريخ 15 يناير 2009 .  
  26. صن، جون؛ ليو، يانغ؛ دونغ، جين سونغ؛ تشين، تشون تشينغ (2009). "دمج المواصفات والبرامج لتحديد مواصفات النظام والتحقق منه" (ملف PDF) . المؤتمر الدولي لهندسة البرمجيات TASE '09 التابع لمعهد مهندسي الكهرباء والإلكترونيات. مؤرشف من النسخة الأصلية (ملف PDF) بتاريخ 11 يونيو 2011. تم الاطلاع عليه بتاريخ 13 أبريل 2009 .
  27. غرين، مارك؛ عبد الله، علي (2002). "تحليل الأداء وضبط السلوك لتحسين أنظمة الاتصال" . هياكل عمليات الاتصال 2002 .
  28. بروك، فيليب؛ بيج، ريتشارد (2007). "الاستكشاف الكسول والتحقق من نماذج CSP باستخدام CSPsim". هندسة العمليات المتصلة 2007 .
  29. "SyncStitch" . principia-m.com .
  30. ISO 8807، مواصفات لغة الترتيب الزمني
  31. جيرانت جونز (1990). "حادة كالشفرة: جائزة الملكة لمختبر الحوسبة" . مجلة أكسفورد (59، الأسبوع الرابع، فصل ترينيتي).
  32. لين شوستيك (مارس 2009). "مقابلة مع سي. إيه. آر. هوار" . اتصالات رابطة آلات الحوسبة . 52 (3): 38-41 . doi : 10.1145/1467247.1467261 . S2CID 1868477 . 

للمزيد من القراءة