Supported by AITO. These pages are currently maintained by Alex Potanin |
|
The OFL Model to Customise Operational Semantics of Object-Oriented Languages: Application to Inter-Classes Relationships
Projet OCL ; 2000, route des lucioles ; Les Algorithmes, bâtiment Euclide B ; BP 121 ; F-06903 Sophia Antipolis CEDEX ; France tel: +33 (0)4 92 94 27 42 fax: +33 (0)4 92 94 28 96 Pierre.Crescenzo@unice.fr Keywords:language concepts language implementation meta architectures software engineering
Abstract:OFL is the acronym for "Open Flexible Languages" and the name of a meta model for object-oriented programming languages based on classes. It relies on three essential concepts of these languages: descriptions which are a generalisation of the notion of class, relationships such as inheritance or aggregation and languages themselves. OFL provides a customisation of these three concepts in order to adapt their operational semantics to the programmer's needs.Each concept (concept-language, concept-description, or concept-relationship) is described by a set of parameters. Each parameter control a "piece of operational semantics" of the language. For example, to define a relationship like "inheritance", we have to set the value of some parameters such as: - Cardinality: 1-1 (single inheritance), - Circularity: false, - Polymorphism_direction: up, - ... And, to define a description like "class", we must assign some others parameters such as: - Generator: true (we can define constructors), - Overloading: true (like in Java, unlike in Eiffel, - Attribute: allowed (attributes are allowed), - ... Thus, the meta-programmer's work is to define or modify concepts-descriptions and concepts-relationships to adapt an existing language or create a new one. Or (s)he can choose in a library several concepts-descriptions and concepts-relationships and compose them in a concept-language. Several softwares, in the process of being implemented, provide graphical assistance to meta-programmers and programmers. The first tool called OFL-Meta is for the meta-programmer. It allows to graphically create, modify or delete the instances of the concepts. In other words, it allows to describe the operational semantics of a language which will be used when designing an application. These components which it handles can be stored by using various standard formalism such XML or MOF. The second tool is called OFL-ML in reference to UML. It is intended for the application designer. It is also a graphical tool which allows to design the structure of the application (classes A and B, inheritance between classes A and B, ...), i. e. instances of the entities described in OFL-Meta. The programming task is included by a binding: the selected language is Java, that is body of all the methods is written in Java. The third tool is called OFL-Parser. It is a translator, interpreter or compiler. Its task is to translate the structure of the application and the body of methods into a target language, Java in our case. The last step consist in executing the generated application and thus to use the methods and create the final data. To sum up, we can say that OFL is an approach to create or modify elements of languages (such as kinds of descriptions or relationships) by giving a value to a set of parameters.
HTML3 JAVA
Last modified on Mon Aug 15 14:59:24 2005 |