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,fd3a5ba6349a6060 X-Google-Attributes: gid103376,public From: William Clodius Subject: Re: should I be interested in ada? Date: 1999/02/23 Message-ID: <36D33B65.446B@lanl.gov>#1/1 X-Deja-AN: 447686949 Content-Transfer-Encoding: 7bit References: <7a72e6$g55$1@probity.mcc.ac.uk> <36C93BB4.1429@ecs.soton.ac.uk> <7afc1o$3mi$2@plug.news.pipex.net> <7afttr$7v3$1@nnrp1.dejanews.com> <7aganu$qsc$1@plug.news.pipex.net> <36CC3AEA.59E2@lanl.gov> <7ai502$6an$1@nnrp1.dejanews.com> <36CD8DBA.237C@lanl.gov> <7akvao$j5t$2@plug.news.pipex.net> <36D1D862.41C6@lanl.gov> <7av53r$goc$2@plug.news.pipex.net> Content-Type: text/plain; charset=us-ascii Organization: Los Alamos National Lab Mime-Version: 1.0 Newsgroups: comp.lang.ada Date: 1999-02-23T00:00:00+00:00 List-Id: Ni > Its true that the Ada code doesn't capture the same semantics - essentially > that no component of Object will be assigned more than once (and they can be > assigned in any order) - but I'm not sure that this will make any difference > in practice (for a non-parallel target). The above "essentially" demphasizes my main point, that it also doesn't capture the semantics that the assignment may involve only part of the objects X and J. > > The Ada procedure is inlined, so the optimizer may have the opportunity to > eliminate null operations (e.g. assignment to self). I think Temp being too > long will often not be a problem (for a clever dataflow analysing > optimiser). Anyway, the problem can always be got around 'by force', by > passing one or two more parameters into the procedure. > Note the fact that the intended assignment may involve only part of J, means that your code might not only be inefficient, but also incorrect. In thinking about this further, one additional problem to me is the decision to make this an explicit procedure. I would normally do this only under circumstances that need not apply to this case, i.e., if I were going to use it at multiple points in the code or if it were doing a complicated task that is easilly summarized. Under those circumstances I would want a well documented routine. Reorder by itself could mean the equivalent of any of the following FORALL (I=1:N) X(J(I)) = X(I) FORALL (I=1:N) X(I) = X(J(I)) FORALL (I=1:N) X(21-J(I)) = X(J(I)) FORALL (I=1:N) X(J(I)) = X(21-J(I)) The isolation of the code in this way makes it more difficult to verify that it has the semantics required in the context in which it is currently used, and even if appropriate there, increases the chance that it will be reused in inappropriate contexts. -- William B. Clodius Phone: (505)-665-9370 Los Alamos Nat. Lab., NIS-2 FAX: (505)-667-3815 PO Box 1663, MS-C323 Group office: (505)-667-5776 Los Alamos, NM 87545 Email: wclodius@lanl.gov