Stream X-Machine
اسٹریم ایکس مشین (ایس ایکس ایم) کمپیوٹیشن کا ایک نمونہ ہے جسے گلبرٹ لیکاک نے اپنے 1993 کے پی ایچ ڈی مقالے، دی تھیوری اینڈ پریکٹس آف سپیسیفیکیشن بیسڈ سافٹ ویئر ٹیسٹنگ میں متعارف کرایا تھا۔ سیموئل ایلن برگ کی ایکس مشین پر مبنی، جو کہ ٹائپ ایکس کے ڈیٹا کی پروسیسنگ کے لیے ایک توسیعی محدود ریاستی مشین ہے، اسٹریم ایکس مشین ایک قسم کی ایکس مشین ہے جو میموری ڈیٹا ٹائپ میم کو متعلقہ ان پٹ اور آؤٹ پٹ اسٹریمز ان * اور آؤٹ * کے ساتھ پروسیس کرتی ہے، یعنی جہاں ایکس = آؤٹ * × میم × ان * ہے۔ اسٹریم ایکس مشین کے ٹرانزیشنز کو فارم φ کے افعال کے ذریعے لیبل کیا جاتا ہے: میم × ان → آؤٹ × میم، یعنی، جو موجودہ میموری اور ان پٹ ویلیو سے آؤٹ پٹ ویلیو کا حساب لگاتے ہیں اور میموری کو اپ ڈیٹ کرتے ہیں۔ اگرچہ عام ایکس مشین کی شناخت 1980 کی دہائی میں سافٹ ویئر سسٹمز کی وضاحت کے لیے ممکنہ طور پر مفید رسمی ماڈل کے طور پر کی گئی تھی، لیکن اسٹریم ایکس مشین کے ابھرنے تک اس خیال کا مکمل استحصال نہیں کیا جا سکا تھا۔ فلورنٹن آئیپیٹ اور مائیک ہولکومب نے مکمل فنکشنل ٹیسٹنگ کا ایک نظریہ تیار کیا، مائیک ہولکومب اور فلورنٹن آئیپیٹ (1998) درست نظام-ایک کاروباری عمل کے حل کی تعمیر۔ اپلائیڈ کمپیوٹنگ سیریز۔ برلن: سپرنگر-ورلاگ۔ جس میں سیکڑوں ہزاروں ریاستوں اور لاکھوں ٹرانزیشن کے ساتھ پیچیدہ سافٹ ویئر سسٹمز کو الگ الگ ایس ایکس ایم میں تقسیم کیا جا سکتا ہے جن کی مکمل جانچ کی جا سکتی ہے، جس میں درست انضمام کا ضمانت شدہ ثبوت ہے۔ اسٹریم ایکس مشینوں کی "ان پٹ اور آؤٹ پٹ کے ساتھ پروسیسنگ ایجنٹوں" کے طور پر بدیہی تشریح کی وجہ سے، انہوں نے حقیقی دنیا کے مظاہر کی ماڈلنگ میں اپنی افادیت کی وجہ سے بڑھتی ہوئی دلچسپی کو اپنی طرف متوجہ کیا ہے۔ ایس ایکس ایم ماڈل کے کمپیوٹیشنل بائیولوجی، سافٹ ویئر ٹیسٹنگ اور ایجنٹ پر مبنی کمپیوٹیشنل اکنامکس جیسے متنوع شعبوں میں اہم استعمال ہیں۔ اسٹریم ایکس مشین اے اسٹریم ایکس مشین (ایس ایکس ایم) ایک توسیعی محدود ریاستی مشین ہے جس میں معاون میموری، ان پٹ اور آؤٹ پٹ ہیں۔ یہ عام ایکس مشین کی ایک قسم ہے، جس میں بنیادی ڈیٹا ٹائپ X = آؤٹ * × میموری × ان *، یعنی ایک ٹپل جو آؤٹ پٹ اسٹریم، میموری اور ان پٹ اسٹریم پر مشتمل ہوتا ہے۔ ایس ایکس ایم کسی نظام کے کنٹرول فلو کو نظام کے ذریعے کی جانے والی پروسیسنگ سے الگ کرتا ہے۔ کنٹرول کو ایک محدود ریاستی مشین (جو منسلک آٹومیٹن کے نام سے جانا جاتا ہے) کے ذریعے بنایا جاتا ہے جس کی منتقلی کو ایک سیٹ (جسے مشین کی قسم کہا جاتا ہے) سے منتخب کردہ پروسیسنگ افعال کے ساتھ لیبل کیا جاتا ہے، جو بنیادی ڈیٹا کی قسم پر عمل کرتے ہیں۔ φ میں ہر پروسیسنگ فنکشن ایک جزوی فنکشن ہے، اور اس کی قسم φ سمجھا جا سکتا ہے: میموری × ان → آؤٹ × میموری، جہاں میموری کی قسم ہے، اور ان اور آؤٹ بالترتیب ان پٹ اور آؤٹ پٹ کی اقسام ہیں۔ کسی بھی دی گئی حالت میں، منتقلی کو فعال کیا جاتا ہے اگر متعلقہ فنکشن φi کے ڈومین میں اگلی ان پٹ ویلیو اور موجودہ میموری کی حالت شامل ہو۔ اگر (زیادہ سے زیادہ) ایک منتقلی کو کسی دی گئی حالت میں فعال کیا جاتا ہے، تو مشین متعین ہوتی ہے۔ منتقلی کو عبور کرنا متعلقہ فنکشن φi کو لاگو کرنے کے مترادف ہے، جو ایک ان پٹ کا استعمال کرتا ہے، ممکنہ طور پر میموری میں ترمیم کرتا ہے اور ایک آؤٹ پٹ تیار کرتا ہے۔ اس لیے مشین کے ذریعے ہر تسلیم شدہ راستہ افعال کی ایک فہرست φ1. φn تیار کرتا ہے، اور SXM ان افعال کو مل کر بنیادی ڈیٹا ٹائپ |φ1 پر تعلق پیدا کرنے کے لیے تشکیل دیتا ہے۔ ایکس مشینوں سے تعلق اسٹریم ایکس مشین ایکس مشین کی ایک قسم ہے جس میں بنیادی ڈیٹا ٹائپ X = آؤٹ * × میموری × ان * ہے۔ اصل X-مشین میں، φi X پر عمومی تعلقات ہیں۔ اسٹریم ایکس مشین میں، یہ عام طور پر افعال تک محدود ہوتے ہیں ؛ تاہم ایس ایکس ایم اب بھی صرف اس صورت میں متعین ہوتا ہے جب ہر ریاست میں (زیادہ سے زیادہ) ایک منتقلی فعال ہو۔ ایک عام ایکس مشین ان پٹ کے لیے ایک سابقہ انکوڈنگ فنکشن α: Y → X کا استعمال کرتے ہوئے ان پٹ اور آؤٹ پٹ کو سنبھالتی ہے، اور آؤٹ پٹ کے لیے ایک پوسٹر ڈیکوڈنگ فنکشن β: X → Z، جہاں Y اور Z بالترتیب ان پٹ اور آؤٹ پٹ کی اقسام ہیں۔ اسٹریم ایکس مشین میں، یہ اقسام اسٹریمز ہیں: Y = ان * Z = آؤٹ * اور انکوڈنگ اور ڈیکوڈنگ افعال کی تعریف اس طرح کی جاتی ہے: α (ان) = (<>، میم 0، ان) β (آؤٹ، میمن، <>) = آؤٹ جہاں ان: ان *، آؤٹ: آؤٹ * اور میمی: میم۔ دوسرے لفظوں میں، مشین کو پورے ان پٹ اسٹریم کے ساتھ شروع کیا جاتا ہے ؛ اور ڈی کوڈ شدہ نتیجہ پورے آؤٹ پٹ اسٹریم کا ہوتا ہے، بشرطیکہ ان پٹ اسٹریم بالآخر استعمال ہو جائے (بصورت دیگر نتیجہ غیر متعین ہو)۔ ایس ایکس ایم میں ہر پروسیسنگ فنکشن کو مختصر قسم φSXM دیا جاتا ہے: میم × ان → آؤٹ × میم۔ اگر ہم اسے کمپیوٹنگ کے طور پر سمجھیں: φ (آؤٹ، میمو، ان: ان) = (آؤٹ:: آؤٹ، میمو + 1، ان) جہاں:: کسی عنصر اور ترتیب کے ارتکاز کی نشاندہی کرتا ہے۔ دوسرے لفظوں میں، رشتہ ان پٹ اسٹریم کے سر کو نکالتا ہے، میموری میں ترمیم کرتا ہے اور آؤٹ پٹ اسٹریم کی دم میں ایک قدر جوڑتا ہے۔ پروسیسنگ اور قابل جانچ خصوصیات مذکورہ بالا مساوات کی وجہ سے، توجہ اس بات پر مرکوز ہو سکتی ہے کہ اسٹریم ایکس مشین معاون میموری کا استعمال کرتے ہوئے آؤٹ پٹ میں ان پٹ کو کس طرح پروسیس کرتی ہے۔ ابتدائی میموری اسٹیٹ میمو اور ان پٹ اسٹریم انس کو دیکھتے ہوئے، مشین مرحلہ وار انداز میں کام کرتی ہے، ایک وقت میں ایک ان پٹ استعمال کرتی ہے، اور ایک وقت میں ایک آؤٹ پٹ تیار کرتی ہے۔ بشرطیکہ (کم از کم) ایک تسلیم شدہ راستہ = φ1. φn موجود ہے جو ایک ایسی حالت کی طرف لے جاتا ہے جس میں ان پٹ کا استعمال کیا گیا ہے، مشین ایک حتمی میموری اسٹیٹ میمن اور آؤٹ پٹ اسٹریم آؤٹ فراہم کرتی ہے۔ عام طور پر، ہم اسے تمام تسلیم شدہ راستوں کے حساب سے شمار کردہ تعلق کے طور پر سوچ سکتے ہیں:۔ راستہ۔: میں * → باہر *۔ اسے اکثر اسٹریم ایکس مشین کا طرز عمل کہا جاتا ہے۔ اگر ہر ریاست میں (زیادہ سے زیادہ) ایک منتقلی کو فعال کیا جائے تو یہ طرز عمل متعین ہوتا ہے۔ یہ خاصیت، اور یہ کنٹرول کرنے کی صلاحیت کہ مشین ان پٹ اور میموری کے جواب میں مرحلہ وار انداز میں کیسے برتاؤ کرتی ہے، اسے سافٹ ویئر سسٹمز کی تفصیلات کے لیے ایک مثالی نمونہ بناتی ہے۔ اگر تفصیلات اور نفاذ دونوں کو اسٹریم ایکس مشینیں سمجھا جاتا ہے، تو ہر مرحلے پر ان پٹ اور آؤٹ پٹ کا مشاہدہ کرکے، تفصیلات کی مشین کے مطابق عمل درآمد کی جانچ کی جا سکتی ہے۔ لیکاک نے سب سے پہلے جانچ کے مقاصد کے لیے مشاہدات کے ساتھ سنگل سٹیپ پروسیسنگ کی افادیت پر روشنی ڈالی۔ ہولکومب اور آئیپیٹ نے اسے سافٹ ویئر ٹیسٹنگ کے ایک عملی نظریہ کے طور پر تیار کیا جو مکمل طور پر جامع تھا، اور بہت بڑے نظاموں تک پہنچ گیا۔ درست انضمام کا ثبوت اس بات کی ضمانت دیتا ہے کہ ہر جزو اور ہر انضمام پرت کی الگ سے جانچ کرنا پورے نظام کی جانچ سے مطابقت رکھتا ہے۔ یہ تقسیم اور فتح کا نقطہ نظر بڑے نظاموں کے لیے مکمل جانچ کو ممکن بناتا ہے۔ جانچ کا طریقہ اسٹریم ایکس مشین جانچ کے طریقہ کار پر ایک علیحدہ مضمون میں بیان کیا گیا ہے۔ ایکس مشین ماڈل کی عمومی وضاحت، ایکس مشین بھی دیکھیں، جس میں ایک سادہ مثال بھی شامل ہے۔ اسٹریم ایکس مشین ٹیسٹنگ میتھوڈولوجی، ایک مکمل فنکشنل ٹیسٹنگ تکنیک ہے۔ اس طریقہ کار کا استعمال کرتے ہوئے، ٹیسٹوں کے ایک محدود سیٹ کی نشاندہی کرنا ممکن ہے جو مکمل طور پر اس بات کا تعین کرتا ہے کہ آیا کوئی عمل درآمد اس کی تفصیلات سے میل کھاتا ہے یا نہیں۔ یہ تکنیک اس بات پر اصرار کرتے ہوئے رسمی غیر فیصلہ کن حدود پر قابو پا لیتی ہے کہ صارفین نفاذ کے دوران ٹیسٹ کے اصولوں کے لیے احتیاط سے مخصوص ڈیزائن کا اطلاق کریں۔ سماجی کیڑوں سے لے کر معاشیات تک کے شعبوں میں ایپلی کیشنز کے ساتھ، ایس ایکس ایم ماڈل کا ایک ہم آہنگ ورژن، کمیونیکیٹنگ اسٹریم ایکس مشینیں (سی ایس ایکس ایم)۔ بیرونی روابط موٹیو پروجیکٹ، آبجیکٹ پر مبنی سافٹ ویئر کے لیے ٹیسٹ سیٹ تیار کرنے کے لیے SXM تکنیکوں کا استعمال کرتے ہوئے۔ EURACE پروجیکٹ، ایجنٹ پر مبنی کمپیوٹیشنل معاشیات میں CSXM تکنیکوں کا ایک اطلاق ہے۔ x-machines.net، ایک سائٹ جو ایکس مشین ریسرچ کے پس منظر کو بیان کرتی ہے۔ مائیک (پروفیسر۔ ڈبلیو ایم ایل) شیفیلڈ یونیورسٹی میں ہولکومب کا ویب پیج۔ کمپیوٹیشن کا حوالہ جات کا نظریہ کمپیوٹیشن سافٹ ویئر ٹیسٹنگ کے ماڈل