From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,685d80ec307a0c X-Google-Attributes: gid103376,public From: Tucker Taft Subject: Re: use of attribute Pos Date: 2000/10/12 Message-ID: <39E5EBED.170B7E46@averstar.com>#1/1 X-Deja-AN: 680641853 Content-Transfer-Encoding: 7bit References: <39E4A08D.B454CB1C@laas.fr> <39E583F7.A971C8DB@laas.fr> <5DiF5.1987$tN5.213230@nnrp2.sbc.net> <39E5DE79.F61616EC@laas.fr> X-Accept-Language: en Content-Type: text/plain; charset=us-ascii X-Complaints-To: usenet@inmet2.burl.averstar.com X-Trace: inmet2.burl.averstar.com 971369453 16569 141.199.8.77 (12 Oct 2000 16:50:53 GMT) Organization: AverStar (formerly Intermetrics) Burlington, MA USA Mime-Version: 1.0 NNTP-Posting-Date: 12 Oct 2000 16:50:53 GMT Newsgroups: comp.lang.ada Date: 2000-10-12T16:50:53+00:00 List-Id: Pat Rogers wrote: > > "Philippe Torres" wrote in message > news:39E5DE79.F61616EC@laas.fr... > > Pat Rogers wrote: > > > > > > "Philippe Torres" wrote in message > > > > But now, i wonder why Alejandro's solution > > > > ---- > > > > type Upper is new Character range 'A'..'Z' ; > > > > begin > > > > Put(Upper'Pos('A')) ; > > > > --- > > > > still manages to output 65 and not 0. > > > > > > > > Since a different type is introduced, how does Pos still refer > to > > > > Character ? > > > > Should not 'new' have broken all "links" between the types > Character > > > and > > > > Upper ? > > > > > > Now things get a little bit more involved. :-) The terminology > > > invariably confuses people, so I won't be precise in that regard. > > > Let's just say that what you really have here is a subtype of a > type > > > derived from Character. Since it has a distinct name (Upper) it > is a > > > distinct type, but it is still a constraint on Character. > > > > > > Hope that helps, as opposed to making it worse! :-) > > > > > > > OK but to me it would have been more logical to have the attribute > Pos > > reflecting exactly the position of the element in the range of the > type > > which has been "ticked". > > Anyway thanks for your help but it's a bit misleading for a newbie > like > > me to guess which are the attributes "overloaded" by a subtype or a > > derived type and which are merely "inherited such as" from the base > > type. > > Instead of > > type Upper is new Character range 'A'..'Z' ; > > imagine you wrote it this way: > > type Anonymous is new Character; > subtype Upper is Anonymous range 'A' .. 'Z'; > > That's effectively what you've got. Anonymous'Pos('A') would be 65, > and thus so is Upper'Pos('A') You can actually get at this "underlying" unconstrained (sub)type, by using the 'Base attribute. Hence, Upper'Base'First equals nul. Some attributes are type-related, and others are subtype-specific. 'First and 'Last are subtype-specific, whereas 'Pos, 'Image, (and all the attributes that are functions) are type-related. > > Better? > > --- > Patrick Rogers Consulting and Training in: > http://www.classwide.com Deadline Schedulability Analysis > progers@classwide.com Software Fault Tolerance > (281)648-3165 Real-Time/OO Languages -- -Tucker Taft stt@averstar.com http://www.averstar.com/~stt/ Technical Director, Commercial Division, AverStar (formerly Intermetrics) (http://www.averstar.com/services/IT_consulting.html) Burlington, MA USA