Upload
riccardo-solmi
View
829
Download
1
Tags:
Embed Size (px)
DESCRIPTION
Presentation of the Whole Platform Language Workbench at EclipseCon 2008
Citation preview
© 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
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
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
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
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
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
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
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
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
The Whole Platform | A Language Workbench for Eclipse | © 2008 by Riccardo Solmi; made available under the EPL v1.010
XML Generic Persistence
The Whole Platform | A Language Workbench for Eclipse | © 2008 by Riccardo Solmi; made available under the EPL v1.011
Java Generic Persistence
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
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
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
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
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
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
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
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
The Whole Platform | A Language Workbench for Eclipse | © 2008 by Riccardo Solmi; made available under the EPL v1.020
Javatemplates
and helpers
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
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)
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]
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.