21 research outputs found

    A comparison of metacompilation approaches to implementing Modelica

    Get PDF

    The Design and Implementation of Bloqqi - A Feature-Based Diagram Programming Language

    Get PDF
    This dissertation presents the design and implementation of a new block diagram programming language, Bloqqi, for building control systems with focus on variability. The language has been developed in collaboration with industry with the goal of reducing engineering time and improving reuse of functionality.When building a control system for a plant, there are typically different variants of the same base functionality. A plant may have several variants of a tank, for example, one variant with heating and another one without. This dissertation presents novel language mechanisms for describing this kind of variability, based on diagram inheritance. For instance, Bloqqi supports specifying what features, like heating, the base functionality can have. These specifications are then used to automatically derive smart-editing support in the form of a feature-based wizard. In this wizard, the user can select what features the base functionality should have, and code is generated corresponding to these features. The new language mechanisms allow feature-based libraries to be created and extended in a modular way.This dissertation presents techniques for implementing rich graphical editors with smart editing support based on semantic analysis. A prototype compiler and graphical editor have been implemented for the language, using the semantic formalism reference attribute grammars (RAGs). RAGs allow tools to share the semantic specifications, which makes it possible to modularly extend the compiler with support for advanced semantic feedback to the user of the graphical editor

    Reusing Semantics in Visual Editors: A Case for Reference Attribute Grammars

    Get PDF
    The semantic formalism reference attribute grammars (RAGs) allows graphs to be superimposed on abstract syntax trees. This paper investigates how RAGs can be used to model visual languages, with a case study of a control language that also has a textual syntax. The language contains blocks on which a total execution order is defined based on connections and layout information. One strength of RAGs is reusability, and we demonstrate this by reusing the definition of the execution order in the visual editor to provide semantic feedback to the user

    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

    Memory Optimization in the JastAdd Metacompiler

    Get PDF
    JastAdd is a tool for generating programming language compilers. These compilers generally use more memory than other compilers for the same language. In this thesis we have categorized the memory use of two JastAdd-generated compilers, to identify opportunities to reduce their memory use. We present several optimizations for reducing the memory use of these compilers. These include changes to the runtime representation of the AST and memoization in the code generated by JastAdd. We have implemented the optimizations in JastAdd and benchmarked their performance with respect to memory use and execution time. We see an overall reduction of the optimizable memory use for the two compilers of approximately 5% and 24%.Detta arbete undersöker och utvärderar nya metoder för att minska minnesanvänd- ningen i kompilatorer genererade med metakompilatorsystemet JastAdd

    Contributions to the Construction of Extensible Semantic Editors

    Get PDF
    This dissertation addresses the need for easier construction and extension of language tools. Specifically, the construction and extension of so-called semantic editors is considered, that is, editors providing semantic services for code comprehension and manipulation. Editors like these are typically found in state-of-the-art development environments, where they have been developed by hand. The list of programming languages available today is extensive and, with the lively creation of new programming languages and the evolution of old languages, it keeps growing. Many of these languages would benefit from proper tool support. Unfortunately, the development of a semantic editor can be a time-consuming and error-prone endeavor, and too large an effort for most language communities. Given the complex nature of programming, and the huge benefits of good tool support, this lack of tools is problematic. In this dissertation, an attempt is made at narrowing the gap between generative solutions and how state-of-the-art editors are constructed today. A generative alternative for construction of textual semantic editors is explored with focus on how to specify extensible semantic editor services. Specifically, this dissertation shows how semantic services can be specified using a semantic formalism called refer- ence attribute grammars (RAGs), and how these services can be made responsive enough for editing, and be provided also when the text in an editor is erroneous. Results presented in this dissertation have been found useful, both in industry and in academia, suggesting that the explored approach may help to reduce the effort of editor construction

    Languages and Tools for Optimization of Large-Scale Systems

    Get PDF
    Modeling and simulation are established techniques for solving design problems in a wide range of engineering disciplines today. Dedicated computer languages, such as Modelica, and efficient software tools are available. In this thesis, an extension of Modelica, Optimica, targeted at dynamic optimization of Modelica models is proposed. In order to demonstrate the Optimica extension, supporting software has been developed. This includes a modularly extensible Modelica compiler, the JModelica compiler, and an extension that supports also Optimica. A Modelica library for paper machine dryer section modeling, DryLib, has been developed. The classes in the library enable structured and hierarchical modeling of dryer sections at the application user level, while offering extensibility for the expert user. Based on DryLib, a parameter optimization problem, a model reduction problem, and an optimization-based control problem have been formulated and solved. A start-up optimization problem for a plate reactor has been formulated in Optimica, and solved by means of the Optimica compiler. In addition, the robustness properties of the start-up trajectories have been evaluated by means of Monte-Carlo simulation. In many control systems, it is necessary to consider interaction with a user. In this thesis, a manual control scheme for an unstable inverted pendulum system, where the inputs are bounded, is presented. The proposed controller is based on the notion of reachability sets and guarantees semi global stability for all references. An inverted pendulum on a two wheels robot has been developed. A distributed control system, including sensor processing algorithms and a stabilizing control scheme has been implemented on three on-board embedded processors

    A Sequential Control Language for Industrial Automation

    Get PDF
    Current market trends for industrial automation are the need for customizable production, shorter time to market, and powerful global competitive pressure. Based on these trends two challenges have been identified: 1) flexible production systems and 2) integration and utilization of devices and software. Applications from both process automation, manufacturing, and robotics have been considered. More flexible languages and tools are needed to get a flexible production system. The graphical programming language Grafchart, based on the IEC 61131-3 standard language Sequential Function Charts (SFC), is considered with the aim to make both the language and its implementation more flexible. In particular, new constructs have been added to the Grafchart language and modern compiler techniques are evaluated for JGrafchart, a Grafchart implementation, with focus on an extensible language implementation. A first step toward real-time execution of Grafchart applications is also taken to make it possible to use Grafchart for hard real-time control. High execution rates often reveal concurrency issues and thus execution concurrency has also been investigated. Access to more data from industrial devices and software can be used to optimize production. Architectures for factory integration have been considered as this is the foundation to connect all devices and thus address the challenge of integrating and utilizing devices and software. Service Oriented Architecture (SOA) is a flexible software design methodology widely used in IT systems and for business processes. SOA service orchestration is brought to industrial automation by integrating support for both Devices Profile for Web Services (DPWS) and OPC Unified Architecture (OPC UA) in JGrafchart. Looking further, SOA 2.0 is event driven and features extremely loose coupling between components. An architecture based on SOA 2.0 where it is easy to integrate any device or software, in particular legacy devices with limited knowledge and capabilities, has been developed with focus on service choreography in industrial manufacturing. Another step toward real-time execution of Grafchart applications is integrated support for the high performance communication protocol LabComm. Additionally, it is investigated how Grafchart can be connected to Functional Mock-up Interface (FMI) for co-simulation to further address the shorter time to market trend by introducing simulation support. The PID controller is the most common controller for industrial automation. A PID implementation has been added to a Grafchart library and a flaw with the PID algorithm has been discovered. The problem occurs for PID controllers with a derivative part when the process value saturates. The derivative part then backs off which leads to undesired changes in the control signal. This issue has been analyzed and a solution to the problem is proposed

    1st doctoral symposium of the international conference on software language engineering (SLE) : collected research abstracts, October 11, 2010, Eindhoven, The Netherlands

    Get PDF
    The first Doctoral Symposium to be organised by the series of International Conferences on Software Language Engineering (SLE) will be held on October 11, 2010 in Eindhoven, as part of the 3rd instance of SLE. This conference series aims to integrate the different sub-communities of the software-language engineering community to foster cross-fertilisation and strengthen research overall. The Doctoral Symposium at SLE 2010 aims to contribute towards these goals by providing a forum for both early and late-stage Ph.D. students to present their research and get detailed feedback and advice from researchers both in and out of their particular research area. Consequently, the main objectives of this event are: – to give Ph.D. students an opportunity to write about and present their research; – to provide Ph.D. students with constructive feedback from their peers and from established researchers in their own and in different SLE sub-communities; – to build bridges for potential research collaboration; and – to foster integrated thinking about SLE challenges across sub-communities. All Ph.D. students participating in the Doctoral Symposium submitted an extended abstract describing their doctoral research. Based on a good set of submisssions we were able to accept 13 submissions for participation in the Doctoral Symposium. These proceedings present final revised versions of these accepted research abstracts. We are particularly happy to note that submissions to the Doctoral Symposium covered a wide range of SLE topics drawn from all SLE sub-communities. In selecting submissions for the Doctoral Symposium, we were supported by the members of the Doctoral-Symposium Selection Committee (SC), representing senior researchers from all areas of the SLE community.We would like to thank them for their substantial effort, without which this Doctoral Symposium would not have been possible. Throughout, they have provided reviews that go beyond the normal format of a review being extra careful in pointing out potential areas of improvement of the research or its presentation. Hopefully, these reviews themselves will already contribute substantially towards the goals of the symposium and help students improve and advance their work. Furthermore, all submitting students were also asked to provide two reviews for other submissions. The members of the SC went out of their way to comment on the quality of these reviews helping students improve their reviewing skills
    corecore