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.7 required=5.0 tests=BAYES_00,INVALID_DATE, REPLYTO_WITHOUT_TO_CC autolearn=no autolearn_force=no version=3.4.4 Path: utzoo!utgpu!watmath!clyde!att!osu-cis!tut.cis.ohio-state.edu!unmvax!gatech!ulysses!hector!dsr From: dsr@hector.UUCP (David S. Rosenblum) Newsgroups: comp.lang.ada Subject: Re: user-defined assignment Message-ID: <10984@ulysses.homer.nj.att.com> Date: 9 Dec 88 20:35:36 GMT References: <7943@aw.sei.cmu.edu> Sender: netnews@ulysses.homer.nj.att.com Reply-To: dsr@hector.UUCP (David S. Rosenblum) Organization: AT&T Bell Laboratories, Murray Hill, NJ List-Id: In article <7943@aw.sei.cmu.edu> firth@sei.cmu.edu (Robert Firth) writes: | |I don't want to become too embroiled in the current |debate about user-defined assignment, but one serious |misconception should, I feel, be corrected. | |The ability to use ":=" as a subprogram designator |would in no way change the current strength or weakness |of Ada's typing model. The process of overload resolution |would check actuals against formals, just as it does for, |say, "+" at present. Naturally, a malicious implementor |could encode the body of ":=" so as to violate the typing |rules, just as an implementor of "+" can today. What "typing rules" of "+" can an implementor violate within his definition of "+"? I didn't know that the semantics of predefined "+" had any inherent "typing rules" to violate. As you say, the typing rules apply to parameters of "+" and the return value of "+", as they do to all other subprogram parameters and return values (e.g., in a user-defined ":="). On the other hand, as I understand ":=" it is restricted to copying a value of some type to a variable of the SAME type, including a check that ALL subcomponents of the target variable satisfy their respective constraints. Aside from the rules regarding implicit conversions of numeric values, I'm aware of no rule (or AI) that sanctions a weakening of the behavior of ":=" as I've (hastily) described it. For example, I can "add", say, tasks to strings with my own definition of "+". This may violate some cherished notions about addition, but I don't see that it "violates" any typing rules. But with overloaded ":=", I could assign tasks to strings; to me this violates typing rules, as they currently apply to assignment. ------------------------------------------------------------------- David Rosenblum UUCP: {ucbvax, decvax}!ulysses!dsr AT&T Bell Laboratories ARPA: dsr@ulysses.att.com 600 Mountain Ave. dsr%ulysses@att.arpa Murray Hill, NJ 07974-2070 (201) 582-2906 -------------------------------------------------------------------