top of page

Trading Chanakya Group

Public·184 members

Implementing Domain-specific Languages With Xtext And Xtend Pdf Download ((BETTER))


Here is where Xtext comes into play. Given a grammar Xtext generates the complete infrastructure needed to offer a complete and feature-rich tooling for your domain-specific languages with good defaults and still easily customizable in all aspects using dependency injection through well defined extension points.

Another newer approach is the Muenster Skeleton Tool (Musket). It generates code based on an input model, which is expressed in a domain-specific language (DSL). This language has built-in support for distributed data structures and algorithmic skeletons. Since we look at the code generation process from the perspective of model-driven software development, we use the terminology of a DSL, model and generator, rather than programming language, program and compiler. From our perspective, there are two main advantages of using a model-driven development approach in the context of parallel programming with algorithmic skeletons. First, as known from the literature, a DSL can simplify and speedup the development process, since the language only focusses on necessary core features [6, 7]. For instance in our case, the musket DSL does not require to explicitely handle low-level details such as data transports between host and GPUs or between different GPUs. Consequently, the DSL code is much more concise than equivalent C++ code using e.g. CUDA. Second, it provides a good way for performing transformations on the model [6, 7]. In particular, the available model-driven development tools, such as xtext and xtend [8, 9], directly provide the abstract syntax tree (AST) of a model. Moreover this AST is rather small and easy to handle because of the concise syntax of the DSL. Thus, it is relatively easy to perform optimizations such as map fusion or fusing map and fold into a single mapreduce skeleton. 153554b96e


Welcome to the group! You can connect with other members, ge...
bottom of page