756 research outputs found
Tiny programming language to improve assembly generation for automation equipment
The development time in industrial informatics systems, within industry environments, is a very important
issue for competitiveness. The usage of adequate targetspecific
programming languages is very important because
they can facilitate and improve developers’ productivity, allowing solutions to be expressed in the idiom and at the level
of abstraction of the problem’s domain.
In this paper we present a target-specific programming
language, which was designed to improve the design cycle of
code generation, for an industrial embedded system. The native assembly code, the new language structure and their
constructs, are presented in the paper. The proposed targetspecific language is expressed using words and terms that are
related to the target’s domain and consequently it is now easier
to program, understand and to validate the desired code. It is also demonstrated the language efficiency by comparing some
code described using the new language against the previous
used code. The design cycle is improved with the usage of the
target-specific language because both description and debug
time are significantly reduced with this new software tool. This
is also a case of university-industry partnership
Hierarchical Combination of Internal and External Domain-Specific Languages for Scientific Computing
To adapt established methods of software engineering for scientific computing, we propose a software development approach for interdisciplinary teams of scientists called Sprat.
The approach is organized around a hierarchical architecture that combines internal and external domain-specific languages (DSLs). For its evaluation, Sprat is employed in the implementation of a marine ecosystem model. We highlight what is to be observed while integrating the DSLs into the hierarchy in order to enable a successful cooperation of scientists in interdisciplinary teams as well as to achieve a maintainable code base
A domain specific language for domotic systems
To cope with modernity, the interesting of having a fully automated house has been increasing over the years, as technology evolves and as our lives become more stressful and overloaded. An automation system provides a way to simplify some daily tasks, allowing us to have more spare time to perform activities where we are really needed. There are some systems in this domain that try to implement these characteristics, but this kind of technology is at its early stages of evolution being that it is still far away of empowering the user with the desired control over a habitation. The reason is that the mentioned systems miss some important features such as adaptability, extension and evolution.
These systems, developed from a bottom-up approach, are often tailored for programmers and domain experts, discarding most of the times the end users that remain with unfinished interfaces or products that they have difficulty to control. Moreover, complex behaviors are avoided, since they are extremely difficult to implement mostly due to the necessity of handling priorities, conflicts and device calibration. Besides, these solutions are only reachable at very high costs, yet they still have the limitation of being difficult to configure by non-technical people once in runtime operation.
As a result, it is necessary to create a tool that allows the execution of several automated actions, with an interface that is easy to use but at the same time supports all the main features of this domain. It is also desirable that this tool is independent of the hardware so it can be reused, thus a Model Driven Development approach (MDD) is the ideal option, as it is a method that follows those principles. Since the automation domain has some very specific concepts, the use of models should be combined with a Domain Specific Language (DSL). With these two methods, it is possible to create a solution that is adapted to the end users, but also to domain experts and programmers due to the several levels of abstraction that can be added to diminish the complexity of use.
The aim of this thesis is to design a Domain Specific Language (DSL) that uses the Model Driven Development approach (MDD), with the purpose of supporting Home Automation (HA) concepts. In this implementation, the development of simple and complex scenarios should be supported and will be one of the most important concerns. This DSL should also support other significant features in this domain, such as the ability to schedule tasks, which is something that is limited in the current existing solutions
Hierarchical structure of automation application
Prosessiautomaatiossa sovellukset, jotka ohjaavat tehtaan toimintaa suunnitellaan usein tehdaskohtaisesti. Tehdaskohtaisen automaatiosovelluksen kehitys pohjautuu lähtötietoihin kuten toimintakuvauksiin ja -kaavioihin. Automaatiosuunnittelija muuntaa kuvatun toiminnon automaatiojärjestelmän ominaisuuksien puitteissa sovellukseksi, jolla prosessia ohjataan.
Automaatiosovellukset suunnitellaan toimilohkokaavioina. Toimilohkokaavioiden ilmaisuvoima on rajallinen ja niitä tarvitaan tehtaan toiminnallisuuden kattamiseen tuhansia. Sovellus rakentuu laitekohtaisista toimilohkokaavioista, jotka yhteen kytkettyinä muodostavat koko prosessin ohjauksen. Automaatiosovellukset eivät noudata yhtenäistä rakennetta vaan eri toimittajilla on omat mallinsa.
Automaatiosovelluksen suunnittelu on monivaiheinen ja useampaa eri toimijaa koskeva kokonaisuus. Suunnittelu on aikaa vievää ja käytetyt rakenteet epätehokkaita. Sovelluksen suunnitteluun kuluvaa aikaa voidaan vähentää käyttämällä valmiita ratkaisuja joko tuotteistettujen tai kopioitujen rakenteiden muodossa.
Diplomityössä kartoitetaan sovellusrakenteen muuttamista hierarkkiseen malliin. Hierarkkisella eli allekkaisten eri tarkkuustason omaavien rakenteiden avulla haetaan suunnitteluun tehokkaampia työtapoja. Työn tavoitteena oli saavuttaa näkemys hierarkkisesta sovellusrakenteesta, joka sopii jatkuvatoimiseen prosessiautomaatioon. Selvitys on tehty pääasiassa käyttäjähaastatteluin. Haastatteluiden tueksi työ avaa suunnitteluprosessia ja siihen vaikuttavia tekijöitä, joita tukee kirjallisuuslähteet sekä muiden sovellusrakenteiden selvitys.
Nykyisen automaatiosovelluksen mallin todettiin sisältävän liikaa vaihtelua ja sen sisältö paljastaa liikaa yksityiskohtia. Oleellisimpana muutoksena kohti parempaa sovellusmallina on abstraktimpi toimilohkokaavio, joka mahdollistaa muiden toimilohkokaavioiden käytön suunnitteluelementteinä. Abstraktimmalla mallilla, jossa on mahdollista käyttää suurempia kokonaisuuksia, voitaisiin suunnitella laitekokonaisuuksia ohjaavia rakenteita. Työssä nousi esiin vaatimuksia ja yksityiskohtia, jotka on hyvä huomioida, jos rakennetta muutetaan. Hierarkkista rakennetta tukee sen mahdollisuus työtehtävään sopivaan yksityiskohtien määrään sekä visuaaliseen rakenteen hahmottamiseen. Esitetty sovellusmalli sellaisenaan ei nopeuta suunnittelutyötä, jos lähtötietoihin ei saada rakenteellista muutosta, päinvastoin sillä voi olla negatiivinen vaikutus.The automation application that controls a process is designed separately for each plant. The plant specific application development is based on initial information such as functional descriptions and diagrams. An automation engineer transforms those specifications into automation application with the features the automation system offers.
The applications are designed as function block diagrams. The function block language has a limited capability to express complex functions so thousands of diagrams are needed to represent the full functionality of a factory. The application is built of separate device specific controls that are connected to form the control logic of the factory. The automation applications do not conform to a uniform format as all suppliers have their own.
Designing automation application is a multiphase and multi-stakeholder process. The application engineering is time consuming and the used structures are inefficient. The engineering can be accelerated by using former applications, either productized solutions or copying existing functionality.
This thesis concentrates on alternative application format. A hierarchical format where the level of application details varies between design levels was proposed to streamline engineering. The focus was to assemble a model that would fit into continuous process automation. The main research method was user interviews. The interviews are supported by review of the application engineering process and its effecting variables.
Current application model contains too much variation and is too detailed for intended use. The main development item towards better format is the possibility to use application diagrams as visual design elements in other diagrams. An abstract format would allow the design of larger structures. Other implementation details and requirements came up that are worthwhile to consider if changing the application structure. The hierarchical structure was supported by its ability to adapt to the needed detail level and to visualize the structure better. The proposed model would not on its own help the application engineering efficiency if there is no change on the specification format
Practical domain-specific debuggers using the Moldable Debugger framework
International audienceUnderstanding the run-time behavior of software systems can be a challenging activity. Debuggers are an essential category of tools used for this purpose as they give developers direct access to the running systems. Nevertheless, traditional debuggers rely on generic mechanisms to introspect and interact with the running systems, while developers reason about and formulate domain-specific questions using concepts and abstractions from their application domains. This mismatch creates an abstraction gap between the debugging needs and the debugging support leading to an inefficient and error-prone debugging effort, as developers need to recover concrete domain concepts using generic mechanisms. To reduce this gap, and increase the efficiency of the debugging process, we propose a framework for developing domain-specific debuggers, called the Moldable Debugger, that enables debugging at the level of the application domain. The Moldable Debugger is adapted to a domain by creating and combining domain-specific debugging operations with domain-specific debugging views, and adapts itself to a domain by selecting, at run time, appropriate debugging operations and views. To ensure the proposed model has practical applicability (i.e., can be used in practice to build real debuggers), we discuss, from both a performance and usability point of view, three implementation strategies. We further motivate the need for domain-specific debugging, identify a set of key requirements and show how our approach improves debugging by adapting the debugger to several domains
Towards high-level fuzzy control specifications for building automation systems
UID/CEC/50021/2019.
Grant: FCT/MCTES TUBITAK/0008/2014
FCT/DAAD - 2018/2019 (Poc. DAAD 441.00).
UID/EMS/50022/2019.
project TIN2015-73566-JIN and by the Consellería de Cultura, Educación e Ordenación Universitaria (accreditation 2016–2019, ED431G/08 and reference competitive group 2019–2021, ED431C 2018/29) and the European Regional Development Fund (ERDF).The control logic underlying building automation systems has consisted, traditionally, of embedded discrete programs created using either low-level or proprietary scripting languages, or using general purpose fourth-generation visual languages like Simulink. It is also well known that programs developed in this way are hard to evolve, test, and maintain. These difficulties are intensified when continuous control problems have to be tackled or when the actuation must vary continually subject to the sensor inputs. Such is the case in day-lighting or occupancy-based control applications. In this paper, we propose a declarative high-level Domain-Specific Language that aims to reduce the effort required to specify the control logic of building automation systems. Our language combines fuzzy logic and temporal logic, enabling to define the behaviour in terms of domain abstractions. Finally, the approach has been validated in two ways: (i) in a case study that simulates the control system of an automated office room and (ii) by means of an empirical study to confirm usability (with a System Usability Scale questionnaire) and effectiveness, here regarded from the perspective of correctness, of the proposed language with respect to a well-known language like Simulink.authorsversionpublishe
Ann: a domain-specific language for the effective design and validation of Java annotations
This paper describes a new modelling language for the effective design and validation of
Java annotations. Since their inclusion in the 5th edition of Java, annotations have grown
from a useful tool for the addition of meta-data to play a central role in many popular
software projects. Usually they are not conceived in isolation, but in groups, with
dependency and integrity constraints between them. However, the native support provided by Java for expressing this design is very limited.
To over
come
its
deficiencies
and
make
explicit
the
rich
conceptual model which lies
behind a set of annotations,we propose a domain-specific modelling language.The proposal has been implemented as an Eclipse plug-in, including an editor and an integrated
code generator that synthesises annotation processors. The environmental so integrates a model finder,able to detectun satisfiable constraints between different annotations, and to provide examples of correct annotation usages for validation. The language has been tested
using a real set of annotations from the Java Persistence API(JPA).Within this subset we have found enough rich semantics expressible with Ann and omitted nowadays by the Java language, which shows the benefits of Ann in are levant field of application
MULTI-MODAL TASK INSTRUCTIONS TO ROBOTS BY NAIVE USERS
This thesis presents a theoretical framework for the design of user-programmable
robots. The objective of the work is to investigate multi-modal unconstrained natural
instructions given to robots in order to design a learning robot. A corpus-centred
approach is used to design an agent that can reason, learn and interact with a human in a
natural unconstrained way. The corpus-centred design approach is formalised and
developed in detail. It requires the developer to record a human during interaction and
analyse the recordings to find instruction primitives. These are then implemented into a
robot. The focus of this work has been on how to combine speech and gesture using
rules extracted from the analysis of a corpus. A multi-modal integration algorithm is
presented, that can use timing and semantics to group, match and unify gesture and
language. The algorithm always achieves correct pairings on a corpus and initiates
questions to the user in ambiguous cases or missing information. The domain of card
games has been investigated, because of its variety of games which are rich in rules and
contain sequences. A further focus of the work is on the translation of rule-based
instructions. Most multi-modal interfaces to date have only considered sequential
instructions. The combination of frame-based reasoning, a knowledge base organised as
an ontology and a problem solver engine is used to store these rules. The understanding
of rule instructions, which contain conditional and imaginary situations require an agent
with complex reasoning capabilities. A test system of the agent implementation is also
described. Tests to confirm the implementation by playing back the corpus are
presented. Furthermore, deployment test results with the implemented agent and human
subjects are presented and discussed. The tests showed that the rate of errors that are
due to the sentences not being defined in the grammar does not decrease by an
acceptable rate when new grammar is introduced. This was particularly the case for
complex verbal rule instructions which have a large variety of being expressed
- …