SlideShare a Scribd company logo
Textual Modeling Tools
overview &
penalty shoot-out
                                     Bernhard Merkle
                              Research & Development
                                 Software-Engineering
                                SICK-AG Waldkirch/DE
mailto: Bernhard.Merkle@gmail.com
contact on linkedin.com or xing.com
                                Bernhard Merkle Eclipse Textual Modeling Tools: Page: 1
SICK
   Bernhard Merkle Eclipse Textual Modeling Tools: Page: 3
Traffic and Luggage Control




                      Bernhard Merkle Eclipse Textual Modeling Tools: Page: 4
Bernhard Merkle Eclipse Textual Modeling Tools: Page: 5
Bernhard Merkle Eclipse Textual Modeling Tools: Page: 6
Bernhard Merkle Eclipse Textual Modeling Tools: Page: 7
Traffic and Luggage Control




                      Bernhard Merkle Eclipse Textual Modeling Tools: Page: 8
Traffic and Luggage Control




                      Bernhard Merkle Eclipse Textual Modeling Tools: Page: 9
DARPA: Urban/Grand Challenge




                   Bernhard Merkle Eclipse Textual Modeling Tools: Page: 10
Google Street View




                     Bernhard Merkle Eclipse Textual Modeling Tools: Page: 11
Catchy title ☺




                 Bernhard Merkle Eclipse Textual Modeling Tools: Page: 12
Outline of talk:
  – DSL overview and classification
     • textual, graphical, tabular, external, internal
     • a real world DSL
     • classification/feature model


  – Language Workbenches
     • Xtext, TEF, TCS, EMFText
     • Others: Monticore, Codeworker, IMP
     • MPS
     • Others: DSL2JDT, ETMOP, CAL



                                      Bernhard Merkle Eclipse Textual Modeling Tools: Page: 13
Bernhard Merkle Eclipse Textual Modeling Tools: Page: 14
Textual DSL
SELECT firstname, lastName from employee
where age = 42;

([+-]?[0-9]*) | ([A-Z][a-z]+)

