16 research outputs found

    JModelica---an Open Source Platform for Optimization of Modelica Models

    Get PDF
    Optimization is becoming a standard methodology in many engineering disciplines to improve products and processes. The need for optimization is driven by factors such as increased costs for raw materials and stricter environmental regulations as well as a general need to meet increased competition. As model-based design processes are being used increasingly in industry, the prerequisites for optimization are often fulfilled. However, current tools and languages used to model dynamic systems are not always well suited for integration with state of the art numerical optimization algorithms. As a result, optimization is not used as frequently as it could, or less efficient, but easier to use, algorithms are employed. This paper reports a new Modelica-based open source project entitled JModelica, targeted towards dynamic optimization. The objective of the project is to bridge the gap between the need for high-level description languages and the details of numerical optimization algorithms. JModelica is also intended as an extensible platform where algorithm developers, particularly in the academic community, may integrate new and innovative methods. In doing so, researchers gain access to a wealth of industrially relevant optimization problems based on existing Modelica models, while at the same time facilitating industrial use of state of the art algorithms. The JModelica project rests upon three pillars, namely a language extension of Modelica for optimization entitled Optimica, software tools, and applications. In this paper, these three topics will be highlighted

    Integration of Heterogeneous Modeling Languages via Extensible and Composable Language Components

    Get PDF
    Effective model-driven engineering of complex systems requires to appropriately describe different specific system aspects. To this end, efficient integration of different heterogeneous modeling languages is essential. Modeling language integaration is onerous and requires in-depth conceptual and technical knowledge and ef- fort. Traditional modeling lanugage integration approches require language engineers to compose monolithic language aggregates for a specific task or project. Adapting these aggregates cannot be to different contexts requires vast effort and makes these hardly reusable. This contribution presents a method for the engineering of grammar-based language components that can be independently developed, are syntactically composable, and ultimately reusable. To this end, it introduces the concepts of language aggregation, language embed- ding, and language inheritance, as well as their realization in the language workbench MontiCore. The result is a generalizable, systematic, and efficient syntax-oriented composition of languages that allows the agile employment of modeling languages efficiently tailored for individual software projects.Comment: 12 pages, 11 figures. Proceedings of the 3rd International Conference on Model-Driven Engineering and Software Development. Angers, Loire Valley, France, pp. 19-31, 201

    A SIP-based Programming Framework for Advanced Telephony Applications

    Get PDF
    International audienceThe scope of telephony is signiïŹcantly broadening, providing users with a variety of communication modes, including presence status, instant messaging and videoconferencing. Furthermore, telephony is being increasingly combined with a number of non-telephony, heterogeneous resources, consisting of software entities, such as Web services, and hardware entities, such as location-tracking devices. This heterogeneity, compounded with the intricacies of underlying technologies, make the programming of new telephony applications a daunting task. This paper proposes an approach to supporting the development of advanced telephony applications. To do so, we introduce a declarative language over Java to deïŹne the entities of a target telephony application area. This deïŹnition is passed to a generator to produce a Java programming framework, dedicated to the application area. The generated frameworks provide service discovery and high-level communication mechanisms. These mechanisms are automatically mapped into SIP, making our approach compatible with existing SIP infrastructures and entities. Our work is implemented and has been validated on various advanced telephony applications

    Portable Robot Control

    Get PDF
    Abstract The topic of this master thesis is Portable Robot Control and it has been performed jointly with the thesis Portable Robot Programming. The robots mentioned in the title of the Master thesis are industrial robots. Industrial robots are embedded real-time systems. In the embedded real-time systems the computer is part of the system. As all other real-time systems they have to fulfill real-time requirements. Hence, they must be deterministic and predictable.Then, the control and programming tasks of these industrial robots must be performed with tools providing the mechanisms to fulfill the time requirements above-seen. The first task of the thesis is the communication of a robot system using a real-time network protocol. The real-time protocol chosen is ThrottleSim, the Java-based simulation of ThrottleNet. To perform this communications a real-time communications environment is designed. This environment is focused on the intermediate layer that is the link between the chosen network protocol and the application layer. Once the communications in robot systems are implemented, they must be integrated in that system. A robot system consists of many different elements. These parts are the mechanical manipulator (robot) and the robot control system which can consist of the robot server, the computers where the control parameters are generated, the simulator or the network which is used for the communication between all the different parts.The implementation of a Java-based infrastructure to integrate all the parts of the robot system in some experiments is the second main-task of the thesis. Finally, the tasks described above are implemented in the Java programming language, because of its wide range of advantages (platform independence, simplicity, security and robustness). Despite of the fact that Java has a lack of efficiency that makes it not suitable for real-time systems, it is possible to use it as a real-time language through the Java-to-C compilation. This solution provides the advantages of Java as a programming language and solves its main disadvantage

    Ό-DSU:A Micro-Language Based Approach to Dynamic Software Updating

    Get PDF
    Today software systems play a critical role in society’s infrastructures and many are required to provide uninterrupted services in their constantly changing environments. As the problem domain and the operational context of such software changes, the software itself must be updated accordingly. In this paper we propose to support dynamic software updating through language semantic adaptation; this is done through use of micro-languages that confine the effect of the introduced change to specific application features. Micro-languages provide a logical layer over a programming language and associate an application feature with the portion of the programming language used to implement it. Thus, they permit to update the application feature by updating the underlying programming constructs without affecting the behaviour of the other application features. Such a linguistic approach provides the benefit of easy addition/removal of application features (with a special focus on non-functional features) to/from a running application by separating the implementation of the new feature from the original application, allowing for the application to remain unaware of any extensions. The feasibility of this approach is demonstrated with two studies; its benefits and drawbacks are also analysed

    JastAdd--an aspect-oriented compiler construction system

    Get PDF
    centered around an object-oriented representation of the abstract syntax tree where reference variables can be used to link together different parts of the tree. JastAdd supports the combination of declarative techniques (using Reference Attributed Grammars) and imperative techniques (using ordinary Java code) in implementing the compiler. The behavior can be modularized into different aspects, e.g. name analysis, type checking, code generation, etc., that are woven together into classes using aspect-oriented programming techniques, providing a safer and more powerful alternative to the Visitor pattern. The JastAdd system is independent of the underlying parsing technology and supports any non-circular dependencies between computations, thereby allowing general multi-pass compilation. The attribute evaluator (optimal recursive evaluation) is implemented very conveniently using Java classes, interfaces, and virtual methods. Key words: reference attributed grammars, aspect-oriented programming, compiler construction, visitor pattern, Java
    corecore