SlideShare ist ein Scribd-Unternehmen logo
1 von 83
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Ähnlich wie EclipseCon 2010 Bernhard Merkle Textualmodelingtools penalty

MODIGEN: MODEL-DRIVEN GENERATION OF GRAPHICAL EDITORS IN ECLIPSE
MODIGEN: MODEL-DRIVEN GENERATION OF GRAPHICAL EDITORS IN ECLIPSEMODIGEN: MODEL-DRIVEN GENERATION OF GRAPHICAL EDITORS IN ECLIPSE
MODIGEN: MODEL-DRIVEN GENERATION OF GRAPHICAL EDITORS IN ECLIPSEijcsit
 
MDD and modeling tools research
MDD and modeling tools researchMDD and modeling tools research
MDD and modeling tools researchRoger Xia
 
Re-implementing Thrift using MDE
Re-implementing Thrift using MDERe-implementing Thrift using MDE
Re-implementing Thrift using MDESina Madani
 
Markus Voelter Textual DSLs
Markus Voelter Textual DSLsMarkus Voelter Textual DSLs
Markus Voelter Textual DSLsdeimos
 
UML Generator (NCC18)
UML Generator (NCC18)UML Generator (NCC18)
UML Generator (NCC18)IT Industry
 
Reifying the concurrency concern into xDSML specifications
Reifying the concurrency concern into xDSML specificationsReifying the concurrency concern into xDSML specifications
Reifying the concurrency concern into xDSML specificationsBenoit Combemale
 
DSL, the absolute weapon for the development
DSL, the absolute weapon for the developmentDSL, the absolute weapon for the development
DSL, the absolute weapon for the developmentESUG
 
DOOML: A NEW DATABASE & OBJECT-ORIENTED MODELING LANGUAGE FOR DATABASE-DRIVEN...
DOOML: A NEW DATABASE & OBJECT-ORIENTED MODELING LANGUAGE FOR DATABASE-DRIVEN...DOOML: A NEW DATABASE & OBJECT-ORIENTED MODELING LANGUAGE FOR DATABASE-DRIVEN...
DOOML: A NEW DATABASE & OBJECT-ORIENTED MODELING LANGUAGE FOR DATABASE-DRIVEN...ijseajournal
 
DOOML: A New Database & Object-Oriented Modeling Language for Database-Driven...
DOOML: A New Database & Object-Oriented Modeling Language for Database-Driven...DOOML: A New Database & Object-Oriented Modeling Language for Database-Driven...
DOOML: A New Database & Object-Oriented Modeling Language for Database-Driven...ijseajournal
 
PYFML- A TEXTUAL LANGUAGE FOR FEATURE MODELING
PYFML- A TEXTUAL LANGUAGE FOR FEATURE MODELINGPYFML- A TEXTUAL LANGUAGE FOR FEATURE MODELING
PYFML- A TEXTUAL LANGUAGE FOR FEATURE MODELINGijseajournal
 
Eclipse Summit 2008 - Thales - SolFa
Eclipse Summit 2008 - Thales - SolFaEclipse Summit 2008 - Thales - SolFa
Eclipse Summit 2008 - Thales - SolFaBENOIT_LANGLOIS
 
A Model-driven Approach for Telecommunications Network Services Definition
A Model-driven Approach for Telecommunications Network Services DefinitionA Model-driven Approach for Telecommunications Network Services Definition
A Model-driven Approach for Telecommunications Network Services DefinitionVanea Chiprianov
 
What's New in MDT?
What's New in MDT?What's New in MDT?
What's New in MDT?Kenn Hussey
 
Irina Kogan Resume
Irina Kogan ResumeIrina Kogan Resume
Irina Kogan Resumeirina_kogan
 
Domain Driven Design and Model Driven Software Development
Domain Driven Design and Model Driven Software DevelopmentDomain Driven Design and Model Driven Software Development
Domain Driven Design and Model Driven Software DevelopmentBahram Maravandi
 
Compiler Engineering Lab#1
Compiler Engineering Lab#1Compiler Engineering Lab#1
Compiler Engineering Lab#1MashaelQ
 

Ähnlich wie EclipseCon 2010 Bernhard Merkle Textualmodelingtools penalty (20)

