756 research outputs found

    Tiny programming language to improve assembly generation for automation equipment

    Get PDF
    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

    Get PDF
    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

    Get PDF
    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

    Get PDF
    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

    Get PDF
    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

    Get PDF
    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

    Full text link
    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

    Get PDF
    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
    corecore