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,86fd56abf3579c34 X-Google-Attributes: gid103376,public X-Google-Thread: 10db24,77f71d0bde4c5bb4 X-Google-Attributes: gid10db24,public From: dewar@cs.nyu.edu (Robert Dewar) Subject: Re: What good is halting prob? Date: 1995/04/19 Message-ID: #1/1 X-Deja-AN: 101283273 references: <1995Apr19.204744.21914@wdl.loral.com> <3n429h$pvu@acmex.gatech.edu> organization: Courant Institute of Mathematical Sciences newsgroups: comp.lang.ada,comp.edu Date: 1995-04-19T00:00:00+00:00 List-Id: It is easy to construct examples where the effect depends on the parameter passing mechanism: procedure X (a, b : in out string) is begin a(1) := 'x'; if b(1) = 'x' then raise program_error; end if; end x; G : string := "abc"; H : string := "def"; X (G, H); will raise program error if the strings are passed by reference but not if they are passed by copy. In Ada 83 this program execution is erroneous but effect is not very well defined and so in Ada 95, a simpler definition is made that this program is simply non-deterministic (i.e. it may do one of two well defined things, depending on the parameter passing method).