openmodelica development environment with eclipse integration adrian pop, peter fritzson, andreas...

22
OpenModelica Development Environment with Eclipse Integration Adrian Pop, Peter Fritzson, Andreas Remar, Elmir Jagudin, David Akhvlediani Programming Environment Laboratory Department of Computer and Information Science Linköping University 2006-09-05 Modelica’2006, September 4-5, Vienna, Austria

Post on 15-Jan-2016

223 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: OpenModelica Development Environment with Eclipse Integration Adrian Pop, Peter Fritzson, Andreas Remar, Elmir Jagudin, David Akhvlediani Programming Environment

OpenModelica Development Environment with Eclipse Integration

Adrian Pop, Peter Fritzson, Andreas Remar, Elmir Jagudin, David

Akhvlediani

Programming Environment LaboratoryDepartment of Computer and Information

ScienceLinköping University

2006-09-05Modelica’2006, September 4-5, Vienna, Austria

Page 2: OpenModelica Development Environment with Eclipse Integration Adrian Pop, Peter Fritzson, Andreas Remar, Elmir Jagudin, David Akhvlediani Programming Environment

2

Outline

Introduction OpenModelica

Eclipse Environment for Modelica/MetaModelica Overview Examples

Conclusions and Future Work Demo

Page 3: OpenModelica Development Environment with Eclipse Integration Adrian Pop, Peter Fritzson, Andreas Remar, Elmir Jagudin, David Akhvlediani Programming Environment

3

OpenModelica Context

Parse

Client: Eclipse Plugin

Corba

Client: OMShell Interactive

Session Handler

Server: Main Program Including Compiler,

Interpreter, etc.

Interactive

SCode

Inst

Ceval plot

system

etc.

Untyped API

Typed Checked Command API

Client: Graphic Model Editor

Page 4: OpenModelica Development Environment with Eclipse Integration Adrian Pop, Peter Fritzson, Andreas Remar, Elmir Jagudin, David Akhvlediani Programming Environment

4

Modelica Development Tooling (MDT)

Supports textual editing of Modelica/MetaModelica code

Was created to ease the development of the OpenModelica development (114232 lines of code) and to support advanced Modelica library development

It has most of the functionality expected from a Development Environment code browsing code assistance code indentation code highlighting error detection automated build of Modelica/MetaModelica

projects debugging

Page 5: OpenModelica Development Environment with Eclipse Integration Adrian Pop, Peter Fritzson, Andreas Remar, Elmir Jagudin, David Akhvlediani Programming Environment

5

Modelica Perspective

The MDT Eclipse Environment

Modelica Editor

Modelica Browser

Modelica Code Assistant

MetaModelica Debugging

Page 6: OpenModelica Development Environment with Eclipse Integration Adrian Pop, Peter Fritzson, Andreas Remar, Elmir Jagudin, David Akhvlediani Programming Environment

6

The MDT Eclipse Environment (II)

.mo file

OMC Compiler

Small Modelica Parser

Eclipse

Modelica model

AST Information

Modelica Browser

Modelica Code Assistant

Modelica Editor

MetaModelica Builder

MetaModelica Build console

MMCCompiler

MetaModelica Debugging

Page 7: OpenModelica Development Environment with Eclipse Integration Adrian Pop, Peter Fritzson, Andreas Remar, Elmir Jagudin, David Akhvlediani Programming Environment

7

The MDT Eclipse Environment (III)

.mo fileMMC

Compiler

Eclipse

MetaModelicaDebugging

Modelica Editor

Executable+

Debugging runtime

Page 8: OpenModelica Development Environment with Eclipse Integration Adrian Pop, Peter Fritzson, Andreas Remar, Elmir Jagudin, David Akhvlediani Programming Environment

8

Creating Modelica projects (I)

Creation of Modelica projects using wizards

Page 9: OpenModelica Development Environment with Eclipse Integration Adrian Pop, Peter Fritzson, Andreas Remar, Elmir Jagudin, David Akhvlediani Programming Environment

9

Creating Modelica projects (II)

Modelica project

Page 10: OpenModelica Development Environment with Eclipse Integration Adrian Pop, Peter Fritzson, Andreas Remar, Elmir Jagudin, David Akhvlediani Programming Environment

10

Creating Modelica packages

Creation of Modelica packages using wizards

Page 11: OpenModelica Development Environment with Eclipse Integration Adrian Pop, Peter Fritzson, Andreas Remar, Elmir Jagudin, David Akhvlediani Programming Environment

11

Creating Modelica classes

Creation of Modelica classes, models, etc, using wizards

Page 12: OpenModelica Development Environment with Eclipse Integration Adrian Pop, Peter Fritzson, Andreas Remar, Elmir Jagudin, David Akhvlediani Programming Environment

12

Code browsing

Code Browsing foreasy navigation within Modelica files. Automatic update on file save.

Page 13: OpenModelica Development Environment with Eclipse Integration Adrian Pop, Peter Fritzson, Andreas Remar, Elmir Jagudin, David Akhvlediani Programming Environment

13

Error detection (I)

Parse error detection on file save

Page 14: OpenModelica Development Environment with Eclipse Integration Adrian Pop, Peter Fritzson, Andreas Remar, Elmir Jagudin, David Akhvlediani Programming Environment

14

Error detection (II)

Semantic error detection on file save

Page 15: OpenModelica Development Environment with Eclipse Integration Adrian Pop, Peter Fritzson, Andreas Remar, Elmir Jagudin, David Akhvlediani Programming Environment

15

Code assistance (I)

Code Assistance on imports.

Page 16: OpenModelica Development Environment with Eclipse Integration Adrian Pop, Peter Fritzson, Andreas Remar, Elmir Jagudin, David Akhvlediani Programming Environment

16

Code assistance (II)

Code Assistance on assignments.

Page 17: OpenModelica Development Environment with Eclipse Integration Adrian Pop, Peter Fritzson, Andreas Remar, Elmir Jagudin, David Akhvlediani Programming Environment

17

Code assistance (III)

Code Assistance on function calling.

Page 18: OpenModelica Development Environment with Eclipse Integration Adrian Pop, Peter Fritzson, Andreas Remar, Elmir Jagudin, David Akhvlediani Programming Environment

18

Code indentation

Code Indentation

Page 19: OpenModelica Development Environment with Eclipse Integration Adrian Pop, Peter Fritzson, Andreas Remar, Elmir Jagudin, David Akhvlediani Programming Environment

19

Code folding

Code Folding

Page 20: OpenModelica Development Environment with Eclipse Integration Adrian Pop, Peter Fritzson, Andreas Remar, Elmir Jagudin, David Akhvlediani Programming Environment

20

Conclusions and Future work

Conclusions advanced Modelica/MetaModelica Eclipse

Environment project, package, class, model management code browsing and assistance integrated debugging

Future Work support refactorings better code checking better code navigation (hyperlinks, go to

definition) faster debugging more code assistance code templates UML view of Modelica/MetaModelica Code

Page 21: OpenModelica Development Environment with Eclipse Integration Adrian Pop, Peter Fritzson, Andreas Remar, Elmir Jagudin, David Akhvlediani Programming Environment

21

MDT Eclipse Environment Demo

Demo

Page 22: OpenModelica Development Environment with Eclipse Integration Adrian Pop, Peter Fritzson, Andreas Remar, Elmir Jagudin, David Akhvlediani Programming Environment

22

End

Thank you!Questions?

http://www.ida.liu.se/labs/pelab/modelica/OpenModelica.html