Toolbased Language Development J. Fischer, E. Holz, A. Prinz, M. Scheidgen.
-
Upload
meghan-lambert -
Category
Documents
-
view
214 -
download
0
Transcript of Toolbased Language Development J. Fischer, E. Holz, A. Prinz, M. Scheidgen.
Toolbased Language Toolbased Language DevelopmentDevelopment
Toolbased Language Toolbased Language DevelopmentDevelopment
J. Fischer, E. Holz, A. Prinz, M. Scheidgen
2WITUL, 18 April 2023
OutlineOutlineOutlineOutline
• Problems of modern software engineering –
The current situation• SMILE-Project• Role of common concepts• A Toolbased language development
Application
3WITUL, 18 April 2023
SituationSituationSituationSituation
MDAMDAMDAMDA
integratedintegrateduse of use of
languageslanguages
integratedintegrateduse of use of
languageslanguagescomplexcomplex
languageslanguagescomplexcomplex
languageslanguages
differentdifferentkinds ofkinds of
language definitionslanguage definitions
differentdifferentkinds ofkinds of
language definitionslanguage definitions
domain specificdomain specificlanguageslanguages
domain specificdomain specificlanguageslanguages ambiguitiesambiguities
in semanticsin semanticsambiguitiesambiguitiesin semanticsin semantics
reuse of reuse of language conceptslanguage concepts
reuse of reuse of language conceptslanguage concepts
language language profilingprofiling
language language profilingprofiling
ToolbasedToolbasedLanguageLanguage
DevelopmentDevelopment
ToolbasedToolbasedLanguageLanguage
DevelopmentDevelopment
4WITUL, 18 April 2023
SMILE Project OverviewSMILE Project OverviewSMILE Project OverviewSMILE 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
5WITUL, 18 April 2023
SMILE VisionSMILE VisionSMILE VisionSMILE Vision
1. Define language semantics explicitly
2. Automatically generate tools from all descriptions
3. Increase the level of abstraction
4. Ease language development by providing tools
5. Handle all common sorts of descriptions: grammars, graphics and semantics
6. Model and meta-model handling is in the centre
7. Main focus is on language handling and integration
MDAMDAMDAMDA
IIntegratedntegrateduse of use of
languageslanguages
IIntegratedntegrateduse of use of
languageslanguages CComplexomplexlanguageslanguagesCComplexomplex
languageslanguages
DDifferentifferentkinds ofkinds of
language language definitionsdefinitions
DDifferentifferentkinds ofkinds of
language language definitionsdefinitions
DDomain specificomain specificlanguageslanguages
DDomain specificomain specificlanguageslanguages AAmbiguitiesmbiguities
in semanticsin semanticsAAmbiguitiesmbiguitiesin semanticsin semantics
RReuse of euse of language language conceptsconcepts
RReuse of euse of language language conceptsconcepts
LLanguage anguage profilingprofiling
LLanguage anguage profilingprofiling
ToolbasedToolbasedLanguageLanguage
DevelopmentDevelopment
ToolbasedToolbasedLanguageLanguage
DevelopmentDevelopment
112,3,42,3,4
3,63,6
6,76,7 772,3,4,52,3,4,5
3,63,6
2,52,5
6WITUL, 18 April 2023
MModelsodels
SSemanticsemantics
GGeneratedeneratedtoolstools
SMILE – Tool - EnvironmentSMILE – Tool - EnvironmentSMILE – Tool - EnvironmentSMILE – Tool - Environment
MMetamodeletamodel
GGrammarrammarGGraphicalraphicalrepresentationrepresentation
SStatictaticsemanticssemantics
TTransfor-ransfor-mationsmations
MMetamodeletamodel
PParserarserEEditorditor
TTranslatorranslator
SM
ILE
SM
ILE
CO
RE
CO
RE
SM
ILE
SM
ILE
CO
RE
CO
RE
SMILESMILESMILESMILE
CCheckerhecker
7WITUL, 18 April 2023
GGrammarrammarGGrammarrammar MMetamodeletamodelMMetamodeletamodel
Example - Grammar ToolExample - Grammar ToolExample - Grammar ToolExample - Grammar Tool
process::name typeprocess::name typeparameterparameter......
AgentAgentAgentAgent AgentTypeAgentTypeAgentTypeAgentType
SSemanticsemanticsGGrammar to metamodelrammar to metamodel
mappingmapping
SSemanticsemanticsGGrammar to metamodelrammar to metamodel
mappingmapping
metamodel generationmetamodel generation
PParserarserPParserarser
process::name ... process::name ... { metamodel::{ metamodel:: AgentClass.create($1); AgentClass.create($1); ... };... };
SYSTEM daemonGame ;SYSTEM daemonGame ; signal newGame, endGame,signal newGame, endGame, score(Integer); CHANNEL serscore(Integer); CHANNEL ser NODELAY FROM ENV NODELAY FROM ENV TO daemong WITH newGame,TO daemong WITH newGame,endGame,endGame,probe,probe,result ;result ; FROM dae TO gameId,FROM dae TO gameId,win,win,lose,lose,score ;score ; ENDCHANNEL;ENDCHANNEL;
SYSTEM daemonGame ;SYSTEM daemonGame ; signal newGame, endGame,signal newGame, endGame, score(Integer); CHANNEL serscore(Integer); CHANNEL ser NODELAY FROM ENV NODELAY FROM ENV TO daemong WITH newGame,TO daemong WITH newGame,endGame,endGame,probe,probe,result ;result ; FROM dae TO gameId,FROM dae TO gameId,win,win,lose,lose,score ;score ; ENDCHANNEL;ENDCHANNEL;
8WITUL, 18 April 2023
Modular Language Definitions – Common Modular Language Definitions – Common ConceptsConcepts
Modular Language Definitions – Common Modular Language Definitions – Common ConceptsConcepts
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
9WITUL, 18 April 2023
Attributes of Common Language ConceptsAttributes of Common Language ConceptsAttributes of Common Language ConceptsAttributes of Common Language Concepts
• Common:• Different Languages
can share the same concepts
classifierclassifier
NamespaceNamespace
GeneralizableGeneralizableElementElement
**
supertypesupertype
contentcontent NamedElementNamedElementString : nameString : name
ImplicitImplicitPackagePackage
PackagePackageC++ ClassC++ ClassJava ClassJava Class
• 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
10WITUL, 18 April 2023
SDL-2000SDL-2000
Development of a Set of Common ConceptsDevelopment of a Set of Common ConceptsDevelopment of a Set of Common ConceptsDevelopment 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 commonSet of commonconcepconcepttss
KKnown nown conceptsconcepts
UMLUML SDL+SDL+
<<decomposition>><<decomposition>>
11WITUL, 18 April 2023
A Toolbased Language Development A Toolbased Language Development ApplicationApplication
A Toolbased Language Development A Toolbased Language Development ApplicationApplication
12WITUL, 18 April 2023
You learned aboutYou learned aboutYou learned aboutYou 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