LEADER 03839oam 2200457 450 001 9910418322703321 005 20230621141111.0 024 8 $ahttps://doi.org/10.30819/4291 035 $a(CKB)4100000011479656 035 $a(oapen)https://directory.doabooks.org/handle/20.500.12854/64461 035 $a(ScCtBLL)68e7392c-6a32-4502-8b08-84f07b9333d2 035 $a(EXLCZ)994100000011479656 100 $a20210223h20162016 fy 0 101 0 $ager 135 $aurm|#|||||||| 181 $ctxt$2rdacontent 182 $cc$2rdamedia 183 $acr$2rdacarrier 200 12$aA functional, comprehensive and extensible multi-platform querying and transformation approach /$fTassilo Horn 210 $aBerlin/Germany$cLogos Verlag Berlin$d2016 210 1$aBerlin, Germany :$cLogos Verlag Berlin GmbH,$d[2016] 210 4$dİ2016 215 $a1 online resource (xv, 454 pages) $cillustrations; digital file(s) 300 $aThesis approved by the doctoral committee of the Faculty 4: Computer Science at the University Koblenz-Landau in fulfillment with the requirements for obtaining the degree Doktor der Naturwissenschaften (Dr. rer. nat.). -- Title-page verso. 311 08$aPrint version: 3832542914 320 $aIncludes bibliographical references and index. 330 $aThis thesis is about a new model querying and transformation approach called FunnyQT which is realized as a set of APIs and embedded domain-specific languages (DSLs) in the JVM-based functional Lisp-dialect Clojure. Founded on a powerful model management API, FunnyQT provides querying services such as comprehensions, quantified expressions, regular path expressions, logic-based, relational model querying, and pattern matching. On the transformation side, it supports the definition of unidirectional model-to-model transformations, of in-place transformations, it supports defining bidirectional transformations, and it supports a new kind of co-evolution transformations that allow for evolving a model together with its metamodel simultaneously. Several properties make FunnyQT unique. Foremost, it is just a Clojure library, thus, FunnyQT queries and transformations are Clojure programs. However, most higher-level services are provided as task-oriented embedded DSLs which use Clojure's powerful macro-system to support the user with tailor-made language constructs important for the task at hand. Since queries and transformations are just Clojure programs, they may use any Clojure or Java library for their own purpose, e.g., they may use some templating library for defining model-to-text transformations. Conversely, like every Clojure program, FunnyQT queries and transformations compile to normal JVM byte-code and can easily be called from other JVM languages. Furthermore, FunnyQT is platform-independent and designed with extensibility in mind. By default, it supports the Eclipse Modeling Framework and JGraLab, and support for other modeling frameworks can be added with minimal effort and without having to modify the respective framework's classes or FunnyQT itself. Lastly, because FunnyQT is embedded in a functional language, it has a functional emphasis itself. Every query and every transformation compiles to a function which can be passed around, given to higher-order functions, or be parametrized with other functions. 606 $aComputer science 610 $amodel transformation 610 $amodel querying 610 $aClojure 610 $aFunnyQT 610 $agraph transformation 615 0$aComputer science. 676 $a005.1028 700 $aHorn$b Tassilo$0966169 801 0$bUkMaJRU 906 $aBOOK 912 $a9910418322703321 996 $aA functional, comprehensive and extensible multi-platform querying and transformation approach$92192505 997 $aUNINA