130 likes | 134 Views
Toolbased Language Development. J. Fischer, E. Holz, A. Prinz, M. Scheidgen. Outline. Problems of modern software engineering – The current situation SMILE-Project Role of common concepts A Toolbased language development Application. integrated use of languages. complex languages.
E N D
Toolbased Language Development J. Fischer, E. Holz, A. Prinz, M. Scheidgen
Outline • Problems of modern software engineering – The current situation • SMILE-Project • Role of common concepts • A Toolbased language development Application
integrated use of languages complex languages MDA Toolbased Language Development language profiling reuse of language concepts domain specific languages different kinds of language definitions ambiguities in semantics Situation
SMILE 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
Integrated use of languages Complex languages MDA Toolbased Language Development Language profiling Reuse of language concepts Domain specific languages Different kinds of language definitions Ambiguities in semantics SMILE 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
SMILE – Tool - Environment Models Graphical representation Grammar Static semantics Transfor- mations Metamodel Metamodel Semantics SMILE Generated tools SMILE CORE SMILE CORE Translator Checker Editor Parser
Example - Grammar Tool metamodel generation Metamodel Grammar process::name type parameter ... Agent AgentType Semantics Grammar to metamodel mapping 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; Parser process::name ... { metamodel:: AgentClass.create($1); ... };
Modular 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 eachother • 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
* NamedElement content String : name Namespace Generalizable Element supertype Implicit Package Java Class C++ Class Package Attributes of Common Language Concepts • Common: • Different Languages can share the same concepts • Abstract/Coherent: • The most abstract concepts should only describe single distinct characteristics • Loose/Pluggable: • One must be able to use concepts idependently from other concepts classifier
Known concepts <<decomposition>> UML SDL+ SDL-2000 Development 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
You 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