public Collection<Student> findByNameAge (String name, int age, {
 return em.createNamedQuery("Student.findByNameAge")
         .setParameter("name", name) .setParameter("age", age)
         .setFirstResult(1) .setMaxResults(30)
         .setHint("hintName", "hintValue") .getResultList();
}


                                            Bernhard Merkle Eclipse Textual Modeling Tools: Page: 15
Bernhard Merkle Eclipse Textual Modeling Tools: Page: 16
Bernhard Merkle Eclipse Textual Modeling Tools: Page: 17
Bernhard Merkle Eclipse Textual Modeling Tools: Page: 18
Bernhard Merkle Eclipse Textual Modeling Tools: Page: 19
DSL: Chess




             Bernhard Merkle Eclipse Textual Modeling Tools: Page: 21
DSL: Chess   P e2 – e4
             p g7 – g5
             Knight at b2 moves to c3
             pawn at f7 moves to f5
             Q d1 – h5
             # 1-0
                 Concrete Syntax
                 Constraints !!!
                 Abstract Syntax



                 Bernhard Merkle Eclipse Textual Modeling Tools: Page: 22
DSL Language
classification
        Bernhard Merkle Eclipse Textual Modeling Tools: Page: 25
Feature model for DSL

                                         DSL




               Language   Transformation            Tool                 Process




                                     Notation (FODA)

                            Mandatory Feature    Alternative Features

                           Optional Feature      Inclusive-or Features




[1] Langlois 2007
                                                  Bernhard Merkle Eclipse Textual Modeling Tools: Page: 26
Language Features
                      DSL


Language   Transformation   Tool     Process




                                                                   Language



                                   Abstract Syntax                                               Concrete Syntax



                            ASG      AST       Dependency                            AS2CS                                           Style


                                                                                                  Representation        Imperative       Declarative
                                       Metamodel     Composition



                                                                              Text   Graphic   Wizard   Table         Specific
                                                                                                                   Representation




 [1] Langlois 2007
                                                                                        Bernhard Merkle Eclipse Textual Modeling Tools: Page: 27
Criteria…
 Language (abstract and concrete syntax)
      – LA-AS1. abstract syntax tree or abstract syntax graph
      – LA-AS2. grammar or meta-model
      – LA-AS3. can be composed

      – LA-CS1. technique to map abstract syntax to concrete syntax
      – LA-CS2. representation (text, graphic, ...) for concrete syntax
      – LA-CS3. declarative or imperative style




[2] Pichler
                                          Bernhard Merkle Eclipse Textual Modeling Tools: Page: 28
Transformation: Target Asset
                           DSL


 Language       Transformation    Tool      Process




Specification    Target Asset     Operational
                                 Transformation
                                                                                                                                 Software Artifact, result
                                                                                     Target Asset
                                                                                                                                  of the transformation


                                                         Representation                                        Asset Lifecycle



                                    Model         Text   Graphic    Binary      Specific              Asset Update             Asset
                                                                             Representation                                 Integration


                                                                                                                                            Assembling and
                                                                                                Destructive   Incremental
                                                                                                                                              Packaging
                                                                                                                                             Target Assets


                                                                                         Destroyed &           Synchronization
                                                                                       created at each          source/target
                                                                                          generation




    [1] Langlois 2007
                                                                                              Bernhard Merkle Eclipse Textual Modeling Tools: Page: 29
Transformation: Operational Trafo
                           DSL


  Language      Transformation    Tool    Process




Specification    Target Asset     Operational
                                 Transformation
                                                                                         Operational
                                                                                        Transformation



                Transformation                                                                                                                                Variability
                  Technique


                 Model/Text                                                                                                                              Stage       Technique
                 Technique                                                                  Ordering                   Transformation
                                                                                         Transformation                  Scheduling
                                                                                                                                                        Specification,
       M2M       M2T      T2T      T2M                   Transformation                                                                                  Generation /
                                                           Execution                                                Form                 Phasing        interpretation,
                                                                                                                                                         Compilation,
                                                                                                                                                          Integration,
                                                                                                                                                         Deployment,
                                              Mode                        Environment
                                                                                                         Implicit          Explicit                        Execution
         Techniques
         realizing the
           AS2TA                 Compilation        Interpretation   Internal    External            Automation Level                       Location
       transformation


                                                                                                   Manual      Automated              Internal     External
    [1] Langlois 2007
                                                                                                  Bernhard Merkle Eclipse Textual Modeling Tools: Page: 30
Criteria…
 Transformation (target asset/operational translation)
      – TR-TA1. target asset (model, text, graphic, binary)
      – TR-TA2. destructive or incremental update
      – TR-TA3. kind of support for integration of target assets

      – TR-OT1. transformation techniques
        (M→M, M→T, T→T, T→M)
      – TR-OT2. transformation by compilation or interpretation
      – TR-OT3. internal or external environment for transformation
      – TR-OT4. implicit or explicit scheduling
      – TR-OT5. internal or external location
      – TR-OT6. automation level (manual or automated)

[2] Pichler
                                         Bernhard Merkle Eclipse Textual Modeling Tools: Page: 31
Tool Features
                      DSL


Language   Transformation   Tool     Process




                                                                  DSL Tool                                   Non-Functional aspects of the
                                                                                                                      DSL Tool


                     Respect of Abstraction
                                                                                                                    Quality Factor


                                                                                           Functionality                                     Portability
                 Intrusive            Seamless              Guiding the DSL Tool user
              transformation       transformation              during definition and
                                                          transformation of domain data             Reliability                        Maintainability


                                                                                                                  Usability    Efficiency
 User has to be aware of
                                                                  Assistance
 internal transformation
  mechanisms & details
     or/and solution

  Transformation and                    Static      Adaptive   Process Guidance             Checking
solutions mechanisms &
 details are completely
      encapsulated                                             Step     Workflow   Completeness    Consistency



 [1] Langlois 2007
                                                                                    Bernhard Merkle Eclipse Textual Modeling Tools: Page: 32
Criteria…
 Tool (respect of abstraction, assistance)
      – TO-RA1. respect of abstraction (intrusive or seamless)

      – TO-AS1. kind of assistance (static or adaptive)
      – TO-AS2. process guidance (step or workflow)
      – TO-AS3. checking (completeness or consistency)


 Omitted
      – Quality factors
      – Process features


[2] Pichler
                                        Bernhard Merkle Eclipse Textual Modeling Tools: Page: 33
Language
Workbench
     Bernhard Merkle Eclipse Textual Modeling Tools: Page: 34
DSL Tools with textual modeling
Xtext
TEF (Textual Editing Framework)
TCS (Textual Concrete Syntax)
EMFText

JetBrains MPS
MontiCore, CodeWorker, IMP
DSL2JDT, ETMOP, CAL


                           Bernhard Merkle Eclipse Textual Modeling Tools: Page: 35
DSL Tools with textual modeling
TMF Xtext (predessor oAW Xtext)
  – http://xtext.org
  – http://wiki.eclipse.org/TMF
TEF Textual Editing Framework
  – http://www2.informatik.hu-berlin.de/sam/meta-tools/tef
  – http://developer.berlios.de/projects/tef/
TCS Textual Concrete Syntax
  – http://wiki.eclipse.org/index.php/TCS
  – http://www.sciences.univ-nantes.fr/lina/atl/www/
EMFText
  – http://emftext.org
  – http://st.inf.tu-dresden.de/reuseware/index.php/EMFText

                                   Bernhard Merkle Eclipse Textual Modeling Tools: Page: 36
DSL Tools with textual modeling
JetBrains MPS
  – http://www.jetbrains.com/mps
  – Konstantin Solomatov
MontiCore
  – http://www.monticore.de
  – RWTH Aachen, Academic
CodeWorker
  – http://www.codeworker.org/
  – Cédric Lemaire
IMP
  – http://eclipse-imp.sourceforge.net/
  – Robert M. Fuhrer

                                    Bernhard Merkle Eclipse Textual Modeling Tools: Page: 37
Chess for…

             White: “Mayfield”
             Black: “Trinks”

             P e2 – e4
             p g7 – g5
             Knight at b2 moves to c3
             pawn at f7 moves to f5
             Q d1 – h5
             # 1-0

                 Bernhard Merkle Eclipse Textual Modeling Tools: Page: 38
Xtext
    Bernhard Merkle Eclipse Textual Modeling Tools: Page: 39
Catchy title ☺




                 Bernhard Merkle Eclipse Textual Modeling Tools: Page: 40
Xtext: Chess Language




                        Bernhard Merkle Eclipse Textual Modeling Tools: Page: 42
Xtext + Demo
                                                           Grammar+Model
– TMF/Xtext precusor (oAW/Xtext)
– Itemis, 6 fulltime committers                     Xtext Grammar
                                                      chess.xtext
                                                                                 MWE Workflow
                                                                               GenerateChess.mwe


                                                                    Run workflow
– AS+CS in xtext file ecore
– Import existing MM, (multiple)                                     ANTRL gen
                                                                   Scanner+Parser

                                                    ASG              Formatting,             CS
                                                 chess.ecore      Scoping, validation     chess.xmi
– Used for buckminster, b3, …
                                                     Editor                             Generator
– Editor for each language is MM aware
                                                Workflow generated:                  Workflow
– Languages for                                                                 ChessGenerator.mwe
                                               Outline, contentassist
    • Validation (java, chk)                   Labeling, Extensions,
                                                         etc
    • Template (xPand) (JET, Accello)
                                               Developer modifiable:               xPand Templates
    • Workflow (mwe)                                                                 Template.xpt
                                               Outline, contentassist               Extensions.ext
– Generated Editor fully customizable          Labeling, Extensions,
                                                         etc




                                         Bernhard Merkle Eclipse Textual Modeling Tools: Page: 43
Xtext: Chess Editor + Demo




                     Bernhard Merkle Eclipse Textual Modeling Tools: Page: 44
Xtext
  – Several eclipse projects based on Xtext
     • B3, buckminster, …
  – Tons of useful features
     • Language: Validation + Scoping
     • Editor: Formatting, Syntax highlighting, Code completion,
       Navigation, Reference, Decorators, Folding, Bracket maching,
       Auto editing, Styled Label Providers, Find References, Open Xtext
       Element, Error Tick, Quickfix support, Case-insensitive keywords
       Duplicate name validation, Content Assist in Grammar (great !),
       Splitting ANTLR generated parser, API adoptions to EMF style,
       referencing java elements, etc…




                                          Bernhard Merkle Eclipse Textual Modeling Tools: Page: 45
Xtext
Technical properties
  – Currently one of the leading Eclipse TMF
Documentation
  – Newsgroup, mailing list
  – Screencasts, Tutorials,
  – Book forthcoming ?
Status
  – Actively developed by itemis
  – Commercial training and support available
  – NO language Zoo (yet ;-)



                                    Bernhard Merkle Eclipse Textual Modeling Tools: Page: 46
TEF
      Bernhard Merkle Eclipse Textual Modeling Tools: Page: 47
Bernhard Merkle Eclipse Textual Modeling Tools: Page: 49
TEF: Chess Language




                      Bernhard Merkle Eclipse Textual Modeling Tools: Page: 52
TEF + Demo
– Humboldt University Berlin                    Grammar+Model

– PhD. of Markus Scheidgen                TEF Grammar
                                           chess.etslt
                                                                         ASG
                                                                      Chess.ecore

– Low activity ATM
                                                                  EMF/genmodel



– AS in ecore, CS in etslt                    RunCC                     EMF
                                          Scanner+Parser             Chess Impl
– Import existing MM                   (interpret RUNTIME)            Chess Edit
                                                                     Chess Editor




– EMF Impl+Edit+Editor                     Editor                    Generator

– 3 extension points                    Extension Points:


– EMF VF                                   Text Editor

                                         Model Editor
                                    Popup Editor (embedded)




                               Bernhard Merkle Eclipse Textual Modeling Tools: Page: 53
TEF: Chess Editor + (Text + Model)




                      Bernhard Merkle Eclipse Textual Modeling Tools: Page: 54
TEF
Highlight (personal)
  – The first with converging editors (graphical+textual)
  – RunCC, parser generator at runtime
  – 3 editors: textual, modelbased+embedded
Specification features
  – syntax defintion language TSL
Editor:
  –   Syntax highlighting
  –   Context sensitive code assists
  –   Occurrences and navigation
  –   Context information
  –   Error annotation
                                       Bernhard Merkle Eclipse Textual Modeling Tools: Page: 55
TCS
      Bernhard Merkle Eclipse Textual Modeling Tools: Page: 56
Bernhard Merkle Eclipse Textual Modeling Tools: Page: 57
TCS: Chess Language (AS)




                     Bernhard Merkle Eclipse Textual Modeling Tools: Page: 60
TCS: Chess Language (CS)




                     Bernhard Merkle Eclipse Textual Modeling Tools: Page: 61
TCS
– Univ. Nantes                               Grammar+Model

– ATLAS project                       TCS Grammar
                                        chess.tcs
                                                                        ASG
                                                                      Chess.km3


                                                        “on save…”

– AS in km3, CS in tcs
– Import existing MM                     ANTLR                          ASG
                                      Scanner+Parser                 Chess.ecore
                                         chess.g


– No EMF Impl+Edit+Editor
– Interpret as much as                  Editor                       Generator
  possible, avoid CG               Generic Editor TGE




– Used in ATL2



                            Bernhard Merkle Eclipse Textual Modeling Tools: Page: 62
TCS: Chess Editor + Demo




                     Bernhard Merkle Eclipse Textual Modeling Tools: Page: 63
TCS
Highlight (personal)
  – Avoid code generation if possible
  – Very flexible, short turnaround as avoids codegen
  – Abstract Syntax also textual (KM3)


Specification features
  – KM3, TCS
  – ATL is based on TCS




                                    Bernhard Merkle Eclipse Textual Modeling Tools: Page: 64
TCS
Documentation
  – TCS User Manual
  – Lots of papers (but no getting started)
Status
  – Large Language Zoo (About 30)
  – http://wiki.eclipse.org/TCS/Zoo
  – Tool is selfhosting




                                      Bernhard Merkle Eclipse Textual Modeling Tools: Page: 65
EMFtext
    Bernhard Merkle Eclipse Textual Modeling Tools: Page: 66
Bernhard Merkle Eclipse Textual Modeling Tools: Page: 67
EMFText: Chess Language (AS)




                     Bernhard Merkle Eclipse Textual Modeling Tools: Page: 69
EMFText: Chess Language (CS)




                     Bernhard Merkle Eclipse Textual Modeling Tools: Page: 70
EMFText
– Univ. Dresden                                  Grammar+Model

– reuse.org project                     EMFText Grammar
                                           chess.cs
                                                                             ASG
                                                                          Chess.ecore


                                                             ANT, partially

– AS in ecore3, CS in cs                                    automated in cs


– Import multiple existing AS                ANTLR
                                          Scanner+Parser
– Import multiple existing CS                chess.g




– EMF Impl+Edit+Editor                      Editor                        Generator

– Valiation                             Generated Editor:
                                           Resolver,
                                           Analysis,
                                            MOPP,
                                            UI, Util


                                     Developer can overwrite




                                Bernhard Merkle Eclipse Textual Modeling Tools: Page: 71
EMFText: Chess Editor + Demo




                    Bernhard Merkle Eclipse Textual Modeling Tools: Page: 72
EMFText
Highlight (personal)
  – Generated code does not contain dependencies to EMFText
Specification features
  – Automatic generation of default syntaxes
  – Modular specification
    (Support for abstract syntaxes and syntax imports)
  – Default reference resolving mechanisms
  – Comprehensive syntax analysis




                                    Bernhard Merkle Eclipse Textual Modeling Tools: Page: 73
EMFText
Editors:
   –     Outline View
   –     Customizable Syntax Highlighting
   –     Occurence Highlighting
   –     Code Completion
   –     Advanced bracket handling
   –     Hyperlinks
   –     Texthovers
   –     Instant error reporting

Documentation
   – Mailing list
   – Documentation, tutorials
Status
   – Actively developed by Univ. Dresden
   – Large language Zoo (about 50 syntax)


                                            Bernhard Merkle Eclipse Textual Modeling Tools: Page: 74
MPS   Bernhard Merkle Eclipse Textual Modeling Tools: Page: 75
MPS
– “Language Oriented Programming”                         Grammar+Model

                                                       AST                          CS
                                                    “Structure”                   “Editor”
– AS: specified by concepts                        Constraint,                      Etc.
– CS: specified by editor                          Typesystem


– No parsing problem:                                                CTRL-F9


  cell based editing

– Base Languages for Java, C#                       Editor                      Generator
– mpscmindstorms for NXT                        Generated Editor:              Generated Generator:
                                                used in “solution”               used in “solution”



– YouTrack (+other IntelliJ products)



                                        Bernhard Merkle Eclipse Textual Modeling Tools: Page: 77
MPS: Chess Editor + Demo




                    Bernhard Merkle Eclipse Textual Modeling Tools: Page: 78
MPS
Tool:
  – Cell based editor on AST, no parser errors ☺
  – Higher learning curve, but once used to amazingly fast


Documentation
  – Newsgroup
  – Documentation, tutorials
Status
  – Actively developed Jetbrains
  – Future Jetbrains products based on, new Bugtracker
    (YouTrack) based on

                                    Bernhard Merkle Eclipse Textual Modeling Tools: Page: 79
Others…
    Bernhard Merkle Eclipse Textual Modeling Tools: Page: 80
Bernhard Merkle Eclipse Textual Modeling Tools: Page: 81
Additional: DSL2JDT




                      Bernhard Merkle Eclipse Textual Modeling Tools: Page: 82
Additional: DSL2JDT




                      Bernhard Merkle Eclipse Textual Modeling Tools: Page: 83
Additional: ETMOP




                    Bernhard Merkle Eclipse Textual Modeling Tools: Page: 84
Additional: CAL




                  Bernhard Merkle Eclipse Textual Modeling Tools: Page: 85
Compare…
     Bernhard Merkle Eclipse Textual Modeling Tools: Page: 86
Catchy title ☺




                 Bernhard Merkle Eclipse Textual Modeling Tools: Page: 87
Language: AS/CS




                  Bernhard Merkle Eclipse Textual Modeling Tools: Page: 88
Transformation: TA / OT




                          Bernhard Merkle Eclipse Textual Modeling Tools: Page: 89
Additional Aspects…




                      Bernhard Merkle Eclipse Textual Modeling Tools: Page: 90
(Generated) Language Editor




Note: additional features on roadmap ;-)




                               Bernhard Merkle Eclipse Textual Modeling Tools: Page: 91
