keep mind fresh


  • Contact : zantao[at]
  • Room : 1611
  • National Institute of Informatics
  • Chiyoda-ku, Hitotsubashi 2-1-2
  • Tokyo, Japan 101-8430


Research Topic : A Putback-based Approach to Bidirectional Programming
Research interest:

programming language, bidirectional transformation, model-driven software development, self-adaptive system

Changes involve in the whole software design process and software system. E.g. changes of requirement lead to changes of modeling, changes of modeling lead to changes of implementation, and vice versa. Another example is the APIs in Android system, changes of APIs require developers to change their Apps each time. Thus how to identify and propagate the changes correctly and reduce human efforts is a critical issue. Bidirectional transformation is a promising approach to tackle this issue which plays an important role for maintaining the consistency between two related information (we call them source and view) when changes happen on either side. Since source and view are usually not in a one-to-one correspondence, this change propagation process is inherently ambiguous. Nevertheless, existing bidirectional transformation tools focus mainly on enforcing consistency and provide developers only limited control over how they are synchronized, solving the latent ambiguity via default strategies whose behavior is unclear to developers. We proposed a novel approach in which developers write update programs that succinctly describe how a view can be used to update a source, such that the bidirectional behavior is fully determined. The new approach mitigates the unpredictability of existing solutions, by enabling a finer and more transparent control of what a bidirectional transformation does. We have developed a new update-based bidirectional transformation language called BiFLuX which can be used to update XML structured data bidirectionally. We show the usefulness of our approach by applying BiFLuX for clone code synchronization, parsing and printing, updating of relational database, and adaptive system for smart-room.


National Institute of Informatics / The Graduate University for Advaced Studies
2011.10 -- Present

5-year Ph.D Course
Supervisor: Professor Zhenjiang Hu
Department of Informatics
School of Multidisciplinary Sciences

University of Science and Technology of China(USTC)
2007.09 -- 2011.06

B.S Degree
Department of Computer Science
School of Information Computer Science


  • Tao Zan, Li Liu, Hsiang-Shang Ko, Zhenjiang Hu, Brul: A Putback-Based Bidirectional Transformation Library for Updatable Views , 5th International Workshop on Bidirectional Transformations (BX 2016), as part of ETAPS 2016, Eindhoven, The Netherlands, April 8, 2016.
  • Xiao Cheng, Yuting Chen, Zhenjiang Hu, Tao Zan, Mengyu Liu, Hao Zhong, Jianjun Zhao, Supporting Selective Undo for Refactoring, 23rd IEEE International Conference on Software Analysis, Evolution, and Reengineering (SANER 2016), Osaka, Japan, March 14-18, 2016.
  • Hsiang-Shang Ko, Tao Zan, Zhenjiang Hu, BiGUL: A Formally Verified Core Language for Putback-Based Bidirectional Programming, ACM SIGPLAN 2016 Workshop on Partial Evaluation and Program Manipulation (PEPM 2016), St. Petersburg, Florida, United States, January 18 - 19, 2016.
  • Luxi Chen, Linpeng Huang, Chen Li, Tao Zan, Integrating behavior analysis into architectural modeling, Frontiers of Computer Science (FCS), Volume 9, Issue 1, pp 15-33, 2015.
  • Hugo Pacheco, Tao Zan, Zhenjiang Hu, BiFluX: A Bidirectional Functional Update Language for XML, The 16th International Symposium on Principles and Practice of Declarative Programming (PPDP 2014).
  • Tao Zan, Hugo Pacheco, Zhenjiang Hu, Writing Bidirectional Model Transformations as Intentional Changes, New Ideas and Emerging Results Track of 36th International Conference on Software Engineering (ICSE 2014), Hyderabad, India, May 31 - June 7, 2014.
  • Luxi Chen, Linpeng Huang, Chen Li, Tao Zan, A Bidirectional Framework for Model Synchronization in Component-Based Software Development, 13th International Conference on Quality Software, (QISC 2013), Nanjing, China, July 29 - 30, 2013.