Combining a Declarative Language and an Imperative Language for Bidirectional Incremental Model Transformations

被引:2
|
作者
Bank, Matthias [1 ]
Buchmann, Thomas [1 ]
Westfechtel, Bernhard [1 ]
机构
[1] Univ Bayreuth, Chair Appl Comp Sci 1, Univ Str 30, D-95440 Bayreuth, Germany
关键词
Model-Driven Software Development; Model Transformation; Bidirectional Transformation; Incremental Transformation; TRIPLE GRAPH-GRAMMARS;
D O I
10.5220/0010188200150027
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Bidirectional incremental model transformations are crucial for supporting round-trip engineering in model-driven software development. A variety of domain-specific languages (DSLs) have been proposed for the declarative specification of bidirectional transformations. Unfortunately, previous proposals fail to provide the expressiveness required for solving practically relevant bidirectional transformation problems. To address this shortcoming, we propose a layered approach: On the declarative level, a bidirectional transformation is specified concisely in a small and light-weight external DSL. From this specification, code is generarated into an object-oriented framework, on top of which the behavior of the transformation may be complemented and adapted in an imperative internal DSL. An evaluation with the help of a well-known transformation case demonstrates that this layered hybrid approach is both concise and expressive, and also scalable.
引用
收藏
页码:15 / 27
页数:13
相关论文
共 50 条
  • [1] BXtendDSL: A layered framework for bidirectional model transformations combining a declarative and an imperative language
    Buchmann, Thomas
    Bank, Matthias
    Westfechtel, Bernhard
    [J]. JOURNAL OF SYSTEMS AND SOFTWARE, 2022, 189
  • [2] BXtendDSL at Work: Combining Declarative and Imperative Programming of Bidirectional Model Transformations
    Buchmann T.
    Bank M.
    Westfechtel B.
    [J]. SN Computer Science, 4 (1)
  • [3] A Formal Translation From an Imperative Language With Array to a Declarative Language
    Godbout, D.
    Ktari, B.
    Mejri, M.
    [J]. NEW TRENDS IN SOFTWARE METHODOLOGIES, TOOLS AND TECHNIQUES, 2006, 147 : 319 - 339
  • [4] A Declarative Gradualizer with Language Transformations
    Mourad, Benjamin
    Cimini, Matteo
    [J]. PROCEEDINGS OF THE 32ND SYMPOSIUM ON IMPLEMENTATION AND APPLICATION OF FUNCTIONAL LANGUAGES, IFL 2020, 2020, : 44 - 54
  • [5] Alma-0: An imperative language that supports declarative programming
    Apt, KR
    Brunekreef, J
    Partington, V
    Schaerf, A
    [J]. ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 1998, 20 (05): : 1014 - 1066
  • [6] PLEASE - A LANGUAGE COMBINING IMPERATIVE AND LOGIC PROGRAMMING
    TERWILLIGER, RB
    [J]. SIGPLAN NOTICES, 1988, 23 (04): : 103 - 110
  • [7] Prosodic encoding of declarative, interrogative and imperative sentences in Jaminjung, a language of Australia
    Simard, Candide
    [J]. 14TH ANNUAL CONFERENCE OF THE INTERNATIONAL SPEECH COMMUNICATION ASSOCIATION (INTERSPEECH 2013), VOLS 1-5, 2013, : 793 - 797
  • [8] BXtend - A Framework for (Bidirectional) Incremental Model Transformations
    Buchmann, Thomas
    [J]. PROCEEDINGS OF THE 6TH INTERNATIONAL CONFERENCE ON MODEL-DRIVEN ENGINEERING AND SOFTWARE DEVELOPMENT, 2018, : 336 - 345
  • [9] DReX: A Declarative Language for Efficiently Evaluating Regular String Transformations
    Alur, Rajeev
    D'Antoni, Loris
    Raghothaman, Mukund
    [J]. ACM SIGPLAN NOTICES, 2015, 50 (01) : 125 - 137
  • [10] Relating Declarative Hypermedia Objects and Imperative Objects through the NCL Glue Language
    Gomes Soares, Luiz Fernando
    Moreno, Marcelo Ferreira
    Sant'Anna, Francisco
    [J]. DOCENG'09: PROCEEDINGS OF THE 2009 ACM SYMPOSIUM ON DOCUMENT ENGINEERING, 2009, : 222 - 230