Open                      Proprietary but powerful
Fast turnaround           Debugging Interpreter is…
Editor++                  Large models
Combine views             Distributed models
(text/graph)              UUID vs. Names
Workflow                  Evolution
Validation ! (EVF, OCL)




                          Bernhard Merkle Eclipse Textual Modeling Tools: Page: 92
Catchy title ☺




                 Bernhard Merkle Eclipse Textual Modeling Tools: Page: 93
Pictures under CC license from flickr:
1191285966_d701fcb1c3_b_flickr_bluemeat.jpg
3425532267_bd74526b23_b_flickr_tiwo.jpg
1813471845_5a4be999dc_o_flickr_thatcanadiangrrl.jpg
2401122677_c25dea1233_b_flickr_EnglishGirlAbroad.jpg
501709581_f3729ceaeb_b_flickr.jpg

and pictures from istockphoto.com




                               Bernhard Merkle Eclipse Textual Modeling Tools: Page: 98
Textual Modeling Tools
overview &
penalty shoot-out
                                     Bernhard Merkle
                              Research & Development
                                 Software-Engineering
                                SICK-AG Waldkirch/DE
mailto: Bernhard.Merkle@gmail.com
contact on linkedin.com or xing.com
                                Bernhard Merkle Eclipse Textual Modeling Tools: Page: 99

