TY - JOUR
T1 - Enhancing semantic bidirectionalization via shape bidirectionalizer plug-ins
AU - Voigtländer, Janis
AU - Hu, Zhenjiang
AU - Matsuda, Kazutaka
AU - Wang, Meng
PY - 2013/9
Y1 - 2013/9
N2 - Matsuda et al. (Matsuda, K., Hu, Z., Nakano, K., Hamana, M. & Takeichi, M. (2007) Bidirectionalization transformation based on automatic derivation of view complement functions. In Proceedings of the International Conference on Functional Programming. ACM Press, pp. 47-58) and Voigtl̈ander (Voigtl̈ander, J. (2009) Bidirectionalization for free! In Proceedings of Principles of Programming Languages. ACM Press, pp. 165-176) have introduced two techniques that given a sourceto-view function provide an update propagation function mapping an original source and an updated view back to an updated source, subject to standard consistency conditions. Previously, we developed a synthesis of the two techniques, based on a separation of shape and content aspects (Voigtl̈ander, J., Hu, Z., Matsuda, K. & Wang, M. (2010) Combining syntactic and semantic bidirectionalization. In Proceedings of the International Conference on Functional Programming. ACM Press, pp. 181-192). Here we carry that idea further, reworking the technique of Voigtl̈ander such that any shape bidirectionalizer (based on the work of Matsuda et al. (2007) or not) can be used as a plug-in, to good effect. We also provide a data-type-generic account, enabling wider reuse, including the use of pluggable bidirectionalization itself as a plug-in.
AB - Matsuda et al. (Matsuda, K., Hu, Z., Nakano, K., Hamana, M. & Takeichi, M. (2007) Bidirectionalization transformation based on automatic derivation of view complement functions. In Proceedings of the International Conference on Functional Programming. ACM Press, pp. 47-58) and Voigtl̈ander (Voigtl̈ander, J. (2009) Bidirectionalization for free! In Proceedings of Principles of Programming Languages. ACM Press, pp. 165-176) have introduced two techniques that given a sourceto-view function provide an update propagation function mapping an original source and an updated view back to an updated source, subject to standard consistency conditions. Previously, we developed a synthesis of the two techniques, based on a separation of shape and content aspects (Voigtl̈ander, J., Hu, Z., Matsuda, K. & Wang, M. (2010) Combining syntactic and semantic bidirectionalization. In Proceedings of the International Conference on Functional Programming. ACM Press, pp. 181-192). Here we carry that idea further, reworking the technique of Voigtl̈ander such that any shape bidirectionalizer (based on the work of Matsuda et al. (2007) or not) can be used as a plug-in, to good effect. We also provide a data-type-generic account, enabling wider reuse, including the use of pluggable bidirectionalization itself as a plug-in.
UR - http://www.scopus.com/inward/record.url?scp=84888363360&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=84888363360&partnerID=8YFLogxK
U2 - 10.1017/S0956796813000130
DO - 10.1017/S0956796813000130
M3 - Article
AN - SCOPUS:84888363360
SN - 0956-7968
VL - 23
SP - 515
EP - 551
JO - Journal of Functional Programming
JF - Journal of Functional Programming
IS - 5
ER -