SlideShare une entreprise Scribd logo
1  sur  24
Télécharger pour lire hors ligne
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
Outline
    • Aim: Engineering the production of software
    • The Whole Platform Components
    • Usage scenarios
        Language development
        Data integration
        Code generation
    • Related works




2        The Whole Platform | A Language Workbench for Eclipse | © 2008 by Riccardo Solmi; made available under the EPL v1.0
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 parsers



3         The Whole Platform | A Language Workbench for Eclipse | © 2008 by Riccardo Solmi; made available under the EPL v1.0
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 GEF


4        The Whole Platform | A Language Workbench for Eclipse | © 2008 by Riccardo Solmi; made available under the EPL v1.0
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 style

5         The Whole Platform | A Language Workbench for Eclipse | © 2008 by Riccardo Solmi; made available under the EPL v1.0
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 modeling



6        The Whole Platform | A Language Workbench for Eclipse | © 2008 by Riccardo Solmi; made available under the EPL v1.0
Models DSL to define Metamodels
                                                                                                           From
                                                                                                           simple
                                                                                                           DSLs

                                                                                                           to full
                                                                                                           GPLs




7       The Whole Platform | A Language Workbench for Eclipse | © 2008 by Riccardo Solmi; made available under the EPL v1.0
Generic Notation: AST Right
    Start with a generic notation                                        … then write a specific one




8          The Whole Platform | A Language Workbench for Eclipse | © 2008 by Riccardo Solmi; made available under the EPL v1.0
Generic Notation: Tabular Tree
    Start with a generic notation                                        … then write a specific one




9          The Whole Platform | A Language Workbench for Eclipse | © 2008 by Riccardo Solmi; made available under the EPL v1.0
XML Generic Persistence




10       The Whole Platform | A Language Workbench for Eclipse | © 2008 by Riccardo Solmi; made available under the EPL v1.0
Java Generic Persistence




11       The Whole Platform | A Language Workbench for Eclipse | © 2008 by Riccardo Solmi; made available under the EPL v1.0
Actions DSL to define Tooling


                                                           Write,
                                                                          deploy
                                                                            and try




12       The Whole Platform | A Language Workbench for Eclipse | © 2008 by Riccardo Solmi; made available under the EPL v1.0
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 transformation




13        The Whole Platform | A Language Workbench for Eclipse | © 2008 by Riccardo Solmi; made available under the EPL v1.0
Grammars DSL to specify textual formats




14       The Whole Platform | A Language Workbench for Eclipse | © 2008 by Riccardo Solmi; made available under the EPL v1.0
Grammars DSL in action
     Ducati Marlboro Team                  Ducati       Casey Stoner                       01Marco Melandri …



                                                                                                          Parse
                                                                                                          and
                                                                                                          unparse

                                                                                                          From text
                                                                                                          to model
                                                                                                          and back




15          The Whole Platform | A Language Workbench for Eclipse | © 2008 by Riccardo Solmi; made available under the EPL v1.0
Workflows DSL to compose activities into processes




16         The Whole Platform | A Language Workbench for Eclipse | © 2008 by Riccardo Solmi; made available under the EPL v1.0
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




17         The Whole Platform | A Language Workbench for Eclipse | © 2008 by Riccardo Solmi; made available under the EPL v1.0
Artifacts DSL to manipulate workspace and the file system




18        The Whole Platform | A Language Workbench for Eclipse | © 2008 by Riccardo Solmi; made available under the EPL v1.0
Queries DSL to perform queries and transformations




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




     and
     helpers

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

     with

     Domain Specific
     Notations

     and
     Path semantics


21          The Whole Platform | A Language Workbench for Eclipse | © 2008 by Riccardo Solmi; made available under the EPL v1.0
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
References

     • Whole Platform
       http://whole.sourceforge.net

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

     • Riccardo Solmi
       solmi@cs.unibo.it



23        The Whole Platform | A Language Workbench for Eclipse | © 2008 by Riccardo Solmi; made available under the EPL v1.0
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