More Related Content

PDF
An Approach for Constructing a Domain Definition Metamodel with ATL
PDF
Tdl 3 june
PDF
Axel uhl sap@md-day2011
PDF
Mixing Path Rendering and 3D
PDF
Resource Oriented Architecture for Managing Multimedia Content by Florian
PDF
GPU-accelerated Path Rendering
PPTX
Xtext入門
PDF
Eclipse xtext 紹介
An Approach for Constructing a Domain Definition Metamodel with ATL
Tdl 3 june
Axel uhl sap@md-day2011
Mixing Path Rendering and 3D
Resource Oriented Architecture for Managing Multimedia Content by Florian
GPU-accelerated Path Rendering
Xtext入門
Eclipse xtext 紹介

Similar to EclipseCon 2010 Bernhard Merkle Textualmodelingtools penalty (20)

PDF
The Spoofax Language Workbench (SPLASH 2010)
PDF
Generator
PDF
SUBJECT
PDF
Domain Analysis & Data Modeling
PDF
A Model-driven Approach for Telecommunications Network Services Definition
PPTX
Code4Lib 2013 - All THE Metadatas Re-Revisited
PDF
Challenges for advanced domain-specific frameworks
PDF
Iswim for testing
PDF
oAW Presentation
PDF
ASE01.ppt
PPTX
Bug deBug Chennai 2012 Talk - Driving innovation using pattern based thinking...
PPTX
Data Tactics Unified Dataspace Architecture and Description
PDF
Overcoming The Impedance Mismatch Between Source Code And Architecture
PPT
MDE 2.0.: pragmatic model verification and other stories - Habilitation publi...
PDF
The DEVS-Driven Modeling Language: Syntax and Semantics Definition by Meta-Mo...
PDF
SysML to Discrete-event Simulation to Analyze Electronic Assembly Systems
PDF
Introducing MDSD
PPTX
Univ of va intentional introduction 2013 01-31
PDF
Web 2.0 And The End Of DITA
PDF
Patterns, Components, and Code, Oh My!
The Spoofax Language Workbench (SPLASH 2010)
Generator
SUBJECT
Domain Analysis & Data Modeling
A Model-driven Approach for Telecommunications Network Services Definition
Code4Lib 2013 - All THE Metadatas Re-Revisited
Challenges for advanced domain-specific frameworks
Iswim for testing
oAW Presentation
ASE01.ppt
Bug deBug Chennai 2012 Talk - Driving innovation using pattern based thinking...
Data Tactics Unified Dataspace Architecture and Description
Overcoming The Impedance Mismatch Between Source Code And Architecture
MDE 2.0.: pragmatic model verification and other stories - Habilitation publi...
The DEVS-Driven Modeling Language: Syntax and Semantics Definition by Meta-Mo...
SysML to Discrete-event Simulation to Analyze Electronic Assembly Systems
Introducing MDSD
Univ of va intentional introduction 2013 01-31
Web 2.0 And The End Of DITA
Patterns, Components, and Code, Oh My!
Ad

