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 条
  • [31] Fast and efficient commits for Lazy-Lazy hardware transactional memory
    Epifanio Gaona
    José L. Abellán
    Manuel E. Acacio
    The Journal of Supercomputing, 2015, 71 : 4305 - 4326
  • [32] Enabling Energy Efficient Image Encryption using Approximate Memoization
    Hong, Seongmin
    Im, Jaehyung
    Islam, S. M. Mazharul
    You, Jaehee
    Park, Yongjun
    JOURNAL OF SEMICONDUCTOR TECHNOLOGY AND SCIENCE, 2017, 17 (03) : 465 - 472
  • [33] Lazy Composition of Representations in Java']Java
    Douence, Remi
    Lorca, Xavier
    Loriant, Nicolas
    SOFTWARE COMPOSITION, PROCEEDINGS, 2009, 5634 : 55 - +
  • [34] Efficient implementation of lazy suffix trees
    Giegerich, R
    Kurtz, S
    Stoye, J
    SOFTWARE-PRACTICE & EXPERIENCE, 2003, 33 (11): : 1035 - 1049
  • [35] Efficient implementation of lazy suffix trees
    Giegerich, R
    Kurtz, S
    Stoye, J
    ALGORITHM ENGINEERING, 1999, 1668 : 30 - 42
  • [36] Belief update in CLG Bayesian networks with lazy propagation
    Madsen, A. L.
    INTERNATIONAL JOURNAL OF APPROXIMATE REASONING, 2008, 49 (02) : 503 - 521
  • [37] INCREMENTAL ATTRIBUTE EVALUATION - A FLEXIBLE ALGORITHM FOR LAZY UPDATE
    HUDSON, SE
    ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 1991, 13 (03): : 315 - 341
  • [38] Temporal Memoization for Energy-Efficient Timing Error Recovery in GPGPUs
    Rahimi, Abbas
    Benini, Luca
    Gupta, Rajesh K.
    2014 DESIGN, AUTOMATION AND TEST IN EUROPE CONFERENCE AND EXHIBITION (DATE), 2014,
  • [39] Lazy Learned Screening for Efficient Recruitment
    Espenakk, Erik
    Knalstad, Magnus Johan
    Kofod-Petersen, Anders
    CASE-BASED REASONING RESEARCH AND DEVELOPMENT, ICCBR 2019, 2019, 11680 : 64 - 78
  • [40] Precise Lazy Initialization for Programs with Complex Heap Inputs
    Manuel Copia, Juan
    Molina, Facundo
    Aguirre, Nazareno
    Frias, Marcelo F.
    Gorla, Alessandra
    Ponzio, Pablo
    2023 IEEE 34TH INTERNATIONAL SYMPOSIUM ON SOFTWARE RELIABILITY ENGINEERING, ISSRE, 2023, : 752 - 762