Contenu connexe

Tendances

Using Aspects for Language Portability (SCAM 2010)
Using Aspects for Language Portability (SCAM 2010)Using Aspects for Language Portability (SCAM 2010)
Using Aspects for Language Portability (SCAM 2010)lennartkats
 
Introduction to c_sharp
Introduction to c_sharpIntroduction to c_sharp
Introduction to c_sharpHEM Sothon
 
OOP Comparative Study
OOP Comparative StudyOOP Comparative Study
OOP Comparative StudyDarren Tan
 
Swift language seminar topic
Swift language seminar topicSwift language seminar topic
Swift language seminar topicHyacinth Okeke
 
Introduction of A Lightweight Stage-Programming Framework
Introduction of A Lightweight Stage-Programming FrameworkIntroduction of A Lightweight Stage-Programming Framework
Introduction of A Lightweight Stage-Programming FrameworkYu Liu
 
Symfony2 components to the rescue of your PHP projects
Symfony2 components to the rescue of your PHP projectsSymfony2 components to the rescue of your PHP projects
Symfony2 components to the rescue of your PHP projectsXavier Lacot
 
List of programming_languages_by_type
List of programming_languages_by_typeList of programming_languages_by_type
List of programming_languages_by_typePhoenix
 
Programming Language Selection
Programming Language SelectionProgramming Language Selection
Programming Language SelectionDhananjay Nene
 
Object oriented-programming-in-c-sharp
Object oriented-programming-in-c-sharpObject oriented-programming-in-c-sharp
Object oriented-programming-in-c-sharpAbefo
 
The Ring programming language version 1.8 book - Part 6 of 202
The Ring programming language version 1.8 book - Part 6 of 202The Ring programming language version 1.8 book - Part 6 of 202
The Ring programming language version 1.8 book - Part 6 of 202Mahmoud Samir Fayed
 
Oop lecture1-chapter1(review of java)
Oop lecture1-chapter1(review of java)Oop lecture1-chapter1(review of java)
Oop lecture1-chapter1(review of java)Dastan Kamaran
 
Climb - Property-based dispatch in functional languages [Slides]
Climb - Property-based dispatch in functional languages [Slides]Climb - Property-based dispatch in functional languages [Slides]
Climb - Property-based dispatch in functional languages [Slides]Christopher Chedeau
 
Dotnet framework
Dotnet frameworkDotnet framework
Dotnet frameworkNitu Pandey
 
Mastering Regex in Perl
Mastering Regex in PerlMastering Regex in Perl
Mastering Regex in PerlEdureka!
 

Tendances (20)

Using Aspects for Language Portability (SCAM 2010)
Using Aspects for Language Portability (SCAM 2010)Using Aspects for Language Portability (SCAM 2010)
Using Aspects for Language Portability (SCAM 2010)
 
Introduction to c_sharp
Introduction to c_sharpIntroduction to c_sharp
Introduction to c_sharp
 
OOP Comparative Study
OOP Comparative StudyOOP Comparative Study
OOP Comparative Study
 
ASSIGNMENT-II(a)
ASSIGNMENT-II(a)ASSIGNMENT-II(a)
ASSIGNMENT-II(a)
 
Swift language seminar topic
Swift language seminar topicSwift language seminar topic
Swift language seminar topic
 
Introduction of A Lightweight Stage-Programming Framework
Introduction of A Lightweight Stage-Programming FrameworkIntroduction of A Lightweight Stage-Programming Framework
Introduction of A Lightweight Stage-Programming Framework
 
Symfony2 components to the rescue of your PHP projects
Symfony2 components to the rescue of your PHP projectsSymfony2 components to the rescue of your PHP projects
Symfony2 components to the rescue of your PHP projects
 
List of programming_languages_by_type
List of programming_languages_by_typeList of programming_languages_by_type
List of programming_languages_by_type
 
Programming Language Selection
Programming Language SelectionProgramming Language Selection
Programming Language Selection
 
