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,f188b1cd9c1f24dc X-Google-Attributes: gid103376,public From: dewar@merv.cs.nyu.edu (Robert Dewar) Subject: Re: Parameter evaluation order Date: 1998/04/17 Message-ID: #1/1 X-Deja-AN: 345013949 References: <6h68ed$k5d$2@plug.news.pipex.net> X-Complaints-To: usenet@news.nyu.edu X-Trace: news.nyu.edu 892817222 23589 (None) 128.122.140.58 Organization: New York University Newsgroups: comp.lang.ada Date: 1998-04-17T00:00:00+00:00 List-Id: Nick said <> That is completely false. The conventional sense of non-deterministic in the programming language field is that the effect of a given construct is a non-deterministic selection from a set of possible outcomes. Sometimes non-determinism has been used in conjunction with backtracking semantics, where the model is that the "right" selection is made. Lambert Meertens suggested some years ago the term "angelic non-determinism" for this case. Note that arbitrary selection has NOTHING AT ALL to do with random selection (I suspect that may be part of Nick's confusion, given that he mentions lottery machines, where randomness is what is wanted). So saying that, for example the select statement in Ada 83, makes an arbitrary selection of which branch to choose among several open branches does not require or even vaguely imply some kind of "fair" random selection. (I have been amazed at how many people have been confused on this particular point, including some supposed experts in Ada :-) The terms that Nick suggests, e.g. sequential non-determinism, are in my opinion non-standard and confusing. As you read the above, you will see that I use non-deterministic selection and arbitrary selection from a set as synonyms. This is intentional, and this is the conventional usage. (related reading: the definition of SETL and its arb operator)