MODIGEN: MODEL-DRIVEN GENERATION OF GRAPHICAL EDITORS IN ECLIPSE
MODIGEN: MODEL-DRIVEN GENERATION OF GRAPHICAL EDITORS IN ECLIPSEMODIGEN: MODEL-DRIVEN GENERATION OF GRAPHICAL EDITORS IN ECLIPSE
MODIGEN: MODEL-DRIVEN GENERATION OF GRAPHICAL EDITORS IN ECLIPSE
 
Introduction To MDD
Introduction To MDDIntroduction To MDD
Introduction To MDD
 
MDD and modeling tools research
MDD and modeling tools researchMDD and modeling tools research
MDD and modeling tools research
 
DSL Best Practices
DSL Best PracticesDSL Best Practices
DSL Best Practices
 
Re-implementing Thrift using MDE
Re-implementing Thrift using MDERe-implementing Thrift using MDE
Re-implementing Thrift using MDE
 
Markus Voelter Textual DSLs
Markus Voelter Textual DSLsMarkus Voelter Textual DSLs
Markus Voelter Textual DSLs
 
UML Generator (NCC18)
UML Generator (NCC18)UML Generator (NCC18)
UML Generator (NCC18)
 
Applying SOS to MDE
Applying SOS to MDEApplying SOS to MDE
Applying SOS to MDE
 
Reifying the concurrency concern into xDSML specifications
Reifying the concurrency concern into xDSML specificationsReifying the concurrency concern into xDSML specifications
Reifying the concurrency concern into xDSML specifications
 
DSL, the absolute weapon for the development
DSL, the absolute weapon for the developmentDSL, the absolute weapon for the development
DSL, the absolute weapon for the development
 
DOOML: A NEW DATABASE & OBJECT-ORIENTED MODELING LANGUAGE FOR DATABASE-DRIVEN...
DOOML: A NEW DATABASE & OBJECT-ORIENTED MODELING LANGUAGE FOR DATABASE-DRIVEN...DOOML: A NEW DATABASE & OBJECT-ORIENTED MODELING LANGUAGE FOR DATABASE-DRIVEN...
DOOML: A NEW DATABASE & OBJECT-ORIENTED MODELING LANGUAGE FOR DATABASE-DRIVEN...
 
DOOML: A New Database & Object-Oriented Modeling Language for Database-Driven...
DOOML: A New Database & Object-Oriented Modeling Language for Database-Driven...DOOML: A New Database & Object-Oriented Modeling Language for Database-Driven...
DOOML: A New Database & Object-Oriented Modeling Language for Database-Driven...
 
PYFML- A TEXTUAL LANGUAGE FOR FEATURE MODELING
PYFML- A TEXTUAL LANGUAGE FOR FEATURE MODELINGPYFML- A TEXTUAL LANGUAGE FOR FEATURE MODELING
PYFML- A TEXTUAL LANGUAGE FOR FEATURE MODELING
 
Eclipse Summit 2008 - Thales - SolFa
Eclipse Summit 2008 - Thales - SolFaEclipse Summit 2008 - Thales - SolFa
Eclipse Summit 2008 - Thales - SolFa
 
DSL and EMFText
DSL and EMFTextDSL and EMFText
DSL and EMFText
 
A Model-driven Approach for Telecommunications Network Services Definition
A Model-driven Approach for Telecommunications Network Services DefinitionA Model-driven Approach for Telecommunications Network Services Definition
A Model-driven Approach for Telecommunications Network Services Definition
 
What's New in MDT?
What's New in MDT?What's New in MDT?
What's New in MDT?
 
Irina Kogan Resume
Irina Kogan ResumeIrina Kogan Resume
Irina Kogan Resume
 
Domain Driven Design and Model Driven Software Development
Domain Driven Design and Model Driven Software DevelopmentDomain Driven Design and Model Driven Software Development
Domain Driven Design and Model Driven Software Development
 
Compiler Engineering Lab#1
Compiler Engineering Lab#1Compiler Engineering Lab#1
Compiler Engineering Lab#1
 

Kürzlich hochgeladen

Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDropbox
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfOverkill Security
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWERMadyBayot
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelDeepika Singh
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbuapidays
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024The Digital Insurer
 

Kürzlich hochgeladen (20)

Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 

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