Bidirectional transformation
کمپیوٹر پروگرامنگ میں، دو طرفہ تبدیلیاں (بی ایکس) وہ پروگرام ہیں جن میں کوڈ کے ایک ٹکڑے کو کئی طریقوں سے چلایا جا سکتا ہے، جیسے کہ ایک ہی ڈیٹا کو بعض اوقات ان پٹ اور بعض اوقات آؤٹ پٹ سمجھا جاتا ہے۔ مثال کے طور پر، آگے کی سمت میں ایک bx رن ان پٹ I کو آؤٹ پٹ O میں تبدیل کر سکتا ہے، جبکہ وہی bx رن بیک ورڈ I اور O کے ان پٹ ورژن کے طور پر لے گا اور اس کے آؤٹ پٹ کے طور پر I کا ایک نیا ورژن تیار کرے گا۔ دو طرفہ ماڈل کی تبدیلیاں ایک اہم خاص معاملہ ہے جس میں ایک ماڈل اس طرح کے پروگرام میں ان پٹ ہوتا ہے۔ کچھ دو طرفہ زبانیں متعصبانہ ہوتی ہیں۔ کسی زبان کی باجیکٹیویٹی اس کی طاقت کی ایک سخت پابندی ہے، کیونکہ ایک باجیکٹیو زبان محض ایک ہی معلومات کو پیش کرنے کے دو مختلف طریقوں سے متعلق ہے۔ زیادہ عام طور پر ایک لینس کی زبان ہے، جس میں ایک ممتاز آگے کی سمت ("حاصل کریں") ہوتی ہے جو ایک تجریدی آؤٹ پٹ پر ٹھوس ان پٹ لے جاتی ہے، اس عمل میں کچھ معلومات کو خارج کر دیتی ہے: ٹھوس حالت میں وہ تمام معلومات شامل ہوتی ہیں جو تجریدی حالت میں ہوتی ہیں، اور عام طور پر کچھ اور۔ پسماندہ سمت ("ڈال") ایک ٹھوس حالت اور ایک تجریدی حالت لیتا ہے اور ایک نئی ٹھوس حالت کا حساب لگاتا ہے۔ سمجھدار رویے کو یقینی بنانے کے لیے بعض شرائط کی پابندی کے لیے لینس کی ضرورت ہوتی ہے۔ سب سے عام معاملہ سمیٹرک دو طرفہ تبدیلیوں کا ہے۔ یہاں وہ دونوں ریاستیں جو متعلق ہیں عام طور پر کچھ معلومات کا اشتراک کرتی ہیں، لیکن ہر ایک میں کچھ ایسی معلومات بھی شامل ہوتی ہیں جو دوسرے میں شامل نہیں ہوتی ہیں۔ استعمال دو طرفہ تبدیلیوں کو اس کے لیے استعمال کیا جا سکتا ہے: معلومات کے کئی ذرائع کی مستقل مزاجی کو برقرار رکھنا ڈیٹا کو آسانی سے جوڑ توڑ کرنے اور انہیں ان کے ماخذ پر واپس لکھنے کے لیے ایک 'تجریدی نظریہ' فراہم کریں۔ لینس افعال کا ایک جوڑا ہے، جو ماخذ اور نقطہ نظر سے متعلق ہے۔ اگر یہ افعال لینس کے تین قوانین کی پابندی کرتے ہیں: پٹ گیٹ: گیٹ پٹ: پٹ پٹ: اسے اچھا برتاؤ والا لینس کہا جاتا ہے۔ ایک متعلقہ تصور ایک پریزم کا ہے، جس میں اس کے بجائے افعال کے دستخط ہوتے ہیں۔ عینک کے برعکس، ایک پرنزم ہمیشہ ایک نقطہ نظر نہیں دے سکتا ہے ؛ ایک لینس کے برعکس، ایک پرنزم دیا گیا ہے، ایک نقطہ نظر ایک ماخذ کی تعمیر کے لیے کافی ہے۔ اگر لینس کسی پروڈکٹ کی قسم کے کسی حصے پر "فوکسنگ" (دیکھنے، اپ ڈیٹ کرنے) کی اجازت دیتے ہیں، تو پریزم سم ٹائپ کے کسی حصے پر فوکسنگ (ممکنہ دیکھنے، تعمیر) کی اجازت دیتے ہیں۔ لینس اور پریزم دونوں کے ساتھ ساتھ دیگر تعمیرات جیسے ٹریورسلز، دو طرفہ تبدیلیوں کا زیادہ عام تصور ہیں جنہیں آپٹکس کہا جاتا ہے۔ نفاذ کی مثالیں بومرانگ ایک پروگرامنگ زبان ہے جو تحریری لینس کو ٹیکسٹ ڈیٹا فارمیٹس کو دو طرفہ طور پر پروسیس کرنے کی اجازت دیتی ہے۔ اوگیس ایک کنفیگریشن مینجمنٹ لائبریری ہے جس کے لینس کی زبان بومرانگ پروجیکٹ سے متاثر ہے۔ بائیکسڈ ایکس ایم ایل ڈیٹا کو دو طرفہ طور پر پروسیس کرنے کے لیے ایک پروگرامنگ زبان ہے۔ ایکس شوگر ایکس ایم ایل سے غیر ایکس ایم ایل فارمیٹس میں ترجمہ کی اجازت دیتا ہے۔ "ملٹی فوکل: ایکس ایم ایل اسکیما کے لیے ایک اسٹریٹجک دو طرفہ تبدیلی کی زبان"۔ ماڈل ٹرانسفارمیشنز کے نظریہ اور عمل پر بین الاقوامی کانفرنس۔ سپرنگر، برلن، ہیڈلبرگ، 2012۔ ریاضیاتی تعلقات