122 research outputs found
A Domain-Specific Language and Editor for Parallel Particle Methods
Domain-specific languages (DSLs) are of increasing importance in scientific
high-performance computing to reduce development costs, raise the level of
abstraction and, thus, ease scientific programming. However, designing and
implementing DSLs is not an easy task, as it requires knowledge of the
application domain and experience in language engineering and compilers.
Consequently, many DSLs follow a weak approach using macros or text generators,
which lack many of the features that make a DSL a comfortable for programmers.
Some of these features---e.g., syntax highlighting, type inference, error
reporting, and code completion---are easily provided by language workbenches,
which combine language engineering techniques and tools in a common ecosystem.
In this paper, we present the Parallel Particle-Mesh Environment (PPME), a DSL
and development environment for numerical simulations based on particle methods
and hybrid particle-mesh methods. PPME uses the meta programming system (MPS),
a projectional language workbench. PPME is the successor of the Parallel
Particle-Mesh Language (PPML), a Fortran-based DSL that used conventional
implementation strategies. We analyze and compare both languages and
demonstrate how the programmer's experience can be improved using static
analyses and projectional editing. Furthermore, we present an explicit domain
model for particle abstractions and the first formal type system for particle
methods.Comment: Submitted to ACM Transactions on Mathematical Software on Dec. 25,
201
Specifying Software Languages: Grammars, Projectional Editors, and Unconventional Approaches
We discuss several approaches for defining software languages, together with Integrated Development Environments for them. Theoretical foundation is grammar-based models: they can be used where proven correctness of specifications is required. From a practical point of view, we discuss how language specification can be made more accessible by focusing on language workbenches and projectional editing, and discuss how it can be formalized. We also give a brief overview of unconventional ideas to language definition, and outline three open problems connected to the approaches we discuss
Projectional Editors for JSON-Based DSLs
Augmenting text-based programming with rich structured interactions has been
explored in many ways. Among these, projectional editors offer an enticing
combination of structure editing and domain-specific program visualization. Yet
such tools are typically bespoke and expensive to produce, leaving them
inaccessible to many DSL and application designers.
We describe a relatively inexpensive way to build rich projectional editors
for a large class of DSLs -- namely, those defined using JSON. Given any such
JSON-based DSL, we derive a projectional editor through (i) a language-agnostic
mapping from JSON Schemas to structure-editor GUIs and (ii) an API for
application designers to implement custom views for the domain-specific types
described in a schema. We implement these ideas in a prototype, Prong, which we
illustrate with several examples including the Vega and Vega-Lite data
visualization DSLs.Comment: To appear at VL/HCC 202
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
Generating graphical and projectional editors
En ingénierie dirigée par les modÚles, les langages spécifiques au domaine (DSL) offrent des
notations adaptées à un domaine précis pour représenter ses différents concepts. De nombreux
outils permettent la définition de DSLs en explicitant les relations entre un concept et
ses reprĂ©sentations. En fonction de la sĂ©mantique du domaine, lâingĂ©nieur du langage peut
choisir entre des notations textuelles ou graphiques. Les langages de modélisation graphique
nécessitent une gestion de la position, la taille et la disposition des éléments visuels afin de
maximiser leur expressivité visuelle. La plupart des éditeurs de modélisation manquent de
support automatique pour gérer ces propriétés de la syntaxe concrÚte. Les éditeurs projectionnels
permettent aux utilisateurs de se concentrer sur la conception de leur modĂšle en
limitant les modifications de la syntaxe concrĂšte. Cependant, bien quâils offrent de multiples
notations, ces éditeurs ne permettent pas la création de langage graphique. Dans
ce mémoire, nous proposons une nouvelle approche pour concevoir des éditeurs graphiques
et projectionnels. Nous avons crĂ©Ă© une extension dâun Ă©diteur projectionnel orientĂ© vers le
web, Gentleman, qui nous a permis dâextraire diffĂ©rentes exigences. Au cours du mĂ©moire,
nous décrivons leurs impacts sur les projections et proposons des lignes directrices ainsi
que des exemples dâimplĂ©mentation. Comme lâĂ©dition projectionnelle demande une gestion
spĂ©cifique de lâinteraction, nous prĂ©sentons diffĂ©rentes approches pour interagir avec les reprĂ©sentations
graphiques utilisant les nouvelles informations disponibles dans les projections.
Ătant donnĂ© que la plupart des exigences se concentrent sur la disposition des projections,
nous avons défini plusieurs algorithmes simples de disposition qui couvrent une large gamme
de structures pouvant ĂȘtre retrouvĂ©es dans un Ă©diteur graphique. Enfin, afin dâĂ©valuer cette
approche, nous avons exploré la génération de trois éditeurs graphiques et projectionnels
pour diffĂ©rents domaines: les machines dâĂ©tats, les diagrammes de sĂ©quences et les partitions
de musique.In model-driven engineering, domain specific-languages (DSL) provide tailored notations towards
a specific problem domain to represent its different concepts. Multiple tools allow the
definition of DSL by specifying the relations between a concept and its representations. Depending
on the semantics of the domain, the language engineer can choose between textual or
graphical notations. Graphical modeling languages require proper management of position,
size, and layout to maximize their visual expressiveness. Most modeling editors lack automated
support to manage these graphical concrete syntax properties. It is a time-consuming
effort that affects the understandability of the model. Projectional editors prevent end-users
from modifying the concrete syntax so they can focus on the modeling task. However, while
they offer multiple notations, these editors lack support for graphical languages. During this
thesis, we propose a new approach to design graphical and projectional editors. We created
an extension of a web-oriented projectional editor, Gentleman, that allowed us to extract
different requirements. During the thesis, we describe their impact on the projections and
propose guidelines and examples of implementation. Because projectional editing requires
specific management of the interaction, we present multiple approaches to interact with the
graphical representations, using the new information available in the graphics. Since most
of the requirements were focusing on the disposition of the projection, we define multiple
simple layout algorithms that cover a large range of structures that can be found in a graphical
editor. Finally, we explore the generation of three graphical and projectional editors for
different domains: statecharts, sequence diagrams, and music sheet
SKot: A web-based Structured Code Editor for introductory programming in Kotlin
The use of Structured Code Editors such as Scratch for introduction to programing, especially
at a younger age is prevalent in modern education systems. Transitioning to
text-based editors sometimes proves to be challenging for beginners especially when it
comes to learning the syntax of a modern language.
This work goes into the research on Structured Code Editors and delves into the
implementation of a Projectional Editor that presents the code to the user as it would
appear in a text-based editor in a modern programing language such as Kotlin, while
preserving syntactical correctness during edits.
A web-based editor, named SKot for Structured Kotlin was implemented using JavaScript
(JSON, React and Redux). A technique for implementing the Projectional Editor using
these technologies is described in detail. Then, SKot is compared to other modern code
editors and further work is proposed to improve it.O uso de Editores Estruturados de Código como o Scratch para introdução à programação,
especialmente em idades mais jovens, é prevalente nos sistemas de educação
modernos. A transição para editores de código baseados em texto pode ser desafiante
para iniciantes, principalmente no que diz respeito Ă aprendizagem da sintaxe de uma
linguagem moderna.
Este trabalho explora a investigação atual sobre Editores Estruturados de Código e
explica a implementação de um Editor Projecional que apresenta o código ao utilizador
com a mesma aparĂȘncia que teria num editor de texto numa linguagem de programação
moderna, como Kotlin, enquanto preserva a correção sintåtica durante ediçÔes.
Um editor no web browser, chamado SKot (Structured Kotlin), foi implementado usando
JavaScript (JSON, React e Redux). Uma técnica para implementar o Editor Projecional
usando estas tecnologias Ă© descrita em detalhe. Por fim, o SKot Ă© comparado com
outros editores de cĂłdigo modernos e descreve-se trabalho futuro relativo a melhoramentos
no mesmo
A survey on the design space of end-user-oriented languages for specifying robotic missions
Mobile robots are becoming increasingly important in society. Fulfilling complex missions in different contexts and environments,robots are promising instruments to support our everyday live. As such, the task of defining the robotâs missionis moving from professional developers and roboticists to the end-users. However, with the current state-of-the-art, definingmissions is non-trivial and typically requires dedicated programming skills. Since end-users usually lack such skills, manycommercial robots are nowadays equipped with environments and domain-specific languages tailored for end-users. As such,the software support for defining missions is becoming an increasingly relevant criterion when buying or choosing robots.Improving these environments and languages for specifying missions toward simplicity and flexibility is crucial. To this end,we need to improve our empirical understanding of the current state-of-the-art of such languages and their environments. Inthis paper, we contribute in this direction. We present a survey of 30 mission specification environments for mobile robots thatcome with a visual and end-user-oriented language. We explore the design space of these languages and their environments,identify their concepts, and organize them as features in a feature model. We believe that our results are valuable to practitionersand researchers designing the next generation of mission specification languages in the vibrant domain of mobilerobots
- âŠ