Toolbased Language Development J. Fischer, E. Holz, A. Prinz, M. Scheidgen.

13
Toolbased Language Toolbased Language Development Development J. Fischer, E. Holz, A. Prinz, M. Scheidgen

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

13WITUL, 18 April 2023

Thank You