An Efficient Composition of Bidirectional Programs by Memoization and Lazy Update

被引:1
|
作者
Tsushima, Kanae [1 ,2 ]
Trong, Bach Nguyen [1 ,2 ]
Gluck, Robert [3 ]
Hu, Zhenjiang [4 ]
机构
[1] Natl Inst Informat, Tokyo, Japan
[2] Grad Univ Adv Studies SOKENDAI, Hayama, Kanagawa, Japan
[3] Univ Copenhagen, Copenhagen, Denmark
[4] Peking Univ, Beijing, Peoples R China
关键词
Bidirectional transformation; Implementation technique; Efficiency; Optimization; Tupling;
D O I
10.1007/978-3-030-59025-3_10
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Bidirectional transformations (BX) are a solution to the view update problem and widely used for synchronizing data. The semantics and correctness of bidirectional programs have been investigated intensively during the past years, but their efficiency and optimization are not yet fully understood. In this paper, as a first step, we study different evaluation methods to optimize their evaluation. We focus on the interpretive evaluation of BX compositions because we found that these compositions are an important cause of redundant computations if the compositions are not right associative. For evaluating BX compositions efficiently, we investigate two memoization methods. The first method, minBiGUL m, uses memoization, which improves the runtime of many BX programs by keeping intermediate results for later reuse. A disadvantage is the familiar tradeoff for keeping and searching values in a table. When inputs become large, the overhead increases and the effectiveness decreases. To deal with large inputs, we introduce the second method, xpg, that uses tupling, lazy update and lazy evaluation as optimizations. Lazy updates delay updates in closures and enables them to use them later. Both evaluation methods were fully implemented for minBiGUL. The experimental results show that our methods are faster than the original method of BiGUL for the non-right associative compositions.
引用
收藏
页码:159 / 178
页数:20
相关论文
共 50 条
  • [41] Efficient Memoization for Approximate Function Evaluation over Sequence Arguments
    Biswas, Tamal
    Regan, Kenneth W.
    ALGORITHMIC ASPECTS IN INFORMATION AND MANAGEMENT, AAIM 2014, 2014, 8546 : 185 - 196
  • [42] Compiling lazy functional programs to Java']Java bytecode
    Meehan, G
    Joy, M
    SOFTWARE-PRACTICE & EXPERIENCE, 1999, 29 (07): : 617 - 645
  • [43] Securing Concurrent Lazy Programs Against Information Leakage
    Vassena, Marco
    Breitner, Joachim
    Russo, Alejandro
    2017 IEEE 30TH COMPUTER SECURITY FOUNDATIONS SYMPOSIUM (CSF), 2017, : 37 - 52
  • [44] Formal Reasoning About Lazy-STM Programs
    Li, Yong
    Zhang, Yu
    Chen, Yi-Yun
    Fu, Ming
    JOURNAL OF COMPUTER SCIENCE AND TECHNOLOGY, 2010, 25 (04) : 841 - 852
  • [45] Formal Reasoning About Lazy-STM Programs
    Yong Li
    Yu Zhang
    Yi-Yun Chen
    Ming Fu
    Journal of Computer Science and Technology, 2010, 25 : 841 - 852
  • [46] Composing Bidirectional Programs Monadically
    Xia, Li-yao
    Orchard, Dominic
    Wang, Meng
    PROGRAMMING LANGUAGES AND SYSTEMS, ESOP 2019: 28TH EUROPEAN SYMPOSIUM ON PROGRAMMING, 2019, 11423 : 147 - 175
  • [47] Formal Reasoning About Lazy-STM Programs
    李勇
    张昱
    陈意云
    付明
    Journal of Computer Science & Technology, 2010, 25 (04) : 841 - 852
  • [48] Preserving sharing in the partial evaluation of lazy functional programs
    Fischer, Sebastian
    Silva, Josep
    Tamarit, Salvador
    Vidal, German
    LOGIC-BASED PROGRAM SYNTHESIS AND TRANSFORMATION, 2008, 4915 : 74 - +
  • [49] Exploiting Justifications for Lazy Grounding of Answer Set Programs
    Bogaerts, Bart
    Weinzierl, Antonius
    PROCEEDINGS OF THE TWENTY-SEVENTH INTERNATIONAL JOINT CONFERENCE ON ARTIFICIAL INTELLIGENCE, 2018, : 1737 - 1745
  • [50] Lazy Sequentialization for the Safety Verification of Unbounded Concurrent Programs
    Nguyen, Truc L.
    Fischer, Bernd
    La Torre, Salvatore
    Parlato, Gennaro
    AUTOMATED TECHNOLOGY FOR VERIFICATION AND ANALYSIS, ATVA 2016, 2016, 9938 : 174 - 191