The Whole Platform A Language Workbench for Eclipse

24
© 2008 by Riccardo Solmi; made available under the EPL v1.0 | March 20, 2008 The Whole Platform A Language Workbench for Eclipse Riccardo Solmi University of Bologna and TAS Project Leader, Whole Platform

description

Presentation of the Whole Platform Language Workbench at EclipseCon 2008

Transcript of The Whole Platform A Language Workbench for Eclipse

Page 1: The Whole Platform A Language Workbench for Eclipse

© 2008 by Riccardo Solmi; made available under the EPL v1.0 | March 20, 2008

The Whole PlatformA Language Workbench for Eclipse

Riccardo Solmi

University of Bologna and TASProject Leader, Whole Platform

Page 2: The Whole Platform A Language Workbench for Eclipse

The Whole Platform | A Language Workbench for Eclipse | © 2008 by Riccardo Solmi; made available under the EPL v1.02

Outline

• Aim: Engineering the production of software• The Whole Platform Components• Usage scenarios

Language developmentData integrationCode generation

• Related works

Page 3: The Whole Platform A Language Workbench for Eclipse

The Whole Platform | A Language Workbench for Eclipse | © 2008 by Riccardo Solmi; made available under the EPL v1.03

Aim: Engineering the production of software

• Raise the abstraction level to the domain levelUse domain languages for representing knowledgeSeparate the knowledge from the implementation technologiesInvolve domain experts in the development process

• Bridge the Execution gapRewrite programs into models and model transformationsUse generators to stay up-to-date with current technologies

• Bridge the Data gapSpecify the data formats using the data integration languagesLet the integration tools generate the metamodels and parsers

Page 4: The Whole Platform A Language Workbench for Eclipse

The Whole Platform | A Language Workbench for Eclipse | © 2008 by Riccardo Solmi; made available under the EPL v1.04

Whole Platform Components

• Whole Language FrameworkCommon infrastructure for languages and toolingA Java library for Language Oriented Programming

• Whole LanguagesA set of languages acting as a familyModeling, data integration, and transformation languages

• Whole Language WorkbenchA development environment to program at the domain levelBased on Eclipse and GEF

Page 5: The Whole Platform A Language Workbench for Eclipse

The Whole Platform | A Language Workbench for Eclipse | © 2008 by Riccardo Solmi; made available under the EPL v1.05

Usage Scenarios

Three Software Product Lines are supported:

• Language DevelopmentDesign and implement a DSL or a GPL

• Data IntegrationLoad, Transform, and Store data sources

• Code GenerationPerform generative tasks

Alternatively, write your own Software Product Lineswith a Language Oriented Programming style

Page 6: The Whole Platform A Language Workbench for Eclipse

The Whole Platform | A Language Workbench for Eclipse | © 2008 by Riccardo Solmi; made available under the EPL v1.06

Language Development

• End-to-End Language definitionStructure, persistences, notations, and toolingMetamodels, validators, normalizers, interpreters, translatorsContent assistants, generators, refactorings, analyzers

• Very short and iterable development cycleLive definition and deploying of languages (including behavior)Jump start with generic notations and persistences

• Smoother transition to model driven developmentThe Language Framework for programming andthe Language Workbench for modeling

Page 7: The Whole Platform A Language Workbench for Eclipse

The Whole Platform | A Language Workbench for Eclipse | © 2008 by Riccardo Solmi; made available under the EPL v1.07

Models DSL to define Metamodels

FromsimpleDSLs

to full GPLs

Page 8: The Whole Platform A Language Workbench for Eclipse

The Whole Platform | A Language Workbench for Eclipse | © 2008 by Riccardo Solmi; made available under the EPL v1.08

Generic Notation: AST RightStart with a generic notation … then write a specific one

Page 9: The Whole Platform A Language Workbench for Eclipse

The Whole Platform | A Language Workbench for Eclipse | © 2008 by Riccardo Solmi; made available under the EPL v1.09

