The Whole Platform          A Language Workbench for Eclipse                                                   Riccardo So...
Outline    • Aim: Engineering the production of software    • The Whole Platform Components    • Usage scenarios        La...
Aim: Engineering the production of software    • Raise the abstraction level to the domain level        Use domain languag...
Whole Platform Components    • Whole Language Framework        Common infrastructure for languages and tooling        A Ja...
Usage Scenarios    Three Software Product Lines are supported:    • Language Development        Design and implement a DSL...
Language Development    • End-to-End Language definition        Structure, persistences, notations, and tooling        Met...
Models DSL to define Metamodels                                                                                           ...
Generic Notation: AST Right    Start with a generic notation                                        … then write a specifi...
Generic Notation: Tabular Tree    Start with a generic notation                                        … then write a spec...
XML Generic Persistence10       The Whole Platform | A Language Workbench for Eclipse | © 2008 by Riccardo Solmi; made ava...
Java Generic Persistence11       The Whole Platform | A Language Workbench for Eclipse | © 2008 by Riccardo Solmi; made av...
Actions DSL to define Tooling                                                           Write,                            ...
Data Integration     • Wide range of data formats supported         XML Schemas, Grammars, DataBase Schemas, Java     • Hi...
Grammars DSL to specify textual formats14       The Whole Platform | A Language Workbench for Eclipse | © 2008 by Riccardo...
Grammars DSL in action     Ducati Marlboro Team                  Ducati       Casey Stoner                       01Marco M...
Workflows DSL to compose activities into processes16         The Whole Platform | A Language Workbench for Eclipse | © 200...
Code Generation     • Model-to-Model transformations     • Domain specific notations and tooling for all of the       lang...
Artifacts DSL to manipulate workspace and the file system18        The Whole Platform | A Language Workbench for Eclipse |...
Queries DSL to perform queries and transformations19        The Whole Platform | A Language Workbench for Eclipse | © 2008...
Java     templates     and     helpers20       The Whole Platform | A Language Workbench for Eclipse | © 2008 by Riccardo ...
Clearer     algorithms     with     Domain Specific     Notations     and     Path semantics21          The Whole Platform...
Related works     • Intentional Domain Workbench (Intentional Software)     • DSL Tools (Microsoft)     • Meta Programming...
References     • Whole Platform       http://whole.sourceforge.net     • Examples, Screencasts and Tutorials       http://...
Legal Notices     • The Whole Platform is an open source project       licensed under the terms of the GNU Lesser General ...
Upcoming SlideShare
Loading in …5
×

The Whole Platform A Language Workbench for Eclipse

1,136 views

Published on

Presentation of the Whole Platform Language Workbench at EclipseCon 2008

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,136
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
14
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