Plc part 1
Plc part 1Plc part 1
Plc part 1
 
Object oriented-programming-in-c-sharp
Object oriented-programming-in-c-sharpObject oriented-programming-in-c-sharp
Object oriented-programming-in-c-sharp
 
The Ring programming language version 1.8 book - Part 6 of 202
The Ring programming language version 1.8 book - Part 6 of 202The Ring programming language version 1.8 book - Part 6 of 202
The Ring programming language version 1.8 book - Part 6 of 202
 
Oop lecture1-chapter1(review of java)
Oop lecture1-chapter1(review of java)Oop lecture1-chapter1(review of java)
Oop lecture1-chapter1(review of java)
 
Climb - Property-based dispatch in functional languages [Slides]
Climb - Property-based dispatch in functional languages [Slides]Climb - Property-based dispatch in functional languages [Slides]
Climb - Property-based dispatch in functional languages [Slides]
 
Dotnet framework
Dotnet frameworkDotnet framework
Dotnet framework
 
OOoCon Lpod
OOoCon LpodOOoCon Lpod
OOoCon Lpod
 
Mastering Regex in Perl
Mastering Regex in PerlMastering Regex in Perl
Mastering Regex in Perl
 
Drupal entity translation
Drupal entity translationDrupal entity translation
Drupal entity translation
 
Inside.Net
Inside.NetInside.Net
Inside.Net
 
Difference between c, c++ and java
Difference between c, c++ and javaDifference between c, c++ and java
Difference between c, c++ and java
 

Similaire à Whole Platform Language Workbench

[EclipseCon France 2017] Language Server Protocol in action
[EclipseCon France 2017] Language Server Protocol in action[EclipseCon France 2017] Language Server Protocol in action
[EclipseCon France 2017] Language Server Protocol in actionMickael Istria
 
The Economics of OptimJ
The Economics of OptimJThe Economics of OptimJ
The Economics of OptimJPatrick Viry
 
Introduction to Python GUI development with Delphi for Python - Part 1: Del...
Introduction to Python GUI development with Delphi for Python - Part 1:   Del...Introduction to Python GUI development with Delphi for Python - Part 1:   Del...
Introduction to Python GUI development with Delphi for Python - Part 1: Del...Embarcadero Technologies
 
Lect 1. introduction to programming languages
Lect 1. introduction to programming languagesLect 1. introduction to programming languages
Lect 1. introduction to programming languagesVarun Garg
 
Introduction to programming
Introduction to programmingIntroduction to programming
Introduction to programmingGwyneth Calica
 
.NET Core, ASP.NET Core Course, Session 3
.NET Core, ASP.NET Core Course, Session 3.NET Core, ASP.NET Core Course, Session 3
.NET Core, ASP.NET Core Course, Session 3aminmesbahi
 
Абрамович Максим, "Rad studio xe4"
Абрамович Максим, "Rad studio xe4"Абрамович Максим, "Rad studio xe4"
Абрамович Максим, "Rad studio xe4"EPAM Systems
 
The Nuxeo Way: leveraging open source to build a world-class ECM platform
The Nuxeo Way: leveraging open source to build a world-class ECM platformThe Nuxeo Way: leveraging open source to build a world-class ECM platform
The Nuxeo Way: leveraging open source to build a world-class ECM platformNuxeo
 
English de lenguaje de programacion
English de lenguaje de programacionEnglish de lenguaje de programacion
English de lenguaje de programacionVillalba Griselda
 
WEB PROGRAMMING UNIT V BY BHAVSINGH MALOTH
WEB PROGRAMMING UNIT V BY BHAVSINGH MALOTHWEB PROGRAMMING UNIT V BY BHAVSINGH MALOTH
WEB PROGRAMMING UNIT V BY BHAVSINGH MALOTHBhavsingh Maloth
 
Envisioning the Future of Language Workbenches
Envisioning the Future of Language WorkbenchesEnvisioning the Future of Language Workbenches
Envisioning the Future of Language WorkbenchesMarkus Voelter
 
