Extending graph rewriting for refactoring

被引:0
|
作者
Van Eetvelde, N [1 ]
Janssens, D [1 ]
机构
[1] Univ Antwerp, Dept Comp Sci, B-2020 Antwerp, Belgium
来源
关键词
D O I
暂无
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Refactorings are transformations that change the structure of a program, while preserving the behavior. The topic has attracted a lot of attention recently, since it is a promising approach towards the problem of program erosion. Nevertheless a solid theoretical foundation is still lacking. In this paper we focus on improving the expressive power of graph re writing rules, so that more refactorings can be expressed by single rules. Two new mechanisms are introduced: a notion of refinement of graphs, enabling one to treat specific substructures (e.g. syntax trees of expressions) as a whole, and a notion of duplication, enabling one to use parts of rewriting rules as prototypes that can be instantiated several times. Both mechanisms can be viewed as ways to specify large or infinite sets of rules in a concise way. It is shown that the refactorings PushdownMethod, ExtractMethod and InlineMethod can be expressed using the proposed techniques.
引用
收藏
页码:399 / 415
页数:17
相关论文
共 50 条
  • [1] EXTENDING POWEREPSILON WITH ALGEBRAIC REWRITING
    ZENG, LX
    ZHU, MY
    [J]. SIGPLAN NOTICES, 1994, 29 (01): : 20 - 26
  • [2] Refactoring Rules for Graph Databases
    Fonseca, Adriane M.
    Camolesi, Luiz, Jr.
    [J]. NEW CONTRIBUTIONS IN INFORMATION SYSTEMS AND TECHNOLOGIES, VOL 1, PT 1, 2015, 353 : 33 - 42
  • [3] Graph theoretical indicators and refactoring
    Zimmer, JA
    [J]. EXTREME PROGRAMMING AND AGILE METHODS - XP/AGILE UNIVERSE 2003, 2003, 2753 : 62 - 72
  • [4] ON THE ADEQUACY OF GRAPH REWRITING FOR STIMULATING TERM REWRITING
    KENNAWAY, JR
    KLOP, JW
    SLEEP, MR
    DEVRIES, FJ
    [J]. ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 1994, 16 (03): : 493 - 523
  • [5] Term Graph Rewriting and Parallel Term Rewriting
    Corradini, Andrea
    Drewes, Frank
    [J]. ELECTRONIC PROCEEDINGS IN THEORETICAL COMPUTER SCIENCE, 2011, (48): : 3 - 18
  • [6] TERM GRAPH REWRITING
    BARENDREGT, HP
    VANEEKELEN, MCJD
    GLAUERT, JRW
    KENNAWAY, JR
    PLASMEIJER, MJ
    SLEEP, MR
    [J]. LECTURE NOTES IN COMPUTER SCIENCE, 1987, 259 : 141 - 158
  • [7] Termination of Graph and Term Graph Rewriting
    Koenig, Barbara
    [J]. ELECTRONIC PROCEEDINGS IN THEORETICAL COMPUTER SCIENCE, 2016, (225): : 2 - 2
  • [8] Patch Graph Rewriting
    Overbeek, Roy
    Endrullis, Jorg
    [J]. GRAPH TRANSFORMATION, ICGT 2020, 2020, 12150 : 128 - 145
  • [9] Ambient Graph Rewriting
    Cenciarelli, Pietro
    Talamo, Ivano
    Tiberi, Alessandro
    [J]. ELECTRONIC NOTES IN THEORETICAL COMPUTER SCIENCE, 2005, 117 : 335 - 351
  • [10] Term graph rewriting
    Klop, JW
    [J]. HIGHER-ORDER ALGEBRA, LOGIC, AND TERM REWRITING, 1996, 1074 : 1 - 16