Path: utzoo!utgpu!jarvis.csri.toronto.edu!cs.utexas.edu!samsung!uakari.primate.wisc.edu!uflorida!novavax!weiner From: weiner@novavax.UUCP (Bob Weiner) Newsgroups: comp.lang.eiffel Subject: Re: BASIC TYPES Message-ID: <1799@novavax.UUCP> Date: 21 Feb 90 00:00:31 GMT References: <1864@clyde.concordia.ca> <251@eiffel.UUCP> Organization: Motorola Inc. Lines: 27 In-reply-to: bertrand@eiffel.UUCP's message of 20 Feb 90 06:14:10 GMT > As a result, the basic types are treated as ``quasi-normal'' in the > release available since last summer (2.2). Internally, however, they are > still handled specially so as to guarantee a high level of efficiency > (3 + 4 is theoretically a routine call, but few Eiffel users would want it > to be implemented that way!). In fact, this part is one of the trickiest in I do not agree with this statement since I believe that one cannot inherit from the basic types in order to create a new class which constrains the type's invariant further. (I must admit that I have tried to inherit from INT rather than INTEGER, and so forth, since there is no class interface corresponding to INTEGER.) Rather than sprinkle pre- and post-conditions around routines that say: require param > 0 and other such things, it makes sense to create classes for POS_INT, NON_NEG_INT and so forth and then type the formal parameters of the routines. The current implementation does not support this basic idea and hence event the term 'quasi-normal' seems too strong to me. I do hope that Eiffel V3.0 will correct this limitation. Even better, I would enjoy finding out that I am mistaken in my view. -- Bob Weiner, Motorola, Inc., USENET: ...!gatech!uflorida!novavax!weiner (407) 364-2087