JDD2015: Towards the Fastest (J)VM on the Planet! - Jaroslav Tulach
JDD2015: Towards the Fastest (J)VM on the Planet! - Jaroslav TulachJDD2015: Towards the Fastest (J)VM on the Planet! - Jaroslav Tulach
JDD2015: Towards the Fastest (J)VM on the Planet! - Jaroslav TulachPROIDEA
 

Similaire à Whole Platform Language Workbench (20)

[EclipseCon France 2017] Language Server Protocol in action
[EclipseCon France 2017] Language Server Protocol in action[EclipseCon France 2017] Language Server Protocol in action
[EclipseCon France 2017] Language Server Protocol in action
 
Programming landuages
Programming landuagesProgramming landuages
Programming landuages
 
Intermediate Languages
Intermediate LanguagesIntermediate Languages
Intermediate Languages
 
The Economics of OptimJ
The Economics of OptimJThe Economics of OptimJ
The Economics of OptimJ
 
Introduction to Python GUI development with Delphi for Python - Part 1: Del...
Introduction to Python GUI development with Delphi for Python - Part 1:   Del...Introduction to Python GUI development with Delphi for Python - Part 1:   Del...
Introduction to Python GUI development with Delphi for Python - Part 1: Del...
 
Programming language
Programming languageProgramming language
Programming language
 
Lect 1. introduction to programming languages
Lect 1. introduction to programming languagesLect 1. introduction to programming languages
Lect 1. introduction to programming languages
 
Introduction to programming
Introduction to programmingIntroduction to programming
Introduction to programming
 
Introduction to .net
Introduction to .netIntroduction to .net
Introduction to .net
 
.NET Core, ASP.NET Core Course, Session 3
.NET Core, ASP.NET Core Course, Session 3.NET Core, ASP.NET Core Course, Session 3
.NET Core, ASP.NET Core Course, Session 3
 
Delphi Prism XE Datasheet
Delphi Prism XE DatasheetDelphi Prism XE Datasheet
Delphi Prism XE Datasheet
 
Абрамович Максим, "Rad studio xe4"
Абрамович Максим, "Rad studio xe4"Абрамович Максим, "Rad studio xe4"
Абрамович Максим, "Rad studio xe4"
 
The Nuxeo Way: leveraging open source to build a world-class ECM platform
The Nuxeo Way: leveraging open source to build a world-class ECM platformThe Nuxeo Way: leveraging open source to build a world-class ECM platform
The Nuxeo Way: leveraging open source to build a world-class ECM platform
 
English de lenguaje de programacion
English de lenguaje de programacionEnglish de lenguaje de programacion
English de lenguaje de programacion
 
Net framework
Net frameworkNet framework
Net framework
 
WEB PROGRAMMING UNIT V BY BHAVSINGH MALOTH
WEB PROGRAMMING UNIT V BY BHAVSINGH MALOTHWEB PROGRAMMING UNIT V BY BHAVSINGH MALOTH
WEB PROGRAMMING UNIT V BY BHAVSINGH MALOTH
 
Informix4gl status
Informix4gl statusInformix4gl status
Informix4gl status
 
Envisioning the Future of Language Workbenches
Envisioning the Future of Language WorkbenchesEnvisioning the Future of Language Workbenches
Envisioning the Future of Language Workbenches
 
Introduction to C Programming
Introduction to C ProgrammingIntroduction to C Programming
Introduction to C Programming
 
JDD2015: Towards the Fastest (J)VM on the Planet! - Jaroslav Tulach
JDD2015: Towards the Fastest (J)VM on the Planet! - Jaroslav TulachJDD2015: Towards the Fastest (J)VM on the Planet! - Jaroslav Tulach
JDD2015: Towards the Fastest (J)VM on the Planet! - Jaroslav Tulach
 

Dernier

CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 

Dernier (20)

CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 

