تحول ثنائي الاتجاه

في برمجة الحاسوب، تعد التحويلات ثنائية الاتجاه برامج يمكن من خلالها تشغيل قطعة واحدة من التعليمات البرمجية بعدة طرق، مثل اعتبار البيانات نفسها أحيانًا كمدخلات، وأحيانًا كمخرجات. على سبيل المثال، قد يؤدي تشغيل التحول ثنائي الاتجاه في الاتجاه الأمامي إلى تحويل المدخل I إلى المخرج O، في حين أن نفس التحول ثنائي الاتجاه في الاتجاه الخلفي سيأخذ كإصدارات المدخل من I وO وينتج إصدارًا جديدًا من I كمخرجاته.

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

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

الحالة الأكثر شيوعًا هي التحولات ثنائية الاتجاه المتماثلة. هنا تتشارك الحالتان المرتبطتان عادةً ببعض المعلومات، لكن كل منهما يحتوي أيضًا على بعض المعلومات التي لم يتم تضمينها في الأخرى.

استخدام 
يمكن استخدام التحولات ثنائية الاتجاه من أجل:

 الحفاظ على اتساق العديد من مصادر المعلومات.
 قدم «عرضًا تجريديًا» لمعالجة البيانات بسهولة وكتابتها مرة أخرى إلى مصدرها.

مفردات 
يُطلق على البرنامج ثنائي الاتجاه الذي يتبع بعض قوانين الذهاب والعودة العدسة.

أمثلة على عمليات التنفيذ 

 بوميرانج هي لغة برمجة تسمح لكتابة العدسات بمعالجة تنسيقات البيانات النصية ثنائية الاتجاه.
 أوجياس هي مكتبة إدارة التكوين التي مستوحاة لغة العدسة من مشروع بوميرانج.
 biXid هي لغة برمجة لمعالجة بيانات لغة الترميز القابلة للامتداد ثنائية الاتجاه.
 XSugar تسمح بالترجمة من لغة الترميز القابلة للامتداد إلى تنسيقات غير لغة الترميز القابلة للامتداد.

مراجع

روابط خارجية 

 
 Bidirectional Transformations: The Bx Wiki
 Pacheco, Hugo, and Alcino Cunha. "Multifocal: A strategic bidirectional transformation language for XML schemas." International Conference on Theory and Practice of Model Transformations. Springer, Berlin, Heidelberg, 2012.

علاقات رياضية
علم الحاسوب