Recently uploaded (20)

PDF
NewMind AI Weekly Chronicles – August ’25 Week III
PPT
What is a Computer? Input Devices /output devices
PDF
Transform Your ITIL® 4 & ITSM Strategy with AI in 2025.pdf
PDF
A comparative study of natural language inference in Swahili using monolingua...
PPTX
Final SEM Unit 1 for mit wpu at pune .pptx
PDF
1 - Historical Antecedents, Social Consideration.pdf
PDF
DP Operators-handbook-extract for the Mautical Institute
PPTX
O2C Customer Invoices to Receipt V15A.pptx
PDF
Zenith AI: Advanced Artificial Intelligence
PDF
Hybrid model detection and classification of lung cancer
PDF
A Late Bloomer's Guide to GenAI: Ethics, Bias, and Effective Prompting - Boha...
PDF
A novel scalable deep ensemble learning framework for big data classification...
PDF
STKI Israel Market Study 2025 version august
PDF
WOOl fibre morphology and structure.pdf for textiles
PDF
Developing a website for English-speaking practice to English as a foreign la...
DOCX
search engine optimization ppt fir known well about this
PDF
Univ-Connecticut-ChatGPT-Presentaion.pdf
PDF
Microsoft Solutions Partner Drive Digital Transformation with D365.pdf
PPTX
Benefits of Physical activity for teenagers.pptx
PDF
sustainability-14-14877-v2.pddhzftheheeeee
NewMind AI Weekly Chronicles – August ’25 Week III
What is a Computer? Input Devices /output devices
Transform Your ITIL® 4 & ITSM Strategy with AI in 2025.pdf
A comparative study of natural language inference in Swahili using monolingua...
Final SEM Unit 1 for mit wpu at pune .pptx
1 - Historical Antecedents, Social Consideration.pdf
DP Operators-handbook-extract for the Mautical Institute
O2C Customer Invoices to Receipt V15A.pptx
Zenith AI: Advanced Artificial Intelligence
Hybrid model detection and classification of lung cancer
A Late Bloomer's Guide to GenAI: Ethics, Bias, and Effective Prompting - Boha...
A novel scalable deep ensemble learning framework for big data classification...
STKI Israel Market Study 2025 version august
WOOl fibre morphology and structure.pdf for textiles
Developing a website for English-speaking practice to English as a foreign la...
search engine optimization ppt fir known well about this
Univ-Connecticut-ChatGPT-Presentaion.pdf
Microsoft Solutions Partner Drive Digital Transformation with D365.pdf
Benefits of Physical activity for teenagers.pptx
sustainability-14-14877-v2.pddhzftheheeeee
Ad

