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