Using Both Specialisation and Generalisation in a Programming Language: Why and How?

Transcription

Using Both Specialisation and Generalisation in a Programming Language: Why and How?
Using Both Specialisation and
Generalisation in a Programming
Language: Why and How?
Pierre Crescenzo and Philippe Lahire
Laboratory I3S – Sophia-Antipolis
Workshop MASPEGHI - September 2nd, Montpellier
Contents
• Overview of our approach
• Case study: Generalisation/Specialisation
• Conclusion and Perspectives
2
OFL: Open Flexible Languages
• Three essential elements
– Component-description
≈ Customisable meta classes
– Component-relationship
≈ Customisable meta relationship
– Component-language
≈ Meta language, composition
The OFL model : Overview
3
Semantics customisation : parameters
• Each component is mainly described with a
set of parameters.
• Parameter ≈ part of semantics
• Creation of a component by specialisation of a
generic component
• Under meta programmer responsibility
• Control of components with assertion
mechanism
The OFL model : Overview
4
Semantics customisation : entry points
It is necessary to take into account the definition of a component
with the valuation of its parameters in order to describe the
behaviour of the system.
• OFL defines a set of 53 actions (entry points).
• Action ≈ algorithm which defines a part of application execution
• Each action takes into account the value of the parameters which
influences its execution
• Examples of actions :
• Message sending
• Feature lookup (dynamic binding)
• Assignment of an object instance to an attribute
The OFL model : Overview
5
Architecture of OFL
Generic
concepts
Language
components
An application
ConceptLanguage
My-Language
Parallelogram
ConceptRelationship
Specialisation
generalisation
ConceptDescription
Class
Rectangle
Square
One rect.
One squ.
The OFL model : Overview
6
Some of the 28 parameters of a
concept-relationship
(
, , , ...)
(, ∞, or ...)
( or for sources & targets)
( or )
(, , ...)
(, , or )
( or for attributes & methods)
(
, , or
for method parameters, function results and
attributes)
(, or )
The OFL model : overview
7
Why Generalisation and
Specialisation relationships ?
specialisation
Parallelogram
Parallelogram
Square
Rectangle
Rectangle
Square
generalisation
Parallelogram
Square
!
!
Rectangle
Parallelogram
Square
Rectangle
Case study
Parallelogram
!
Rectangle
Square
8
Specialisation and Generalisation
&
#
#
"
$%$
!
!
$%$
Case study
9
Summary of our approach
Conclusion and Perspectives
10
Open discussion
To study the value of parameters
Paper: Markku Sakkinen
A basic example
To study possible implementation
Extension of a language
In the framework of our model
…
Conclusion and Perspectives
11