Title: Toolbased Language Development
1Toolbased Language Development
- J. Fischer, E. Holz, A. Prinz, M. Scheidgen
2Outline
- Problems of modern software engineering The
current situation - SMILE-Project
- Role of common concepts
- A Toolbased language development Application
3Situation
4SMILE Project Overview
- SMILE Semantic Meta-model-based Integrated
Language Environment - Semantic
- Explicit representation of all semantic
(meaning-giving) information - Meta-model-based
- Model and Meta-model handling are central
- Integrated
- Uniform information handling independent of the
level of abstraction, meta-modelling and
executeability - Language
- Focuses on language handling integration and
provision of tools - Support of small domain specific languages and of
proprietary language extensions - Environment
- Complete environment allowing all important
operations
5SMILE Vision
- Define language semantics explicitly
- Automatically generate tools from all
descriptions - Increase the level of abstraction
- Ease language development by providing tools
- Handle all common sorts of descriptions
grammars, graphics and semantics - Model and meta-model handling is in the centre
- Main focus is on language handling and integration
7
6,7
2,3,4,5
3,6
3,6
2,3,4
2,5
1
6SMILE Tool - Environment
Models
Grammar
Graphical representation
Static semantics
Transfor- mations
Metamodel
Metamodel
Semantics
SMILE
Generated tools
SMILE CORE
SMILE CORE
Translator
Checker
Parser
Editor
7Example - Grammar Tool
metamodel generation
Metamodel
Grammar
processname type parameter ...
Agent
AgentType
Semantics Grammar to metamodel mapping
Parser
SYSTEM daemonGame signal newGame, endGame,
score(Integer) CHANNEL ser NODELAY
FROM ENV TO daemong WITH newGame, endGame, probe,
result FROM dae TO
gameId, win, lose, score ENDCHANNEL
processname ... metamodel
AgentClass.create(1) ...
8Modular Language Definitions Common Concepts
- Key observation
- Despite syntactical differences languages
usually share a set of common concepts! - A modellbased language definition should exploit
this for - Language integration
- common concepts directly relate languages to each
other - common concepts support faster integration of new
languages as well as the development of profiles
and domain specific languages - Reuse
- different languages have more commonalities than
differences - classification leads to hierarchies of concepts
- these hierarchies can be extended into semantic
descriptions and tool development
9Attributes of Common Language Concepts
- Common
- Different Languages can share the same concepts
- Abstract/Coherent
- The most abstract concepts should only describe
single distinct characteristics
classifier
- Loose/Pluggable
- One must be able to use concepts idependently
from other concepts
10Development of a Set of Common Concepts
- Where to look
- Known elements What type systems, computational
models, structure mechanisms do we know - Decomposition Find abstractions
- Comparison What concepts do languages share and
how can they modelled reusable
Set of common concepts
11A Toolbased Language Development Application
12You learned about
- SMILE
- Metamodel centred, model driven
- Automatic tool generation from semantic
information - Integrated language development via common
concepts - Common concepts Object orientation in language
development - Application A integrated SDL/UML Tool environment
13