yes, we had the same problems with some languages we added too.
The name is the same (class, method, function, package, ...) but they
all have little sementic differences that make them difficult to unify.
One solution we thought about would be to have some basic "building
blocks" from which the proper entities would be composed (like proposed
by Stephan).
Some possible building blocks we could think about are:
- Container (should it be specialized according to the kind of entities
it may contain?)
- Behavioural (makes invocations, accesses)
- Type (used in TypedEntity)
- TypedEntity (e.g. Variables and Functions)
- Variable
- NameScope
- MultiPart (definition is the union of several parts found in different
"places", e.g. classes in C#)
- Generic (can be made concrete by an entity of the same kind, e.g.
generic classes and template methods, has untyped "parameters")
e.g. in Ada, a package is a Container, a NameScope, a Behavioural, and a
MultiPart
It is not yet clear how this could work:
- can we find a finite list of core building blocks?
- are they really core, or are they themselves subject to little
semantic differences (like container of functions and container of classes)?
- is it implementable?
Starting next year, we will be studying this in more details
nicolas
On 20/12/2016 18:27, Stephan Eggermont wrote:
On 20/12/16 16:32, Blondeau Vincent wrote:
In the context of Moose re-architecting,
FAMIXCore package should > contain only FAMIXCore classes, i.e., only classes common to
all >
languages.
What does that practically mean? The semantics of core concepts
seems to be slightly different in all languages, and we noticed
when adding Delphi that a number of concepts were incompatible
and the hierarchy needed modifications.
Wouldn't it be better to have all building blocks in core and
compose them in the language packages?
Stephan
_______________________________________________
Moose-dev mailing list
Moose-dev(a)list.inf.unibe.ch
https://www.list.inf.unibe.ch/listinfo/moose-dev
--
Nicolas Anquetil -- MCF (HDR)
Project-Team RMod