EclipseCon 2010 Bernhard Merkle Textualmodelingtools penalty

  • 1. Textual Modeling Tools overview & penalty shoot-out Bernhard Merkle Research & Development Software-Engineering SICK-AG Waldkirch/DE mailto: Bernhard.Merkle@gmail.com contact on linkedin.com or xing.com Bernhard Merkle Eclipse Textual Modeling Tools: Page: 1
  • 2. SICK Bernhard Merkle Eclipse Textual Modeling Tools: Page: 3
  • 3. Traffic and Luggage Control Bernhard Merkle Eclipse Textual Modeling Tools: Page: 4
  • 4. Bernhard Merkle Eclipse Textual Modeling Tools: Page: 5
  • 5. Bernhard Merkle Eclipse Textual Modeling Tools: Page: 6
  • 6. Bernhard Merkle Eclipse Textual Modeling Tools: Page: 7
  • 7. Traffic and Luggage Control Bernhard Merkle Eclipse Textual Modeling Tools: Page: 8
  • 8. Traffic and Luggage Control Bernhard Merkle Eclipse Textual Modeling Tools: Page: 9
  • 9. DARPA: Urban/Grand Challenge Bernhard Merkle Eclipse Textual Modeling Tools: Page: 10
  • 10. Google Street View Bernhard Merkle Eclipse Textual Modeling Tools: Page: 11
  • 11. Catchy title ☺ Bernhard Merkle Eclipse Textual Modeling Tools: Page: 12
  • 12. Outline of talk: – DSL overview and classification • textual, graphical, tabular, external, internal • a real world DSL • classification/feature model – Language Workbenches • Xtext, TEF, TCS, EMFText • Others: Monticore, Codeworker, IMP • MPS • Others: DSL2JDT, ETMOP, CAL Bernhard Merkle Eclipse Textual Modeling Tools: Page: 13
  • 13. Bernhard Merkle Eclipse Textual Modeling Tools: Page: 14
  • 14. Textual DSL SELECT firstname, lastName from employee where age = 42; ([+-]?[0-9]*) | ([A-Z][a-z]+) public Collection<Student> findByNameAge (String name, int age, { return em.createNamedQuery("Student.findByNameAge") .setParameter("name", name) .setParameter("age", age) .setFirstResult(1) .setMaxResults(30) .setHint("hintName", "hintValue") .getResultList(); } Bernhard Merkle Eclipse Textual Modeling Tools: Page: 15
  • 15. Bernhard Merkle Eclipse Textual Modeling Tools: Page: 16
  • 16. Bernhard Merkle Eclipse Textual Modeling Tools: Page: 17
  • 17. Bernhard Merkle Eclipse Textual Modeling Tools: Page: 18
  • 18. Bernhard Merkle Eclipse Textual Modeling Tools: Page: 19
  • 19. DSL: Chess Bernhard Merkle Eclipse Textual Modeling Tools: Page: 21
  • 20. DSL: Chess P e2 – e4 p g7 – g5 Knight at b2 moves to c3 pawn at f7 moves to f5 Q d1 – h5 # 1-0 Concrete Syntax Constraints !!! Abstract Syntax Bernhard Merkle Eclipse Textual Modeling Tools: Page: 22
  • 21. DSL Language classification Bernhard Merkle Eclipse Textual Modeling Tools: Page: 25
  • 22. Feature model for DSL DSL Language Transformation Tool Process Notation (FODA) Mandatory Feature Alternative Features Optional Feature Inclusive-or Features [1] Langlois 2007 Bernhard Merkle Eclipse Textual Modeling Tools: Page: 26
  • 23. Language Features DSL Language Transformation Tool Process Language Abstract Syntax Concrete Syntax ASG AST Dependency AS2CS Style Representation Imperative Declarative Metamodel Composition Text Graphic Wizard Table Specific Representation [1] Langlois 2007 Bernhard Merkle Eclipse Textual Modeling Tools: Page: 27
  • 24. Criteria… Language (abstract and concrete syntax) – LA-AS1. abstract syntax tree or abstract syntax graph – LA-AS2. grammar or meta-model – LA-AS3. can be composed – LA-CS1. technique to map abstract syntax to concrete syntax – LA-CS2. representation (text, graphic, ...) for concrete syntax – LA-CS3. declarative or imperative style [2] Pichler Bernhard Merkle Eclipse Textual Modeling Tools: Page: 28
  • 25. Transformation: Target Asset DSL Language Transformation Tool Process Specification Target Asset Operational Transformation Software Artifact, result Target Asset of the transformation Representation Asset Lifecycle Model Text Graphic Binary Specific Asset Update Asset Representation Integration Assembling and Destructive Incremental Packaging Target Assets Destroyed & Synchronization created at each source/target generation [1] Langlois 2007 Bernhard Merkle Eclipse Textual Modeling Tools: Page: 29
  • 26. Transformation: Operational Trafo DSL Language Transformation Tool Process Specification Target Asset Operational Transformation Operational Transformation Transformation Variability Technique Model/Text Stage Technique Technique Ordering Transformation Transformation Scheduling Specification, M2M M2T T2T T2M Transformation Generation / Execution Form Phasing interpretation, Compilation, Integration, Deployment, Mode Environment Implicit Explicit Execution Techniques realizing the AS2TA Compilation Interpretation Internal External Automation Level Location transformation Manual Automated Internal External [1] Langlois 2007 Bernhard Merkle Eclipse Textual Modeling Tools: Page: 30
  • 27. Criteria… Transformation (target asset/operational translation) – TR-TA1. target asset (model, text, graphic, binary) – TR-TA2. destructive or incremental update – TR-TA3. kind of support for integration of target assets – TR-OT1. transformation techniques (M→M, M→T, T→T, T→M) – TR-OT2. transformation by compilation or interpretation – TR-OT3. internal or external environment for transformation – TR-OT4. implicit or explicit scheduling – TR-OT5. internal or external location – TR-OT6. automation level (manual or automated) [2] Pichler Bernhard Merkle Eclipse Textual Modeling Tools: Page: 31
  • 28. Tool Features DSL Language Transformation Tool Process DSL Tool Non-Functional aspects of the DSL Tool Respect of Abstraction Quality Factor Functionality Portability Intrusive Seamless Guiding the DSL Tool user transformation transformation during definition and transformation of domain data Reliability Maintainability Usability Efficiency User has to be aware of Assistance internal transformation mechanisms & details or/and solution Transformation and Static Adaptive Process Guidance Checking solutions mechanisms & details are completely encapsulated Step Workflow Completeness Consistency [1] Langlois 2007 Bernhard Merkle Eclipse Textual Modeling Tools: Page: 32
  • 29. Criteria… Tool (respect of abstraction, assistance) – TO-RA1. respect of abstraction (intrusive or seamless) – TO-AS1. kind of assistance (static or adaptive) – TO-AS2. process guidance (step or workflow) – TO-AS3. checking (completeness or consistency) Omitted – Quality factors – Process features [2] Pichler Bernhard Merkle Eclipse Textual Modeling Tools: Page: 33
  • 30. Language Workbench Bernhard Merkle Eclipse Textual Modeling Tools: Page: 34
  • 31. DSL Tools with textual modeling Xtext TEF (Textual Editing Framework) TCS (Textual Concrete Syntax) EMFText JetBrains MPS MontiCore, CodeWorker, IMP DSL2JDT, ETMOP, CAL Bernhard Merkle Eclipse Textual Modeling Tools: Page: 35
  • 32. DSL Tools with textual modeling TMF Xtext (predessor oAW Xtext) – http://xtext.org – http://wiki.eclipse.org/TMF TEF Textual Editing Framework – http://www2.informatik.hu-berlin.de/sam/meta-tools/tef – http://developer.berlios.de/projects/tef/ TCS Textual Concrete Syntax – http://wiki.eclipse.org/index.php/TCS – http://www.sciences.univ-nantes.fr/lina/atl/www/ EMFText – http://emftext.org – http://st.inf.tu-dresden.de/reuseware/index.php/EMFText Bernhard Merkle Eclipse Textual Modeling Tools: Page: 36
  • 33. DSL Tools with textual modeling JetBrains MPS – http://www.jetbrains.com/mps – Konstantin Solomatov MontiCore – http://www.monticore.de – RWTH Aachen, Academic CodeWorker – http://www.codeworker.org/ – Cédric Lemaire IMP – http://eclipse-imp.sourceforge.net/ – Robert M. Fuhrer Bernhard Merkle Eclipse Textual Modeling Tools: Page: 37
  • 34. Chess for… White: “Mayfield” Black: “Trinks” P e2 – e4 p g7 – g5 Knight at b2 moves to c3 pawn at f7 moves to f5 Q d1 – h5 # 1-0 Bernhard Merkle Eclipse Textual Modeling Tools: Page: 38
  • 35. Xtext Bernhard Merkle Eclipse Textual Modeling Tools: Page: 39
  • 36. Catchy title ☺ Bernhard Merkle Eclipse Textual Modeling Tools: Page: 40
  • 37. Xtext: Chess Language Bernhard Merkle Eclipse Textual Modeling Tools: Page: 42
  • 38. Xtext + Demo Grammar+Model – TMF/Xtext precusor (oAW/Xtext) – Itemis, 6 fulltime committers Xtext Grammar chess.xtext MWE Workflow GenerateChess.mwe Run workflow – AS+CS in xtext file ecore – Import existing MM, (multiple) ANTRL gen Scanner+Parser ASG Formatting, CS chess.ecore Scoping, validation chess.xmi – Used for buckminster, b3, … Editor Generator – Editor for each language is MM aware Workflow generated: Workflow – Languages for ChessGenerator.mwe Outline, contentassist • Validation (java, chk) Labeling, Extensions, etc • Template (xPand) (JET, Accello) Developer modifiable: xPand Templates • Workflow (mwe) Template.xpt Outline, contentassist Extensions.ext – Generated Editor fully customizable Labeling, Extensions, etc Bernhard Merkle Eclipse Textual Modeling Tools: Page: 43
  • 39. Xtext: Chess Editor + Demo Bernhard Merkle Eclipse Textual Modeling Tools: Page: 44
  • 40. Xtext – Several eclipse projects based on Xtext • B3, buckminster, … – Tons of useful features • Language: Validation + Scoping • Editor: Formatting, Syntax highlighting, Code completion, Navigation, Reference, Decorators, Folding, Bracket maching, Auto editing, Styled Label Providers, Find References, Open Xtext Element, Error Tick, Quickfix support, Case-insensitive keywords Duplicate name validation, Content Assist in Grammar (great !), Splitting ANTLR generated parser, API adoptions to EMF style, referencing java elements, etc… Bernhard Merkle Eclipse Textual Modeling Tools: Page: 45
  • 41. Xtext Technical properties – Currently one of the leading Eclipse TMF Documentation – Newsgroup, mailing list – Screencasts, Tutorials, – Book forthcoming ? Status – Actively developed by itemis – Commercial training and support available – NO language Zoo (yet ;-) Bernhard Merkle Eclipse Textual Modeling Tools: Page: 46
  • 42. TEF Bernhard Merkle Eclipse Textual Modeling Tools: Page: 47
  • 43. Bernhard Merkle Eclipse Textual Modeling Tools: Page: 49
  • 44. TEF: Chess Language Bernhard Merkle Eclipse Textual Modeling Tools: Page: 52
  • 45. TEF + Demo – Humboldt University Berlin Grammar+Model – PhD. of Markus Scheidgen TEF Grammar chess.etslt ASG Chess.ecore – Low activity ATM EMF/genmodel – AS in ecore, CS in etslt RunCC EMF Scanner+Parser Chess Impl – Import existing MM (interpret RUNTIME) Chess Edit Chess Editor – EMF Impl+Edit+Editor Editor Generator – 3 extension points Extension Points: – EMF VF Text Editor Model Editor Popup Editor (embedded) Bernhard Merkle Eclipse Textual Modeling Tools: Page: 53
  • 46. TEF: Chess Editor + (Text + Model) Bernhard Merkle Eclipse Textual Modeling Tools: Page: 54
  • 47. TEF Highlight (personal) – The first with converging editors (graphical+textual) – RunCC, parser generator at runtime – 3 editors: textual, modelbased+embedded Specification features – syntax defintion language TSL Editor: – Syntax highlighting – Context sensitive code assists – Occurrences and navigation – Context information – Error annotation Bernhard Merkle Eclipse Textual Modeling Tools: Page: 55
  • 48. TCS Bernhard Merkle Eclipse Textual Modeling Tools: Page: 56
  • 49. Bernhard Merkle Eclipse Textual Modeling Tools: Page: 57
  • 50. TCS: Chess Language (AS) Bernhard Merkle Eclipse Textual Modeling Tools: Page: 60
  • 51. TCS: Chess Language (CS) Bernhard Merkle Eclipse Textual Modeling Tools: Page: 61
  • 52. TCS – Univ. Nantes Grammar+Model – ATLAS project TCS Grammar chess.tcs ASG Chess.km3 “on save…” – AS in km3, CS in tcs – Import existing MM ANTLR ASG Scanner+Parser Chess.ecore chess.g – No EMF Impl+Edit+Editor – Interpret as much as Editor Generator possible, avoid CG Generic Editor TGE – Used in ATL2 Bernhard Merkle Eclipse Textual Modeling Tools: Page: 62
  • 53. TCS: Chess Editor + Demo Bernhard Merkle Eclipse Textual Modeling Tools: Page: 63
  • 54. TCS Highlight (personal) – Avoid code generation if possible – Very flexible, short turnaround as avoids codegen – Abstract Syntax also textual (KM3) Specification features – KM3, TCS – ATL is based on TCS Bernhard Merkle Eclipse Textual Modeling Tools: Page: 64
  • 55. TCS Documentation – TCS User Manual – Lots of papers (but no getting started) Status – Large Language Zoo (About 30) – http://wiki.eclipse.org/TCS/Zoo – Tool is selfhosting Bernhard Merkle Eclipse Textual Modeling Tools: Page: 65
  • 56. EMFtext Bernhard Merkle Eclipse Textual Modeling Tools: Page: 66
  • 57. Bernhard Merkle Eclipse Textual Modeling Tools: Page: 67
  • 58. EMFText: Chess Language (AS) Bernhard Merkle Eclipse Textual Modeling Tools: Page: 69
  • 59. EMFText: Chess Language (CS) Bernhard Merkle Eclipse Textual Modeling Tools: Page: 70
  • 60. EMFText – Univ. Dresden Grammar+Model – reuse.org project EMFText Grammar chess.cs ASG Chess.ecore ANT, partially – AS in ecore3, CS in cs automated in cs – Import multiple existing AS ANTLR Scanner+Parser – Import multiple existing CS chess.g – EMF Impl+Edit+Editor Editor Generator – Valiation Generated Editor: Resolver, Analysis, MOPP, UI, Util Developer can overwrite Bernhard Merkle Eclipse Textual Modeling Tools: Page: 71
  • 61. EMFText: Chess Editor + Demo Bernhard Merkle Eclipse Textual Modeling Tools: Page: 72
  • 62. EMFText Highlight (personal) – Generated code does not contain dependencies to EMFText Specification features – Automatic generation of default syntaxes – Modular specification (Support for abstract syntaxes and syntax imports) – Default reference resolving mechanisms – Comprehensive syntax analysis Bernhard Merkle Eclipse Textual Modeling Tools: Page: 73
  • 63. EMFText Editors: – Outline View – Customizable Syntax Highlighting – Occurence Highlighting – Code Completion – Advanced bracket handling – Hyperlinks – Texthovers – Instant error reporting Documentation – Mailing list – Documentation, tutorials Status – Actively developed by Univ. Dresden – Large language Zoo (about 50 syntax) Bernhard Merkle Eclipse Textual Modeling Tools: Page: 74
  • 64. MPS Bernhard Merkle Eclipse Textual Modeling Tools: Page: 75
  • 65. MPS – “Language Oriented Programming” Grammar+Model AST CS “Structure” “Editor” – AS: specified by concepts Constraint, Etc. – CS: specified by editor Typesystem – No parsing problem: CTRL-F9 cell based editing – Base Languages for Java, C# Editor Generator – mpscmindstorms for NXT Generated Editor: Generated Generator: used in “solution” used in “solution” – YouTrack (+other IntelliJ products) Bernhard Merkle Eclipse Textual Modeling Tools: Page: 77
  • 66. MPS: Chess Editor + Demo Bernhard Merkle Eclipse Textual Modeling Tools: Page: 78
  • 67. MPS Tool: – Cell based editor on AST, no parser errors ☺ – Higher learning curve, but once used to amazingly fast Documentation – Newsgroup – Documentation, tutorials Status – Actively developed Jetbrains – Future Jetbrains products based on, new Bugtracker (YouTrack) based on Bernhard Merkle Eclipse Textual Modeling Tools: Page: 79
  • 68. Others… Bernhard Merkle Eclipse Textual Modeling Tools: Page: 80
  • 69. Bernhard Merkle Eclipse Textual Modeling Tools: Page: 81
  • 70. Additional: DSL2JDT Bernhard Merkle Eclipse Textual Modeling Tools: Page: 82
  • 71. Additional: DSL2JDT Bernhard Merkle Eclipse Textual Modeling Tools: Page: 83
  • 72. Additional: ETMOP Bernhard Merkle Eclipse Textual Modeling Tools: Page: 84
  • 73. Additional: CAL Bernhard Merkle Eclipse Textual Modeling Tools: Page: 85
  • 74. Compare… Bernhard Merkle Eclipse Textual Modeling Tools: Page: 86
  • 75. Catchy title ☺ Bernhard Merkle Eclipse Textual Modeling Tools: Page: 87
  • 76. Language: AS/CS Bernhard Merkle Eclipse Textual Modeling Tools: Page: 88
  • 77. Transformation: TA / OT Bernhard Merkle Eclipse Textual Modeling Tools: Page: 89
  • 78. Additional Aspects… Bernhard Merkle Eclipse Textual Modeling Tools: Page: 90
  • 79. (Generated) Language Editor Note: additional features on roadmap ;-) Bernhard Merkle Eclipse Textual Modeling Tools: Page: 91
  • 80. Open Proprietary but powerful Fast turnaround Debugging Interpreter is… Editor++ Large models Combine views Distributed models (text/graph) UUID vs. Names Workflow Evolution Validation ! (EVF, OCL) Bernhard Merkle Eclipse Textual Modeling Tools: Page: 92
  • 81. Catchy title ☺ Bernhard Merkle Eclipse Textual Modeling Tools: Page: 93
  • 82. Pictures under CC license from flickr: 1191285966_d701fcb1c3_b_flickr_bluemeat.jpg 3425532267_bd74526b23_b_flickr_tiwo.jpg 1813471845_5a4be999dc_o_flickr_thatcanadiangrrl.jpg 2401122677_c25dea1233_b_flickr_EnglishGirlAbroad.jpg 501709581_f3729ceaeb_b_flickr.jpg and pictures from istockphoto.com Bernhard Merkle Eclipse Textual Modeling Tools: Page: 98
  • 83. Textual Modeling Tools overview & penalty shoot-out Bernhard Merkle Research & Development Software-Engineering SICK-AG Waldkirch/DE mailto: Bernhard.Merkle@gmail.com contact on linkedin.com or xing.com Bernhard Merkle Eclipse Textual Modeling Tools: Page: 99