guage is divided into three abstraction layers - pro-
cess, task, and skill. The process layer is intended
for users whose knowledge about programming lan-
guages is limited. The task level involves simple in-
structions for the robot. Finally, the skill level is the
lowest one, describing primitive actions for the robot.
All components that shape the DSL are modeled by
using UML diagrams. The paper also demonstrates
its implementation through a small screw example
that will be extended in future research. (Joyeux and
Albiez, 2011) explain the process of designing an Au-
tonomous Underwater Vehicle (AUV) robot. It starts
by explaining the advantages of using an embedded
DSL on this kind of system. It also presents an ex-
ample based on Ruby that details the implementation
of the system by using Rock and Orocos Real-Time
Toolkit (RTT). Another interesting use case is de-
scribed in (Maro et al., 2015), in which the implemen-
tation of both textual and graphical DSL is described,
as well as the challenges that they have solved.
One of the problems in robot programming is ex-
plained in (Herrero et al., 2015), which clarifies that
the existence of several proprietary languages renders
difficult the task of robot programming. The authors
also present a more generic architecture based on the
robotics skills. These skills could be defined as small
tasks that are a combination of primitives, while prim-
itives are the basic functions that the robot is able to
do. It also explains how the robot in question has been
modeled by using this skill based architecture and the
tests in a real environment.
Moreover, there are several research papers where
a DSL in robotic systems is used to model the sys-
tem. (Lotz et al., 2016) explains the whole process
of a robot modeling system. Meta-model, DSL, and
code generation are explained, within the tools and
framework that the authors have used for each pur-
pose. Graphical and textual representations are used
to show the advantages and disadvantages in each sit-
uation. The paper (Ramaswamy et al., 2014) talks
about SafeRobots, a Model-Driven Software Devel-
opment approach. Its framework is divided into
three parts; the Operational space, the solution space
and the problem space. The operational space col-
lects extended information about system’s analysis.
The workflow of the SafeRobots framework consists
of four parts: General Domain Knowledge Model-
ing, Problem-specific knowledge or solution model-
ing, Problem-specific concrete or operation modeling,
and executable code. The solution model is based
on functional and non-functional properties (NFPs).
These are modeled by using the DSL, Solution Space
Modeling Language (SSML). Another example can
be found in (Schlegel et al., 2009) in which another
model for robot systems is described by trying to use
existing technology to simplify the robot modeling. A
runtime can be found in (Lotz et al., 2011) to moni-
tor the robotics software components. It receives any
information from the sensors and forwards it to the
diagnose port. The black port enriches the informa-
tion it receives, i.e. adding timestamps, and thanks
to a buffer is also able to manage multiple sensors.
Finally, the diagnose port checks whether all loaded
conditions in the XML profiles are valid according the
robot model.
3 DOMAIN SPECIFIC
LANGUAGES
According to the work of (van Deursen et al., 2000), a
Domain Specific Language (DSL) is defined as a pro-
gramming language or executable specification lan-
guage that offers, through appropriate notations and
abstractions, expressive power focused on, and usu-
ally restricted to, a particular problem domain. These
abstractions and notations have to be suitable for the
stakeholders who specify the system. In most situa-
tions, the DSL are focused on limited cases and are
used as a tool for particular processes. In contrast to a
General-purpose Programming Language (GPL) such
as C# or Java, a DSL usually contains only a restricted
set of notations and abstractions specialized to one or
more particular domains.
The main goal of using a DSL is the simplifica-
tion of the development process in which a developer
does not handle complicated functions or parameters.
A DSL can also make a program easier to understand
because it usually presents a human-readable aspect.
Two well-known examples are the Cascading Style
Sheets (CSS) and Structured Query Language (SQL)
languages, which provide an abstraction layer to ease
the development instead of programming in the na-
tive language. There is also a possibility that a project
might use several DSL in various places.
There are mainly two kinds of DSL, textual and
graphical. Both implementations have their own ad-
vantages and disadvantages. A graphical DSL pro-
vides a better visualization and understanding of both
the modeling process and the final model. Unfortu-
nately, versioning is harder to implement for this no-
tation and it can occur that not all situations can be
shown when the system gets too complex.
On the other hand, textual representation increases
the speed of creation and editing but it could be harder
to understand the whole picture of the final system.
Two different types of textual DSL exist; external
DSL, which define their own syntax and semantics,
ICINCO 2017 - 14th International Conference on Informatics in Control, Automation and Robotics
550