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=-0.8 required=5.0 tests=BAYES_00,INVALID_DATE autolearn=no autolearn_force=no version=3.4.4 Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!seismo!columbia!rutgers!husc6!panda!genrad!decvax!ucbvax!ADA20.ISI.EDU!BBardin From: BBardin@ADA20.ISI.EDU Newsgroups: net.lang.ada Subject: Re: Predefined Operations Message-ID: <8610101817.AA04645@ucbvax.Berkeley.EDU> Date: Wed, 8-Oct-86 15:08:18 EDT Article-I.D.: ucbvax.8610101817.AA04645 Posted: Wed Oct 8 15:08:18 1986 Date-Received: Sat, 11-Oct-86 20:26:06 EDT Sender: daemon@ucbvax.BERKELEY.EDU Organization: The ARPA Internet List-Id: If I may, a few more words on the issue of predefined operations, specifically, where are they declared and when are they found in STANDARD as opposed to 'somewhere else': First, as Doug Bryan pointed out, there is a problem with the semantics of the term 'predefined'. One needs to distinguish between predefined types and predefined operations. When referring to types, 'predefined' implies a declaration (emphasis on 'declaration') which has been made ahead of time, i.e., declared previously. When refering to operations, 'predefined' referes to a set of operations that will be (emphasis on 'will be') declared (implicitly) at some point. Predefined types are types which have actually been declared; 'predefined operations' refers to an a priori definition of a set, not a pre-declaration of the actual operations. Now, the rule for where the declarations for the set of predefined operations for a given type are found is straight forward: "The operations implicitly declared for a given type declaration occur after the type declaration..." (ARM 3.3.3(2)) (The term 'implicitly declared' is used instead of 'predefined' because there may be operations other than the predefined set which are also implicitly declared (specifically, user defined operations derived from a parent type)). Thus, the location of the declaration of a predefined operator is always known; it is found immediately after the type declaration for which the operator applies. If this type is found in 'Standard' (e.g., 'Integer', 'Boolean', 'Character', 'String'), then the declarations for the predefined operations are found in standard. If the type is found in the predefined package 'Calendar', (e.g., 'Time'), then the declarations for the predefined operations are found in 'Calendar'. If the type is found in the user defined package 'Foo', then that is where the declarations for the predefined operations are found. John Prentice, Hughes -------