Subject: SDL-News: OO features in SDL (2nd call for comments)
From: Thomas Weigert (weigert#comm.mot.com)
Date: Tue May 26 1998 - 13:49:04 GMT
The originator of this message is responsible for its content.
-----From Thomas Weigert <weigert#comm.mot.com> to sdlnews -----
One of the goals for SDL 2000 is to provide for revisions to the data
model, which should support object orientation, which was meant to
include:
· inheritance, in line with the other SDL type concepts;
· means for definition/encapsulation of member attributes and
operators;
· redefinition of operators in sub types;
· expression compatibility between values and sub-type values.
(see ITU-T, COM10-R1-E).
These preferences, of course, leave many design choices open. This email
requests positions on these design choices. Below I list some of the
considerations. I would greatly appreciate if the user community were to
comment on preferred choices with respect to these design
considerations.
Best regards, Thomas Weigert.
------------------------------ cut here --------------------------
1. What are classes? To what extent are they templates for instances?
1. Classes as objects
2. Is every type a class?
3. Shared attributes
4. Initial state after instance creation
1. Synthesized initizliation (e.g., from attributes) vs.
user-defined initialization method
5. Dynamic creation/change possible (e.g., CLOS, Smalltalk)
6. Scoping units
7. Parameterized
8. Abstract (deferred) classes
2. What notion of inheritance is supported?
1. Single vs. multiple inheritance
2. Visibility control
3. Private vs. public default visibility
4. Hiding from clients and/or descendants
5. Static vs. dynamic typing
6. Inheritance of semantics (e.g. Eiffel) vs. inheritance of
implementation
7. How are inheritance/naming conflicts resolved?
8. Can constraints be posed on descendents?
3. Methods and dispatch
1. Are methods part of a class?
2. Multi-argument (CLOS) vs. single-argument dispatch
3. Static vs. dynamic dispatch
4. Covariant vs. contravariant conformance of undispatched
argument
types
5. Covariant conformance of result type
6. Covariant vs. contravariant conformance of attribute types
7. How are shadowed methods referenced (e.g., super, renaming)
8. Can methods be combined?
9. Systematic change of types when inheriting methods (SDL) vs.
anchoring (Eiffel)
4. Run-time type identification (C++) vs. assignment attempts (Eiffel)
5. Is there special syntax for method calls/attributes or dispatched
arguments?
P.S. This list is rather terse. The individual entries are to be read as
"Should this feature be present, and what is it supposed to mean in the
context of SDL?"
-----End text from Thomas Weigert <weigert#comm.mot.com> to sdlnews -----
For help, email "majordomo#sdl-forum.org" with the body of your email as:
help
or (iff this does not answer your question) email: owner-sdlnews#sdl-forum.org
This archive was generated by hypermail 2a23 : Sun Jun 16 2013 - 10:41:40 GMT