210 research outputs found
The State of the Art in Language Workbenches. Conclusions from the Language Workbench Challenge
Language workbenches are tools that provide high-level mechanisms for the implementation of (domain-specific) languages. Language workbenches are an active area of research that also receives many contributions from industry. To compare and discuss existing language workbenches, the annual Language Workbench Challenge was launched in 2011. Each year, participants are challenged to realize a given domain-specific language with their workbenches as a basis for discussion and comparison. In this paper, we describe the state of the art of language workbenches as observed in the previous editions of the Language Workbench Challenge. In particular, we capture the design space of language workbenches in a feature model and show where in this design space the participants of the 2013 Language Workbench Challenge reside. We compare these workbenches based on a DSL for questionnaires that was realized in all workbenches
Open Programming Language Interpreters
Context: This paper presents the concept of open programming language
interpreters and the implementation of a framework-level metaobject protocol
(MOP) to support them. Inquiry: We address the problem of dynamic interpreter
adaptation to tailor the interpreter's behavior on the task to be solved and to
introduce new features to fulfill unforeseen requirements. Many languages
provide a MOP that to some degree supports reflection. However, MOPs are
typically language-specific, their reflective functionality is often
restricted, and the adaptation and application logic are often mixed which
hardens the understanding and maintenance of the source code. Our system
overcomes these limitations. Approach: We designed and implemented a system to
support open programming language interpreters. The prototype implementation is
integrated in the Neverlang framework. The system exposes the structure,
behavior and the runtime state of any Neverlang-based interpreter with the
ability to modify it. Knowledge: Our system provides a complete control over
interpreter's structure, behavior and its runtime state. The approach is
applicable to every Neverlang-based interpreter. Adaptation code can
potentially be reused across different language implementations. Grounding:
Having a prototype implementation we focused on feasibility evaluation. The
paper shows that our approach well addresses problems commonly found in the
research literature. We have a demonstrative video and examples that illustrate
our approach on dynamic software adaptation, aspect-oriented programming,
debugging and context-aware interpreters. Importance: To our knowledge, our
paper presents the first reflective approach targeting a general framework for
language development. Our system provides full reflective support for free to
any Neverlang-based interpreter. We are not aware of any prior application of
open implementations to programming language interpreters in the sense defined
in this paper. Rather than substituting other approaches, we believe our system
can be used as a complementary technique in situations where other approaches
present serious limitations
ClaferMPS: Modeling and Optimizing Automotive Electric/Electronic Architectures Using Domain-Specific Languages
Modern automotive electric/electronic (E/E) architectures are growing to the point where architects can no longer manually predict the effects of their design decisions. Thus, in addition to applying an architecture reference model to decompose their architectures, they also require tools for synthesizing and evaluating candidate architectures during the design process. Clafer is a modeling language, which has been used to model variable multi-layer, multi-perspective automotive system architectures according to an architecture reference model. Clafer tools allow architects to synthesize optimal candidates and evaluate effects of their design decisions. However, since Clafer is a general-purpose structural modeling language, it does not help the architects in building models conforming to the given architecture reference model. In this work, we present ClaferMPS, a set of extensible languages and IDE for modeling E/E architectures using Clafer. First, we present an E/E architecture domain-specific language (DSL) built on top of Clafer, which embodies the reference model and which guides the architects in correctly applying the reference model. We then evaluate the DSL and its implementation by modeling two existing automotive systems, which were originally modeled in plain Clafer. The evaluation showed that by using the DSL, an evaluator obtained correct models by construction because the DSL helped prevent typical errors that are easy to make in plain Clafer. The evaluator was also able to synthesize and evaluate candidate architectures as with plain Clafer. Finally, we demonstrate extensibility capabilities of ClaferMPS. Our implementation is built on top of the JetBrains Meta Programming System, which supports language modularization and composition, multi-stage transformations and projectional editing. As a result, ClaferMPS allows third parties to seamlessly add extensions to both Clafer and the E/E architecture DSL without invasive changes. To illustrate this approach, we consider the Robot Operating System (ROS) communications infrastructure, a case study, which is outside the scope of the existing reference model. We show how the E/E architecture DSL can be adapted to the new domain using MPS language modularization and composition
MITK-ModelFit: A generic open-source framework for model fits and their exploration in medical imaging -- design, implementation and application on the example of DCE-MRI
Many medical imaging techniques utilize fitting approaches for quantitative
parameter estimation and analysis. Common examples are pharmacokinetic modeling
in DCE MRI/CT, ADC calculations and IVIM modeling in diffusion-weighted MRI and
Z-spectra analysis in chemical exchange saturation transfer MRI. Most available
software tools are limited to a special purpose and do not allow for own
developments and extensions. Furthermore, they are mostly designed as
stand-alone solutions using external frameworks and thus cannot be easily
incorporated natively in the analysis workflow. We present a framework for
medical image fitting tasks that is included in MITK, following a rigorous
open-source, well-integrated and operating system independent policy. Software
engineering-wise, the local models, the fitting infrastructure and the results
representation are abstracted and thus can be easily adapted to any model
fitting task on image data, independent of image modality or model. Several
ready-to-use libraries for model fitting and use-cases, including fit
evaluation and visualization, were implemented. Their embedding into MITK
allows for easy data loading, pre- and post-processing and thus a natural
inclusion of model fitting into an overarching workflow. As an example, we
present a comprehensive set of plug-ins for the analysis of DCE MRI data, which
we validated on existing and novel digital phantoms, yielding competitive
deviations between fit and ground truth. Providing a very flexible environment,
our software mainly addresses developers of medical imaging software that
includes model fitting algorithms and tools. Additionally, the framework is of
high interest to users in the domain of perfusion MRI, as it offers
feature-rich, freely available, validated tools to perform pharmacokinetic
analysis on DCE MRI data, with both interactive and automatized batch
processing workflows.Comment: 31 pages, 11 figures URL: http://mitk.org/wiki/MITK-ModelFi
Development of a system for example-driven software language engineering
Masteroppgave i informatikkINF399MAMN-PROGMAMN-IN
Gentleman : a lightweight web-based projectional editor
Lors de la conception et la manipulation de logiciel par modĂ©lisation, il est avantageux de bĂ©nĂ©ïŹcier dâun grand degrĂ© de libertĂ© au niveau de la prĂ©sentation aïŹn de comprendre lâinformation et prendre une action en exerçant peu dâeïŹort cognitif et physique. Cette caractĂ©ristique doit aussi sâĂ©tendre aux outils que nous employons aïŹn que ceux-ci augmentent nos capacitĂ©s, plutĂŽt que les restreindre. En gĂ©nie logiciel, nous travaillons prĂ©sentement Ă rehausser encore le niveau dâabstraction aïŹn de rĂ©duire le rĂŽle central du code dĂ©crit avec un langage de programmation Ă usage gĂ©nĂ©ral. Ceci permettrait dâinclure les experts non techniques dans les activitĂ©s de dĂ©veloppement de logiciel. Cette approche, centralisĂ©e sur le domaine et lâexpert, sâinscrit dans lâingĂ©nierie dirigĂ©e par les modĂšles (IDM), oĂč un modĂšle est produit et manipulĂ© par divers experts et utilisateurs. Le modĂšle est alors dĂ©crit avec un langage crĂ©Ă© spĂ©ciïŹquement pour un domaine dâapplication ou une tache, appelĂ© langage dĂ©diĂ© (DSL). Une technique utilisĂ©e pour crĂ©er ces modĂšles et leurs DSL est le projectional editing, qui permet dâutiliser des notations diverses interchangeables et dâĂ©tendre et composer facilement un langage. Toutefois, les solutions actuelles sont lourdes, spĂ©ciïŹques Ă une plateforme, et manquent considĂ©rablement dâutilisabilitĂ©, limitant ainsi lâusage et lâexploitation de cette approche. Pour mieux reïŹĂ©ter les avantages du paradigme IDM avec le style
projectionnel, nous introduisons dans cette thĂšse Gentleman, un Ă©diteur projectionnel lĂ©ger sur le web. Avec Gentleman, le dĂ©veloppeur crĂ©e un modĂšle en combinant des concepts utilisĂ©s pour dĂ©ïŹnir la structure du modĂšle et des projections pour les manipuler dans lâĂ©diteur. Nous avons Ă©valuĂ© Gentleman Ă travers une Ă©tude basĂ©e sur un groupe dâutilisateur. LâĂ©tude
a conïŹrmĂ© sa capacitĂ© Ă crĂ©er et manipuler des modĂšles eïŹcacement. Les participants ont notĂ© quâil est facile de prendre en main Gentleman et que lâinterface est trĂšs intuitive comparativement aux Ă©diteurs existants. Nous avons aussi intĂ©grĂ© Gentleman avec succĂšs Ă une plateforme web, dĂ©montrant ainsi ses capacitĂ©s dâinteropĂ©rabilitĂ© et lâavantage dâune solution
web.In software activities and, more specifically, when modeling, the modeler should benefit from as much freedom as possible to understand the presented information and take action with minimal cognitive and mechanical effort. This characteristic should also apply to the tools used in the process so that they extend our capabilities rather than limit them. In the field of software engineering, current work aims to push the level of abstraction past general-purpose programming language into domain-specific modeling. This enables domain experts with various backgrounds to participate in software development activities. This vision is central to model-driven engineering (MDE) where, instead of code, various experts and users produce and manipulate domain-specific language (DSL). In recent years, projectional editing has proven to be a valid approach to creating and manipulating DSLs, as it supports various easily interchangeable notations and enables language extension and composition. However, current solutions are heavyweight, platform-specific, and suffer from poor usability.
To better support this paradigm and minimize the risk of accidental complexity in terms of expressiveness, in this thesis, we introduce Gentleman, a lightweight web-based projectional editor. With Gentleman, a developer creates a model by combining concepts used to define its structure and projections to interact and manipulate them in the editor. We have evaluated Gentleman through a user study. The evaluation confirmed its capacity to create and manipulate models effectively. Most participants noted that the editor is very user-friendly and intuitive compared to existing editors. We have also successfully integrated Gentleman into a web application, demonstrating its interoperability and the benefit of a web solution
A declarative approach to heterogeneous multi-mode modelling languages
This paper proposes a declarative approach to multi-mode heterogeneous DSLs based on term rewriting. The paper presents a data model and algorithm for processing syntax structures. It has been validated by an implementation that supports a range of languages. The paper includes an example language that supports both game construction and execution
Towards Multilingual Programming Environments
Software projects consist of different kinds of artifacts: build files, configuration files, markup files, source code in different software languages, and so on. At the same time, however, most integrated development environments (IDEs) are focused on a single (programming) language. Even if a programming environment supports multiple languages (e.g., Eclipse), IDE features such as cross-referencing, refactoring, or debugging, do not often cross language boundaries. What would it mean for programming environment to be truly multilingual? In this short paper we sketch a vision of a system that integrates IDE support across language boundaries. We propose to build this system on a foundation of unified source code models and metaprogramming. Nevertheless, a number of important and hard research questions still need to be addressed
- âŠ