Generic Notation: Tabular TreeStart with a generic notation … then write a specific one

Page 10: The Whole Platform A Language Workbench for Eclipse

The Whole Platform | A Language Workbench for Eclipse | © 2008 by Riccardo Solmi; made available under the EPL v1.010

XML Generic Persistence

Page 11: The Whole Platform A Language Workbench for Eclipse

The Whole Platform | A Language Workbench for Eclipse | © 2008 by Riccardo Solmi; made available under the EPL v1.011

Java Generic Persistence

Page 12: The Whole Platform A Language Workbench for Eclipse

The Whole Platform | A Language Workbench for Eclipse | © 2008 by Riccardo Solmi; made available under the EPL v1.012

Actions DSL to define Tooling

Write,deploy

and try

Page 13: The Whole Platform A Language Workbench for Eclipse

The Whole Platform | A Language Workbench for Eclipse | © 2008 by Riccardo Solmi; made available under the EPL v1.013

Data Integration

• Wide range of data formats supportedXML Schemas, Grammars, DataBase Schemas, Java

• High level of automation reachedWrite or import the specification of a data formatGenerate the metamodelGenerate the data-to-model and model-to-data transformation

Page 14: The Whole Platform A Language Workbench for Eclipse

The Whole Platform | A Language Workbench for Eclipse | © 2008 by Riccardo Solmi; made available under the EPL v1.014

Grammars DSL to specify textual formats

Page 15: The Whole Platform A Language Workbench for Eclipse

The Whole Platform | A Language Workbench for Eclipse | © 2008 by Riccardo Solmi; made available under the EPL v1.015

Grammars DSL in actionDucati Marlboro Team Ducati Casey Stoner 01Marco Melandri …

Parse and unparse

From textto model and back

Page 16: The Whole Platform A Language Workbench for Eclipse

The Whole Platform | A Language Workbench for Eclipse | © 2008 by Riccardo Solmi; made available under the EPL v1.016

Workflows DSL to compose activities into processes

Page 17: The Whole Platform A Language Workbench for Eclipse

The Whole Platform | A Language Workbench for Eclipse | © 2008 by Riccardo Solmi; made available under the EPL v1.017

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) semantics

Page 18: The Whole Platform A Language Workbench for Eclipse

The Whole Platform | A Language Workbench for Eclipse | © 2008 by Riccardo Solmi; made available under the EPL v1.018

Artifacts DSL to manipulate workspace and the file system

Page 19: The Whole Platform A Language Workbench for Eclipse

The Whole Platform | A Language Workbench for Eclipse | © 2008 by Riccardo Solmi; made available under the EPL v1.019

Queries DSL to perform queries and transformations

Page 20: The Whole Platform A Language Workbench for Eclipse

The Whole Platform | A Language Workbench for Eclipse | © 2008 by Riccardo Solmi; made available under the EPL v1.020

Javatemplates

and helpers

Page 21: The Whole Platform A Language Workbench for Eclipse

The Whole Platform | A Language Workbench for Eclipse | © 2008 by Riccardo Solmi; made available under the EPL v1.021

Cleareralgorithms

with

Domain SpecificNotations

andPath semantics

Page 22: The Whole Platform A Language Workbench for Eclipse

The Whole Platform | A Language Workbench for Eclipse | © 2008 by Riccardo Solmi; made available under the EPL v1.022

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)

Page 23: The Whole Platform A Language Workbench for Eclipse

The Whole Platform | A Language Workbench for Eclipse | © 2008 by Riccardo Solmi; made available under the EPL v1.023

References

• Whole Platformhttp://whole.sourceforge.net

• Examples, Screencasts and Tutorialshttp://whole.sourceforge.net/Documentation.html

• Riccardo [email protected]

Page 24: The Whole Platform A Language Workbench for Eclipse

The Whole Platform | A Language Workbench for Eclipse | © 2008 by Riccardo Solmi; made available under the EPL v1.024

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.