Whole Platform Language Workbench

  • 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. Outline • Aim: Engineering the production of software • The Whole Platform Components • Usage scenarios Language development Data integration Code generation • Related works 2 The Whole Platform | A Language Workbench for Eclipse | © 2008 by Riccardo Solmi; made available under the EPL v1.0
  • 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 parsers 3 The Whole Platform | A Language Workbench for Eclipse | © 2008 by Riccardo Solmi; made available under the EPL v1.0
  • 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 GEF 4 The Whole Platform | A Language Workbench for Eclipse | © 2008 by Riccardo Solmi; made available under the EPL v1.0
  • 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 style 5 The Whole Platform | A Language Workbench for Eclipse | © 2008 by Riccardo Solmi; made available under the EPL v1.0
  • 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 modeling 6 The Whole Platform | A Language Workbench for Eclipse | © 2008 by Riccardo Solmi; made available under the EPL v1.0
  • 7. Models DSL to define Metamodels From simple DSLs to full GPLs 7 The Whole Platform | A Language Workbench for Eclipse | © 2008 by Riccardo Solmi; made available under the EPL v1.0
  • 8. Generic Notation: AST Right Start with a generic notation … then write a specific one 8 The Whole Platform | A Language Workbench for Eclipse | © 2008 by Riccardo Solmi; made available under the EPL v1.0
  • 9. Generic Notation: Tabular Tree Start with a generic notation … then write a specific one 9 The Whole Platform | A Language Workbench for Eclipse | © 2008 by Riccardo Solmi; made available under the EPL v1.0
  • 10. XML Generic Persistence 10 The Whole Platform | A Language Workbench for Eclipse | © 2008 by Riccardo Solmi; made available under the EPL v1.0
  • 11. Java Generic Persistence 11 The Whole Platform | A Language Workbench for Eclipse | © 2008 by Riccardo Solmi; made available under the EPL v1.0
  • 12. Actions DSL to define Tooling Write, deploy and try 12 The Whole Platform | A Language Workbench for Eclipse | © 2008 by Riccardo Solmi; made available under the EPL v1.0
  • 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 transformation 13 The Whole Platform | A Language Workbench for Eclipse | © 2008 by Riccardo Solmi; made available under the EPL v1.0
  • 14. Grammars DSL to specify textual formats 14 The Whole Platform | A Language Workbench for Eclipse | © 2008 by Riccardo Solmi; made available under the EPL v1.0
  • 15. Grammars DSL in action Ducati Marlboro Team Ducati Casey Stoner 01Marco Melandri … Parse and unparse From text to model and back 15 The Whole Platform | A Language Workbench for Eclipse | © 2008 by Riccardo Solmi; made available under the EPL v1.0
  • 16. Workflows DSL to compose activities into processes 16 The Whole Platform | A Language Workbench for Eclipse | © 2008 by Riccardo Solmi; made available under the EPL v1.0
  • 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) semantics 17 The Whole Platform | A Language Workbench for Eclipse | © 2008 by Riccardo Solmi; made available under the EPL v1.0
  • 18. Artifacts DSL to manipulate workspace and the file system 18 The Whole Platform | A Language Workbench for Eclipse | © 2008 by Riccardo Solmi; made available under the EPL v1.0
  • 19. Queries DSL to perform queries and transformations 19 The Whole Platform | A Language Workbench for Eclipse | © 2008 by Riccardo Solmi; made available under the EPL v1.0
  • 20. Java templates and helpers 20 The Whole Platform | A Language Workbench for Eclipse | © 2008 by Riccardo Solmi; made available under the EPL v1.0
  • 21. Clearer algorithms with Domain Specific Notations and Path semantics 21 The Whole Platform | A Language Workbench for Eclipse | © 2008 by Riccardo Solmi; made available under the EPL v1.0
  • 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. References • Whole Platform http://whole.sourceforge.net • Examples, Screencasts and Tutorials http://whole.sourceforge.net/Documentation.html • Riccardo Solmi solmi@cs.unibo.it 23 The Whole Platform | A Language Workbench for Eclipse | © 2008 by Riccardo Solmi; made available under the EPL v1.0
  • 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