The Art of Building Tools
Transcript of The Art of Building Tools
![Page 1: The Art of Building Tools](https://reader031.fdocuments.in/reader031/viewer/2022013001/61cb81a4400c99137c430773/html5/thumbnails/1.jpg)
The Art of Building Tools
A Language Engineering Perspective
http://voelter.de [email protected] @markusvoelter
Markus Voelter independent/itemis
![Page 2: The Art of Building Tools](https://reader031.fdocuments.in/reader031/viewer/2022013001/61cb81a4400c99137c430773/html5/thumbnails/2.jpg)
1
2
3
Tool Extension
Ex: mbeddr
GTSL
4
5
6
Ex: Requirements
Wrap Up
Ex: Insurance
![Page 3: The Art of Building Tools](https://reader031.fdocuments.in/reader031/viewer/2022013001/61cb81a4400c99137c430773/html5/thumbnails/3.jpg)
1 Tool Extension
![Page 4: The Art of Building Tools](https://reader031.fdocuments.in/reader031/viewer/2022013001/61cb81a4400c99137c430773/html5/thumbnails/4.jpg)
„Tool Extensibility
Study Findings I “The majority of our interviewees were very successful with MDE but all of them either built their own modeling tools, made heavy adapta2ons of off-‐the-‐shelf tools, or spent a lot of ?me finding ways to work around tools. The only accounts of easy-‐to-‐use, intui?ve tools came from those who had developed tools themselves for bespoke purposes. Indeed, this suggests that current tools are a barrier to success rather than an enabler.
![Page 5: The Art of Building Tools](https://reader031.fdocuments.in/reader031/viewer/2022013001/61cb81a4400c99137c430773/html5/thumbnails/5.jpg)
„Tool Extensibility
Study Findings II “Complexity problems are typically associated with off-‐the-‐ shelf tools. Of par?cular note is accidental complexity – which can be introduced due to [..] [the] lack of flexibility to adapt the tools to a company’s own context [..]
![Page 6: The Art of Building Tools](https://reader031.fdocuments.in/reader031/viewer/2022013001/61cb81a4400c99137c430773/html5/thumbnails/6.jpg)
„Tool Extensibility
Study Findings III “Our interviews point to a strong need for tailoring of some sort: either tailor the tool to the process, tailor the process to the tool, or build your own tool that naturally fits your own process. Based on our data, it seems that, on balance, it is currently much easier to do the laNer.
![Page 7: The Art of Building Tools](https://reader031.fdocuments.in/reader031/viewer/2022013001/61cb81a4400c99137c430773/html5/thumbnails/7.jpg)
Tool Extensibility
Command-Line Tools
New File Formats New Processors
Assemble Components (Pipes & Filters)
![Page 8: The Art of Building Tools](https://reader031.fdocuments.in/reader031/viewer/2022013001/61cb81a4400c99137c430773/html5/thumbnails/8.jpg)
Tool Extensibility
UI Tools
Buttons Menus
Views Actions
(New Languages) (New Editors)
Platform/Plugin Systems
![Page 9: The Art of Building Tools](https://reader031.fdocuments.in/reader031/viewer/2022013001/61cb81a4400c99137c430773/html5/thumbnails/9.jpg)
2 mbeddr
![Page 10: The Art of Building Tools](https://reader031.fdocuments.in/reader031/viewer/2022013001/61cb81a4400c99137c430773/html5/thumbnails/10.jpg)
An Example System
Language Engineering Embedded Software
Specific Languages
![Page 11: The Art of Building Tools](https://reader031.fdocuments.in/reader031/viewer/2022013001/61cb81a4400c99137c430773/html5/thumbnails/11.jpg)
An Example System
Language Engineering Embedded Software
Specific Languages
A collection of integrated languages for embedded software engineering.
![Page 12: The Art of Building Tools](https://reader031.fdocuments.in/reader031/viewer/2022013001/61cb81a4400c99137c430773/html5/thumbnails/12.jpg)
An Example System
Language Engineering Embedded Software
An extensible collection of integrated languages
Specific Languages
for embedded software engineering.
![Page 13: The Art of Building Tools](https://reader031.fdocuments.in/reader031/viewer/2022013001/61cb81a4400c99137c430773/html5/thumbnails/13.jpg)
An Example System
Language Engineering Embedded Software
Specific Languages
An IDE for all Of them
![Page 14: The Art of Building Tools](https://reader031.fdocuments.in/reader031/viewer/2022013001/61cb81a4400c99137c430773/html5/thumbnails/14.jpg)
An Example System
Language Engineering Embedded Software
Open Source Eclipse Public License http://mbeddr.com
Specific Languages
![Page 15: The Art of Building Tools](https://reader031.fdocuments.in/reader031/viewer/2022013001/61cb81a4400c99137c430773/html5/thumbnails/15.jpg)
About mbeddr
Built on JetBrains MPS
Open Source Apache 2.0 http://jetbrains.com/mps
Generic Tool
![Page 16: The Art of Building Tools](https://reader031.fdocuments.in/reader031/viewer/2022013001/61cb81a4400c99137c430773/html5/thumbnails/16.jpg)
About MPS
Rich Set of Language Aspects
+ Refactorings, Find Usages, Syntax Coloring, Debugging, ...
Generic Tool
![Page 17: The Art of Building Tools](https://reader031.fdocuments.in/reader031/viewer/2022013001/61cb81a4400c99137c430773/html5/thumbnails/17.jpg)
About MPS
Projectional Editing Parsing Projection
Generic Tool
![Page 18: The Art of Building Tools](https://reader031.fdocuments.in/reader031/viewer/2022013001/61cb81a4400c99137c430773/html5/thumbnails/18.jpg)
About MPS
Notational Flexibility
Regular Code/Text Mathematical
Tables Graphical
Generic Tool
![Page 19: The Art of Building Tools](https://reader031.fdocuments.in/reader031/viewer/2022013001/61cb81a4400c99137c430773/html5/thumbnails/19.jpg)
About MPS
Language Composition
L2 L1
Separate Files In One File
Type System Transformation Constraints
Type System Transformation Constraints Syntax Editor/IDE
Generic Tool
![Page 20: The Art of Building Tools](https://reader031.fdocuments.in/reader031/viewer/2022013001/61cb81a4400c99137c430773/html5/thumbnails/20.jpg)
An Example System
Built on JetBrains MPS
Generic Tool
![Page 21: The Art of Building Tools](https://reader031.fdocuments.in/reader031/viewer/2022013001/61cb81a4400c99137c430773/html5/thumbnails/21.jpg)
Features
Hello, World
Messages abstract over IO. Report statements output them.
![Page 22: The Art of Building Tools](https://reader031.fdocuments.in/reader031/viewer/2022013001/61cb81a4400c99137c430773/html5/thumbnails/22.jpg)
Features
Function Types and Function Pointers
Better notation for function types and function references.
![Page 23: The Art of Building Tools](https://reader031.fdocuments.in/reader031/viewer/2022013001/61cb81a4400c99137c430773/html5/thumbnails/23.jpg)
Features
Function Types and Lambdas
And yes, we have lambdas (it‘s 2013 after all J)
![Page 24: The Art of Building Tools](https://reader031.fdocuments.in/reader031/viewer/2022013001/61cb81a4400c99137c430773/html5/thumbnails/24.jpg)
Features
Reporting
Reporting has conditions. All of it removed, when disabled!
![Page 25: The Art of Building Tools](https://reader031.fdocuments.in/reader031/viewer/2022013001/61cb81a4400c99137c430773/html5/thumbnails/25.jpg)
Features
Test Cases
Special expression to run test cases and collect failure count.
![Page 26: The Art of Building Tools](https://reader031.fdocuments.in/reader031/viewer/2022013001/61cb81a4400c99137c430773/html5/thumbnails/26.jpg)
Features
Physical Units
Types can have units; additional units can be defined.
![Page 27: The Art of Building Tools](https://reader031.fdocuments.in/reader031/viewer/2022013001/61cb81a4400c99137c430773/html5/thumbnails/27.jpg)
Features
Physical Units II
Literals can have units; type system calculates w/ units.
![Page 28: The Art of Building Tools](https://reader031.fdocuments.in/reader031/viewer/2022013001/61cb81a4400c99137c430773/html5/thumbnails/28.jpg)
Features
Physical Units III
Convertible units support *value* conversions!
![Page 29: The Art of Building Tools](https://reader031.fdocuments.in/reader031/viewer/2022013001/61cb81a4400c99137c430773/html5/thumbnails/29.jpg)
Features
Math
Support for readable mathematical symbols.
![Page 30: The Art of Building Tools](https://reader031.fdocuments.in/reader031/viewer/2022013001/61cb81a4400c99137c430773/html5/thumbnails/30.jpg)
Features
Interfaces and Components I
Interfaces define operations. Components provide interfaces.
![Page 31: The Art of Building Tools](https://reader031.fdocuments.in/reader031/viewer/2022013001/61cb81a4400c99137c430773/html5/thumbnails/31.jpg)
Features
Interfaces and Components II
Components can be instantiated and wired.
![Page 32: The Art of Building Tools](https://reader031.fdocuments.in/reader031/viewer/2022013001/61cb81a4400c99137c430773/html5/thumbnails/32.jpg)
Features
Interfaces and Components III
Interfaces can have pre- and postconditions.
![Page 33: The Art of Building Tools](https://reader031.fdocuments.in/reader031/viewer/2022013001/61cb81a4400c99137c430773/html5/thumbnails/33.jpg)
Features
Interfaces and Components IV
In addition, interfaces can have protocol state machines.
![Page 34: The Art of Building Tools](https://reader031.fdocuments.in/reader031/viewer/2022013001/61cb81a4400c99137c430773/html5/thumbnails/34.jpg)
Features
Interfaces and Components V
Components can also require ports (dependency injection)
![Page 35: The Art of Building Tools](https://reader031.fdocuments.in/reader031/viewer/2022013001/61cb81a4400c99137c430773/html5/thumbnails/35.jpg)
Features
Interfaces and Components VI
Interfaces and components can be visualized.
![Page 36: The Art of Building Tools](https://reader031.fdocuments.in/reader031/viewer/2022013001/61cb81a4400c99137c430773/html5/thumbnails/36.jpg)
Features
Interfaces and Components VIII
Mock components specify expectations in context of a test.
![Page 37: The Art of Building Tools](https://reader031.fdocuments.in/reader031/viewer/2022013001/61cb81a4400c99137c430773/html5/thumbnails/37.jpg)
Features
Interfaces and Components IX
Mocks can be instantiated and validated in tests.
![Page 38: The Art of Building Tools](https://reader031.fdocuments.in/reader031/viewer/2022013001/61cb81a4400c99137c430773/html5/thumbnails/38.jpg)
Features
Interfaces and Components X
Interface contracts can be verified statically!
![Page 39: The Art of Building Tools](https://reader031.fdocuments.in/reader031/viewer/2022013001/61cb81a4400c99137c430773/html5/thumbnails/39.jpg)
Features
Decision Tables
Decision tables nicely exploit the projectional editor.
![Page 40: The Art of Building Tools](https://reader031.fdocuments.in/reader031/viewer/2022013001/61cb81a4400c99137c430773/html5/thumbnails/40.jpg)
Features
Combinable Extensions!
C, components, units and decision tables comhined!
![Page 41: The Art of Building Tools](https://reader031.fdocuments.in/reader031/viewer/2022013001/61cb81a4400c99137c430773/html5/thumbnails/41.jpg)
Features
Decision Tables II
Decision Tables are analyzed f. consistency and completeness
![Page 42: The Art of Building Tools](https://reader031.fdocuments.in/reader031/viewer/2022013001/61cb81a4400c99137c430773/html5/thumbnails/42.jpg)
Features
State Machines I
State machines fundamentally consist of states.
![Page 43: The Art of Building Tools](https://reader031.fdocuments.in/reader031/viewer/2022013001/61cb81a4400c99137c430773/html5/thumbnails/43.jpg)
Features
State Machines II
States contain transitions with guards, and actions.
![Page 44: The Art of Building Tools](https://reader031.fdocuments.in/reader031/viewer/2022013001/61cb81a4400c99137c430773/html5/thumbnails/44.jpg)
Features
State Machines III
State machines can be instantiated; code can interact.
![Page 45: The Art of Building Tools](https://reader031.fdocuments.in/reader031/viewer/2022013001/61cb81a4400c99137c430773/html5/thumbnails/45.jpg)
Features
State Machines IV
+ special support for testing state machines.
![Page 46: The Art of Building Tools](https://reader031.fdocuments.in/reader031/viewer/2022013001/61cb81a4400c99137c430773/html5/thumbnails/46.jpg)
Features
State Machines V
Outgoing interactins via function calls or out events.
![Page 47: The Art of Building Tools](https://reader031.fdocuments.in/reader031/viewer/2022013001/61cb81a4400c99137c430773/html5/thumbnails/47.jpg)
Features
State Machines VI
Hierarchical state machines (composite states)
![Page 48: The Art of Building Tools](https://reader031.fdocuments.in/reader031/viewer/2022013001/61cb81a4400c99137c430773/html5/thumbnails/48.jpg)
Features
State Machines VII
State Machines can be visualized in various way.
![Page 49: The Art of Building Tools](https://reader031.fdocuments.in/reader031/viewer/2022013001/61cb81a4400c99137c430773/html5/thumbnails/49.jpg)
Features
State Machines VIII
Symbolic Model Checking for State Machines
![Page 50: The Art of Building Tools](https://reader031.fdocuments.in/reader031/viewer/2022013001/61cb81a4400c99137c430773/html5/thumbnails/50.jpg)
Features
Documentation
Rich, Structured Comments (note the embedded nodes)
![Page 51: The Art of Building Tools](https://reader031.fdocuments.in/reader031/viewer/2022013001/61cb81a4400c99137c430773/html5/thumbnails/51.jpg)
Features
Documentation II
Documentation Language w/ Embeddable Code (LaTeX/HTML)
![Page 52: The Art of Building Tools](https://reader031.fdocuments.in/reader031/viewer/2022013001/61cb81a4400c99137c430773/html5/thumbnails/52.jpg)
Features
Documentation III
Format Text, Reference Code, Define Glossary Terms
![Page 53: The Art of Building Tools](https://reader031.fdocuments.in/reader031/viewer/2022013001/61cb81a4400c99137c430773/html5/thumbnails/53.jpg)
Features
Documentation IV
Embeddable Expressions with Real Type Checking
![Page 54: The Art of Building Tools](https://reader031.fdocuments.in/reader031/viewer/2022013001/61cb81a4400c99137c430773/html5/thumbnails/54.jpg)
Features
Product Line Variability
Feature Models (and Checked Configs) to Express Variability
![Page 55: The Art of Building Tools](https://reader031.fdocuments.in/reader031/viewer/2022013001/61cb81a4400c99137c430773/html5/thumbnails/55.jpg)
Features
Product Line Variability II
Runtime Variability based on Feature Models
![Page 56: The Art of Building Tools](https://reader031.fdocuments.in/reader031/viewer/2022013001/61cb81a4400c99137c430773/html5/thumbnails/56.jpg)
Features
Product Line Variability III
Static Variability for any Program w/ Variant Editing
![Page 57: The Art of Building Tools](https://reader031.fdocuments.in/reader031/viewer/2022013001/61cb81a4400c99137c430773/html5/thumbnails/57.jpg)
Features
Tree Views I
Different Tree View Structures defined by language concepts.
![Page 58: The Art of Building Tools](https://reader031.fdocuments.in/reader031/viewer/2022013001/61cb81a4400c99137c430773/html5/thumbnails/58.jpg)
Features
Tree Views II
Custom Commands are supported as well.
![Page 59: The Art of Building Tools](https://reader031.fdocuments.in/reader031/viewer/2022013001/61cb81a4400c99137c430773/html5/thumbnails/59.jpg)
Features
Debugging
Debugging on the DSL Level (Extensible!)
![Page 60: The Art of Building Tools](https://reader031.fdocuments.in/reader031/viewer/2022013001/61cb81a4400c99137c430773/html5/thumbnails/60.jpg)
Features
VCS Diff/Merge
Diff/Merge on the Projected Syntax
![Page 61: The Art of Building Tools](https://reader031.fdocuments.in/reader031/viewer/2022013001/61cb81a4400c99137c430773/html5/thumbnails/61.jpg)
Features
CI Server Integration
Building Programs on Command Line/CI Server
![Page 62: The Art of Building Tools](https://reader031.fdocuments.in/reader031/viewer/2022013001/61cb81a4400c99137c430773/html5/thumbnails/62.jpg)
3 GTSL Generic
Tools Specific Languages
![Page 63: The Art of Building Tools](https://reader031.fdocuments.in/reader031/viewer/2022013001/61cb81a4400c99137c430773/html5/thumbnails/63.jpg)
Thought Process
From Data Formats To Languages
Structure, Constraints, Semantics + Syntax + IDE Data Format
Language
![Page 64: The Art of Building Tools](https://reader031.fdocuments.in/reader031/viewer/2022013001/61cb81a4400c99137c430773/html5/thumbnails/64.jpg)
Thought Process
Language Engineering
Languages
Language Reuse Language Modularization Language Composition Language Engineering
![Page 65: The Art of Building Tools](https://reader031.fdocuments.in/reader031/viewer/2022013001/61cb81a4400c99137c430773/html5/thumbnails/65.jpg)
Thought Process
Language Engineering
Languages
Language Engineering
Syntactic Diversity
Text Tables
Math Symbols
Graphics Forms
![Page 66: The Art of Building Tools](https://reader031.fdocuments.in/reader031/viewer/2022013001/61cb81a4400c99137c430773/html5/thumbnails/66.jpg)
Thought Process
Language Workbenches
Languages
Language Engineering
Syntactic Diversity
But does this really work? Language Workbenches
![Page 67: The Art of Building Tools](https://reader031.fdocuments.in/reader031/viewer/2022013001/61cb81a4400c99137c430773/html5/thumbnails/67.jpg)
Generic Tools, Specific Languages
Ingredients
Languages
Language Engineering
Syntactic Diversity
Language Workbenches Generic Tools
Specific Languages
![Page 68: The Art of Building Tools](https://reader031.fdocuments.in/reader031/viewer/2022013001/61cb81a4400c99137c430773/html5/thumbnails/68.jpg)
Generic Tools, Specific Languages
Ingredients
Languages
Language Engineering
Syntactic Diversity
Language Workbenches Generic Tools
Specific Languages
(we don‘t have to reimplement editors and synchronizers)
![Page 69: The Art of Building Tools](https://reader031.fdocuments.in/reader031/viewer/2022013001/61cb81a4400c99137c430773/html5/thumbnails/69.jpg)
Generic Tools, Specific Languages
Ingredients
Languages
Language Engineering
Syntactic Diversity
Language Workbenches Generic Tools
Specific Languages
support
![Page 70: The Art of Building Tools](https://reader031.fdocuments.in/reader031/viewer/2022013001/61cb81a4400c99137c430773/html5/thumbnails/70.jpg)
Language Workbenches
Typical Features
Goto Definition/Find Usages Error Markup/Quick Fixes Syntax Highlighting Code Completion Search/Replace Refactoring Debugging
Reporting Visualization
Version Control
![Page 71: The Art of Building Tools](https://reader031.fdocuments.in/reader031/viewer/2022013001/61cb81a4400c99137c430773/html5/thumbnails/71.jpg)
Language Workbenches
Typical Features
for any Language!
![Page 72: The Art of Building Tools](https://reader031.fdocuments.in/reader031/viewer/2022013001/61cb81a4400c99137c430773/html5/thumbnails/72.jpg)
Language Workbenches
Typical Features
Language Workbenches act as the foundation for IDEs for any language.
![Page 73: The Art of Building Tools](https://reader031.fdocuments.in/reader031/viewer/2022013001/61cb81a4400c99137c430773/html5/thumbnails/73.jpg)
„Tool Extensibility
Study Findings I “The majority of our interviewees were very successful with MDE but all of them either built their own modeling tools, made heavy adapta2ons of off-‐the-‐shelf tools, or spent a lot of ?me finding ways to work around tools. The only accounts of easy-‐to-‐use, intui?ve tools came from those who had developed tools themselves for bespoke purposes. Indeed, this suggests that current tools are a barrier to success rather than an enabler.
![Page 74: The Art of Building Tools](https://reader031.fdocuments.in/reader031/viewer/2022013001/61cb81a4400c99137c430773/html5/thumbnails/74.jpg)
„Tool Extensibility
Study Findings II “Complexity problems are typically associated with off-‐the-‐ shelf tools. Of par?cular note is accidental complexity – which can be introduced due to poor considera?on of other categories, such as lack of flexibility to adapt the tools to a company’s own context [..]
![Page 75: The Art of Building Tools](https://reader031.fdocuments.in/reader031/viewer/2022013001/61cb81a4400c99137c430773/html5/thumbnails/75.jpg)
Language Workbenches
Typical Features
Used by the tool vendor to build the initial tool (languages).
Used by the end user to adapt the tool (lang extensions)!
Extensions are first-class!
![Page 76: The Art of Building Tools](https://reader031.fdocuments.in/reader031/viewer/2022013001/61cb81a4400c99137c430773/html5/thumbnails/76.jpg)
Generic Tools, Specific Languages
Adaptability is built-in!
Extensions are first-class!
Fundamentally different from Today‘s State-of-the-Art in Tools
![Page 77: The Art of Building Tools](https://reader031.fdocuments.in/reader031/viewer/2022013001/61cb81a4400c99137c430773/html5/thumbnails/77.jpg)
4 Example II: Requirements
![Page 78: The Art of Building Tools](https://reader031.fdocuments.in/reader031/viewer/2022013001/61cb81a4400c99137c430773/html5/thumbnails/78.jpg)
Features
Requirements
Structured and Hierarchical Requirements.
![Page 79: The Art of Building Tools](https://reader031.fdocuments.in/reader031/viewer/2022013001/61cb81a4400c99137c430773/html5/thumbnails/79.jpg)
Features
Requirements Relationships
References to other Requirements (see Documentation lang.)
![Page 80: The Art of Building Tools](https://reader031.fdocuments.in/reader031/viewer/2022013001/61cb81a4400c99137c430773/html5/thumbnails/80.jpg)
Features
Requirements Relationship Diagram
Relationships between Requirements (downstream, upstream)
![Page 81: The Art of Building Tools](https://reader031.fdocuments.in/reader031/viewer/2022013001/61cb81a4400c99137c430773/html5/thumbnails/81.jpg)
Features
Requirements ext‘d with Business Rules
Live (interpreted) Business Rules can be Embedded in Req.
![Page 82: The Art of Building Tools](https://reader031.fdocuments.in/reader031/viewer/2022013001/61cb81a4400c99137c430773/html5/thumbnails/82.jpg)
Features
Debugging Business Rules („Live Program‘g“)
All intermediate expression values shown inline.
![Page 83: The Art of Building Tools](https://reader031.fdocuments.in/reader031/viewer/2022013001/61cb81a4400c99137c430773/html5/thumbnails/83.jpg)
Features
Code Referencing Business Rules
These Business Rules can be „called“ from C Code
![Page 84: The Art of Building Tools](https://reader031.fdocuments.in/reader031/viewer/2022013001/61cb81a4400c99137c430773/html5/thumbnails/84.jpg)
Features
Requirements with Scenarios
Requirements are Extensible, e.g. with Scenarios
![Page 85: The Art of Building Tools](https://reader031.fdocuments.in/reader031/viewer/2022013001/61cb81a4400c99137c430773/html5/thumbnails/85.jpg)
Features
Graphical Scenarios
Scenarios can be Visualized
![Page 86: The Art of Building Tools](https://reader031.fdocuments.in/reader031/viewer/2022013001/61cb81a4400c99137c430773/html5/thumbnails/86.jpg)
Features
Workpackages
An extension supports workpackages for requirements.
![Page 87: The Art of Building Tools](https://reader031.fdocuments.in/reader031/viewer/2022013001/61cb81a4400c99137c430773/html5/thumbnails/87.jpg)
Features
Workpackage Assessments
A report over the workpackages and the spent work
![Page 88: The Art of Building Tools](https://reader031.fdocuments.in/reader031/viewer/2022013001/61cb81a4400c99137c430773/html5/thumbnails/88.jpg)
Features
Requirements Tracing
Ubiquitous Tracing from Arbitrary Program Elements
![Page 89: The Art of Building Tools](https://reader031.fdocuments.in/reader031/viewer/2022013001/61cb81a4400c99137c430773/html5/thumbnails/89.jpg)
5 Example III: Insurance
![Page 90: The Art of Building Tools](https://reader031.fdocuments.in/reader031/viewer/2022013001/61cb81a4400c99137c430773/html5/thumbnails/90.jpg)
Insurance Workbench
More Form-Like Notation
This workbench is to be used by insurance experts
![Page 91: The Art of Building Tools](https://reader031.fdocuments.in/reader031/viewer/2022013001/61cb81a4400c99137c430773/html5/thumbnails/91.jpg)
Insurance Workbench
More Form-Like Notation
This workbench is to be used by insurance experts
![Page 92: The Art of Building Tools](https://reader031.fdocuments.in/reader031/viewer/2022013001/61cb81a4400c99137c430773/html5/thumbnails/92.jpg)
Insurance Workbench
More Form-Like Notation – with Expressions
Non-Programmers like Forms and Buttons – and need Lang‘s
![Page 93: The Art of Building Tools](https://reader031.fdocuments.in/reader031/viewer/2022013001/61cb81a4400c99137c430773/html5/thumbnails/93.jpg)
Insurance Workbench
Mathematical Notation
This workbench was used by insurance domain experts
![Page 94: The Art of Building Tools](https://reader031.fdocuments.in/reader031/viewer/2022013001/61cb81a4400c99137c430773/html5/thumbnails/94.jpg)
Insurance Workbench
Tables (taken from diff. Example)
A bit like „Excel“ with a real language behind it.
![Page 95: The Art of Building Tools](https://reader031.fdocuments.in/reader031/viewer/2022013001/61cb81a4400c99137c430773/html5/thumbnails/95.jpg)
Insurance Workbench
Tables (taken from diff. Example)
A bit like „Excel“ with a real language behind it.
![Page 96: The Art of Building Tools](https://reader031.fdocuments.in/reader031/viewer/2022013001/61cb81a4400c99137c430773/html5/thumbnails/96.jpg)
6 Summing up
![Page 97: The Art of Building Tools](https://reader031.fdocuments.in/reader031/viewer/2022013001/61cb81a4400c99137c430773/html5/thumbnails/97.jpg)
Summing Up
Key Points
To build meaningful tools, the data must be extended.
Extending the tool (buttons, views, ...) is not enough!
![Page 98: The Art of Building Tools](https://reader031.fdocuments.in/reader031/viewer/2022013001/61cb81a4400c99137c430773/html5/thumbnails/98.jpg)
Summing Up
Key Points
Structured Data can be expressed with languages.
Languages are data formats plus syntax and IDE.
![Page 99: The Art of Building Tools](https://reader031.fdocuments.in/reader031/viewer/2022013001/61cb81a4400c99137c430773/html5/thumbnails/99.jpg)
Summing Up
Key Points
Language Engineering supports extension and composition
This supports adapting tools for specific domains easily.
![Page 100: The Art of Building Tools](https://reader031.fdocuments.in/reader031/viewer/2022013001/61cb81a4400c99137c430773/html5/thumbnails/100.jpg)
Summing Up
Key Points
IDE-style tools are very good for editing data/programs.
We‘ve got a lot of experience from regular programming.
![Page 101: The Art of Building Tools](https://reader031.fdocuments.in/reader031/viewer/2022013001/61cb81a4400c99137c430773/html5/thumbnails/101.jpg)
Summing Up
Key Points
Language Workbenches are the key enabling technology.
MPS is IMHO the most power- ful, but it‘s not the only one!
![Page 102: The Art of Building Tools](https://reader031.fdocuments.in/reader031/viewer/2022013001/61cb81a4400c99137c430773/html5/thumbnails/102.jpg)
Summing Up
Key Points
Let‘s build new classes of tools!
... which make meaningful extensibility a reality!
![Page 103: The Art of Building Tools](https://reader031.fdocuments.in/reader031/viewer/2022013001/61cb81a4400c99137c430773/html5/thumbnails/103.jpg)
Ω The End.
![Page 104: The Art of Building Tools](https://reader031.fdocuments.in/reader031/viewer/2022013001/61cb81a4400c99137c430773/html5/thumbnails/104.jpg)
voelter.de dslbook.org mbeddr.com jetbrains.com/mps
The End.