Bidirectional transformation
कंप्यूटर प्रोग्रामिंग में, द्विदिशात्मक परिवर्तन (बीएक्स) ऐसे प्रोग्राम हैं जिनमें कोड के एक टुकड़े को कई तरीकों से चलाया जा सकता है, जैसे कि एक ही डेटा को कभी-कभी इनपुट के रूप में और कभी-कभी आउटपुट के रूप में माना जाता है। उदाहरण के लिए, आगे की दिशा में एक bx रन इनपुट I को आउटपुट O में बदल सकता है, जबकि वही bx रन बैकवर्ड I और O के इनपुट संस्करणों के रूप में लेगा और अपने आउटपुट के रूप में I का एक नया संस्करण उत्पन्न करेगा। द्विदिश मॉडल परिवर्तन एक महत्वपूर्ण विशेष मामला है जिसमें एक मॉडल इस तरह के कार्यक्रम के लिए इनपुट होता है। कुछ द्विदिशात्मक भाषाएँ वस्तुनिष्ठ होती हैं। किसी भाषा की वस्तुनिष्ठता उसकी शक्ति का एक गंभीर प्रतिबंध है, क्योंकि एक वस्तुनिष्ठ भाषा केवल एक ही जानकारी प्रस्तुत करने के लिए दो अलग-अलग तरीकों से संबंधित है। अधिक सामान्य एक लेंस भाषा है, जिसमें एक विशिष्ट आगे की दिशा ("प्राप्त करें") होती है जो एक अमूर्त आउटपुट के लिए एक ठोस इनपुट लेती है, प्रक्रिया में कुछ जानकारी को छोड़ देती हैः ठोस अवस्था में सभी जानकारी शामिल होती है जो अमूर्त अवस्था में होती है, और आमतौर पर कुछ और। पश्च दिशा (पुट) एक ठोस अवस्था और एक अमूर्त अवस्था लेती है और एक नई ठोस अवस्था की गणना करती है। समझदारीपूर्ण व्यवहार सुनिश्चित करने के लिए कुछ शर्तों का पालन करने के लिए लेंस की आवश्यकता होती है। सबसे सामान्य मामला सममित द्विदिशात्मक परिवर्तनों का है। यहाँ दोनों राज्य जो संबंधित हैं, आम तौर पर कुछ जानकारी साझा करते हैं, लेकिन प्रत्येक में कुछ जानकारी भी शामिल होती है जो दूसरे में शामिल नहीं है। उपयोग द्विदिशात्मक परिवर्तनों का उपयोग निम्न के लिए किया जा सकता हैः सूचना के कई स्रोतों की स्थिरता बनाए रखें आसानी से डेटा में हेरफेर करने और उन्हें उनके स्रोत पर वापस लिखने के लिए एक 'अमूर्त दृश्य' प्रदान करें परिभाषा द्विदिशात्मक परिवर्तन विभिन्न अच्छी तरह से अध्ययन की गई श्रेणियों में आते हैं। लेंस एक स्रोत और एक दृश्य से संबंधित कार्यों की एक जोड़ी है। यदि ये कार्य लेंस के तीन नियमों का पालन करते हैंः पुटगेटः गेटपुटः पुटपुटः इसे एक अच्छा व्यवहार वाला लेंस कहा जाता है। एक संबंधित धारणा एक प्रिज्म की है, जिसमें इसके बजाय कार्यों के हस्ताक्षर हैं। एक लेंस के विपरीत, एक प्रिज्म हमेशा एक दृश्य नहीं दे सकता है; एक लेंस के विपरीत, एक प्रिज्म दिए जाने पर, एक दृश्य एक स्रोत के निर्माण के लिए पर्याप्त है। यदि लेंस उत्पाद प्रकार के किसी भाग पर "फ़ोकसिंग" (देखने, अद्यतन करने) की अनुमति देते हैं, तो प्रिज्म एक योग प्रकार के एक भाग पर फ़ोकसिंग (संभावित देखने, निर्माण) की अनुमति देते हैं। लेंस और प्रिज्म दोनों, साथ ही साथ अन्य निर्माण जैसे कि ट्रेवर्सल, प्रकाशिकी के रूप में जाने जाने वाले द्विदिशात्मक परिवर्तनों की अधिक सामान्य धारणा हैं। कार्यान्वयन के उदाहरण बूमरैंग एक प्रोग्रामिंग भाषा है जो लेखन लेंस को पाठ डेटा प्रारूपों को संसाधित करने की अनुमति देती है, दोनों दिशाओं में ऑगियास एक विन्यास प्रबंधन पुस्तकालय है जिसकी लेंस भाषा बूमरैंग परियोजना से प्रेरित है, एक्स. एम. एल. डेटा को द्विदिश रूप से संसाधित करने के लिए एक प्रोग्रामिंग भाषा है एक्स. चीनी एक्स. एम. एल. से गैर-एक्स. एम. एल. प्रारूपों में अनुवाद की अनुमति देती है। "मल्टीफोकलः एक्स. एम. एल. योजना के लिए एक रणनीतिक द्विदिशात्मक परिवर्तन भाषा"। मॉडल परिवर्तनों के सिद्धांत और अभ्यास पर अंतर्राष्ट्रीय सम्मेलन। स्प्रिंगर, बर्लिन, हेडलबर्ग, 2012। गणितीय संबंध