Conference article

Mo|E - A Communication Service Between Modelica Compilers and Text Editors

Nicola Justus
KITE, Technische Hochschule Mittelhessen, Giessen, Germany

Christopher Schölzel
KITE, Technische Hochschule Mittelhessen, Giessen, Germany

Andreas Dominik
KITE, Technische Hochschule Mittelhessen, Giessen, Germany

Thomas Letschert
KITE, Technische Hochschule Mittelhessen, Giessen, Germany

Download articlehttp://dx.doi.org/10.3384/ecp17132815

Published in: Proceedings of the 12th International Modelica Conference, Prague, Czech Republic, May 15-17, 2017

Linköping Electronic Conference Proceedings 132:89, p. 815-822

Show more +

Published: 2017-07-04

ISBN: 978-91-7685-575-1

ISSN: 1650-3686 (print), 1650-3740 (online)

Abstract

The Modelica language is becoming increasingly popular among scientists and engineers as platform for modelling physical or biological systems. Although Modelica is maintained as non-proprietary language by the Modelica Association, a considerable number of commercial implementations and development environments is complemented by a surprisingly small number of open source tools.

In this paper, we present the communication service Mo|E that connects any text editor as front-end with a Modelica compiler as back-end. Based on the simple HTML communication protocol, editor plugins for a software developer’s favourite text editor can be developed easily, hence turning any editor into a lightweight Modelica development tool.

We also present a first implementation of a plugin for the text editor Atom that exhibits features necessary for efficient software development, such as display of compile errors, code completion, go to declaration or view of context-sensitive documentation. In addition, Modelica-specific checking of the number of equations in a model is supported.

Keywords

Modelica, open source, integrated development environment, distributed systems, structured editor, ENSIME, OpenModelica, JModelica, MoTE

References

Åkesson, J. et al. (2010). “Modeling and Optimization with Optimica and JModelica.org — Languages and Tools for Solving Large-Scale Dynamic Optimization Problems”. In: Computers & Chemical Engineering 34 (11), pp. 1737–1749.

Allen, Jamie (2013). Effective Akka. Sebastopol, USA: O’Reilly Media.

Asghar, Syed Adeel et al. (2011). “An Open Source Modelica Graphic Editor Integrated with Electronic Notebooks and Interactive Simulation”. In: Proceedings of the 8th International Modelica Conference. Dresden, Germany, pp. 739–747.

Berners-Lee, T., R. Fielding, and L. Masinter (2005). Uniform Resource Identifier (URI): Generic Syntax. RFC 3986. IETF.

Bray, T. (2014). The JavaScript Object Notation (JSON) Data Interchange Format. RFC 7159. IETF.

Broman, D., Peter Fritzson, and S. Furic (2006). “Types in the Modelica Language”. In: In Proceedings of the 5th International Modelica Conference. Ed. by Ch.and Haumer A. Kral. Vienna, Austria: The Modelica Association, pp. 303–317.

Chenouard, Raphael et al. (2016). Modelica language support in Atom. GitHub Repository. URL: https://github.com/modelica-tools/atom-language-modelica (visited on 11/03/2016).

École Polytechnique Fédérale de Lausanne (2016). The Scala Programming Language. URL: http://www.scala-lang.org/ (visited on 11/01/2016).

ENSIME Contributors (2016). ENSIME. URL: http://ensime.github.io/ (visited on 11/01/2016).

Facebook (2016). Hyperclick. GitHub Repository. URL: https://github.com/facebooknuclide/hyperclick (visited on 11/03/2016).

Fielding, R. and J. Reschke (2014). Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing. RFC 7230. IETF.

Fritzson, Peter et al. (2005). “The OpenModelica Modeling, Simulation, and Development Environment”. In: Proceedings of the 46th Scandinavian Conference on Simulation and Modeling (SIMS). Trondheim, Norway. GitHub (2016a). Atom. URL: https://atom.io (visited on 11/01/2016).

– (2016b). Autocomplete+ Package. GitHub Repository. URL: https://github.com/atom/autocomplete-plus (visited on 11/03/2016).

– (2016c). Electron — Build cross platform desktop apps with JavaScript, HTML, and CSS. URL: http://electron.atom.io/ (visited on 09/14/2016).

Höger, Christoph, Florian Lorenzen, and Peter Pepper 2010). “Notes on the Separate Compilation of Modelica”. In: 3rd International Workshop on Equation-Based Object-Oriented Modeling Languages and Tools. Ed. By P. Fritzon et al. Oslo, Norway: Linköping Electronic Conference Proceedings, pp. 43–53.

Hoppe, Marcel, Christopher Schölzel, and Andreas Dominik. MoDE – A Standalone Modelica Diagram Editor. unpublished.

Justus, Nicola (2016). “Design and Implementation of a Client/Server Application for Editing Modelica Inside Various Text Editors”. BA thesis. Giessen, Germany: Technische Hochschule Mittelhessen.

Justus, Nicola, Christopher Schölzel, and Andreas Dominik (2017). “MoVE – A Standalone Modelica Vector Graphics Editor”. In: 12th International Modelica Conference. Prague, Czech Republic. to be published.

Microsoft Corporation (2016). Visual Studio Code - Code Editing. Redefined. URL: https://code.visualstudio.com/ (visited on 22/12/2016).

Modelon AB (2016). JModelica.org. URL: www.jmodelica.org (visited on 11/01/2016).

Moolenaar, Bram (2016). welcome home : vim online. URL: http://www.vim.org/ (visited on 12/21/2016).

Object Management Group (2012). Common Object Request Broker Architecture (CORBA). Part 1: CORBA Interfaces. OMG document formal/2012-11-12. Version 3.3.

Open Source Modelica Consortium (2016). OpenModelica. URL: https://openmodelica.org (visited on 11/01/2016).

Samlaus, Roland (2015). “An Integrated Development Environment with Enhanced Domain-Specific Interactive Model Validation”. PhD thesis. Linköping University, The Institute of Technology.

Schölzel, Christopher et al. (2016). Modelica Tool Ensemble. GitHub Repository. URL: https://github.com/orgs/THM-MoTE/ (visited on 12/22/2016).

Sublime HQ Pty Ltd (2016). Sublime Text: The text editor you’ll fall in love with. URL: https://www.sublimetext.com/ (visited on 11/01/2016).

Citations in Crossref