The Whole Platform A Language Workbench for Eclipse

  1. 1. The Whole Platform A Language Workbench for Eclipse Riccardo Solmi University of Bologna and TAS Project Leader, Whole Platform© 2008 by Riccardo Solmi; made available under the EPL v1.0 | March 20, 2008
  2. 2. Outline • Aim: Engineering the production of software • The Whole Platform Components • Usage scenarios Language development Data integration Code generation • Related works2 The Whole Platform | A Language Workbench for Eclipse | © 2008 by Riccardo Solmi; made available under the EPL v1.0
  3. 3. Aim: Engineering the production of software • Raise the abstraction level to the domain level Use domain languages for representing knowledge Separate the knowledge from the implementation technologies Involve domain experts in the development process • Bridge the Execution gap Rewrite programs into models and model transformations Use generators to stay up-to-date with current technologies • Bridge the Data gap Specify the data formats using the data integration languages Let the integration tools generate the metamodels and parsers3 The Whole Platform | A Language Workbench for Eclipse | © 2008 by Riccardo Solmi; made available under the EPL v1.0
  4. 4. Whole Platform Components • Whole Language Framework Common infrastructure for languages and tooling A Java library for Language Oriented Programming • Whole Languages A set of languages acting as a family Modeling, data integration, and transformation languages • Whole Language Workbench A development environment to program at the domain level Based on Eclipse and GEF4 The Whole Platform | A Language Workbench for Eclipse | © 2008 by Riccardo Solmi; made available under the EPL v1.0
  5. 5. Usage Scenarios Three Software Product Lines are supported: • Language Development Design and implement a DSL or a GPL • Data Integration Load, Transform, and Store data sources • Code Generation Perform generative tasks Alternatively, write your own Software Product Lines with a Language Oriented Programming style5 The Whole Platform | A Language Workbench for Eclipse | © 2008 by Riccardo Solmi; made available under the EPL v1.0
  6. 6. Language Development • End-to-End Language definition Structure, persistences, notations, and tooling Metamodels, validators, normalizers, interpreters, translators Content assistants, generators, refactorings, analyzers • Very short and iterable development cycle Live definition and deploying of languages (including behavior) Jump start with generic notations and persistences • Smoother transition to model driven development The Language Framework for programming and the Language Workbench for modeling6 The Whole Platform | A Language Workbench for Eclipse | © 2008 by Riccardo Solmi; made available under the EPL v1.0
  7. 7. Models DSL to define Metamodels From simple DSLs to full GPLs7 The Whole Platform | A Language Workbench for Eclipse | © 2008 by Riccardo Solmi; made available under the EPL v1.0
  8. 8. Generic Notation: AST Right Start with a generic notation … then write a specific one8 The Whole Platform | A Language Workbench for Eclipse | © 2008 by Riccardo Solmi; made available under the EPL v1.0
  9. 9. Generic Notation: Tabular Tree Start with a generic notation … then write a specific one9 The Whole Platform | A Language Workbench for Eclipse | © 2008 by Riccardo Solmi; made available under the EPL v1.0
  10. 10. XML Generic Persistence10 The Whole Platform | A Language Workbench for Eclipse | © 2008 by Riccardo Solmi; made available under the EPL v1.0
  11. 11. Java Generic Persistence11 The Whole Platform | A Language Workbench for Eclipse | © 2008 by Riccardo Solmi; made available under the EPL v1.0
  12. 12. Actions DSL to define Tooling Write, deploy and try12 The Whole Platform | A Language Workbench for Eclipse | © 2008 by Riccardo Solmi; made available under the EPL v1.0
  13. 13. Data Integration • Wide range of data formats supported XML Schemas, Grammars, DataBase Schemas, Java • High level of automation reached Write or import the specification of a data format Generate the metamodel Generate the data-to-model and model-to-data transformation13 The Whole Platform | A Language Workbench for Eclipse | © 2008 by Riccardo Solmi; made available under the EPL v1.0
  14. 14. Grammars DSL to specify textual formats14 The Whole Platform | A Language Workbench for Eclipse | © 2008 by Riccardo Solmi; made available under the EPL v1.0
  15. 15. Grammars DSL in action Ducati Marlboro Team Ducati Casey Stoner 01Marco Melandri … Parse and unparse From text to model and back15 The Whole Platform | A Language Workbench for Eclipse | © 2008 by Riccardo Solmi; made available under the EPL v1.0
  16. 16. Workflows DSL to compose activities into processes16 The Whole Platform | A Language Workbench for Eclipse | © 2008 by Riccardo Solmi; made available under the EPL v1.0
  17. 17. Code Generation • Model-to-Model transformations • Domain specific notations and tooling for all of the languages involved in a transformation • New Domain Specific Languages • The SQL and XPath feeling and (almost) semantics17 The Whole Platform | A Language Workbench for Eclipse | © 2008 by Riccardo Solmi; made available under the EPL v1.0
  18. 18. Artifacts DSL to manipulate workspace and the file system18 The Whole Platform | A Language Workbench for Eclipse | © 2008 by Riccardo Solmi; made available under the EPL v1.0
  19. 19. Queries DSL to perform queries and transformations19 The Whole Platform | A Language Workbench for Eclipse | © 2008 by Riccardo Solmi; made available under the EPL v1.0
  20. 20. Java templates and helpers20 The Whole Platform | A Language Workbench for Eclipse | © 2008 by Riccardo Solmi; made available under the EPL v1.0
  21. 21. Clearer algorithms with Domain Specific Notations and Path semantics21 The Whole Platform | A Language Workbench for Eclipse | © 2008 by Riccardo Solmi; made available under the EPL v1.0
  22. 22. Related works • Intentional Domain Workbench (Intentional Software) • DSL Tools (Microsoft) • Meta Programming System (JetBrains) • HyperSenses (Delta Software) • MetaEdit+ (MetaCase) • XMF (Ceteva) • Eclipse Modeling Project openAchitectureWare (openAchitectureWare) AMMA Platform (INRIA) • MDA Specifications (OMG)22 The Whole Platform | A Language Workbench for Eclipse | © 2008 by Riccardo Solmi; made available under the EPL v1.0
  23. 23. References • Whole Platform http://whole.sourceforge.net • Examples, Screencasts and Tutorials http://whole.sourceforge.net/Documentation.html • Riccardo Solmi solmi@cs.unibo.it23 The Whole Platform | A Language Workbench for Eclipse | © 2008 by Riccardo Solmi; made available under the EPL v1.0
  24. 24. Legal Notices • The Whole Platform is an open source project licensed under the terms of the GNU Lesser General Public Licence by its owner Dr. Riccardo Solmi. • Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both. • Other company, product, or service names may be trademarks or service marks of others.24 The Whole Platform | A Language Workbench for Eclipse | © 2008 by Riccardo Solmi; made available under the EPL v1.0

×