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.9 required=5.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,a00006d3c4735d70 X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 2004-02-24 00:22:31 PST Path: archiver1.google.com!news1.google.com!newsfeed.stanford.edu!news.tele.dk!news.tele.dk!small.news.tele.dk!news2.telebyte.nl!news.jgaa.com!news.hacking.dk!pnx.dk!munin.nbi.dk!not-for-mail From: Jacob Sparre Andersen Newsgroups: comp.lang.ada Subject: Re: In-Out Parameters for functions Date: 24 Feb 2004 09:22:28 +0100 Organization: Munin Sender: sparre@sparre.crs4.it Message-ID: References: <1075390647.405841@master.nyc.kbcfp.com> <1075405582.982776@master.nyc.kbcfp.com> <1075482385.142744@master.nyc.kbcfp.com> <1075732402.294581@master.nyc.kbcfp.com> <1075741279.952497@master.nyc.kbcfp.com> <16nu1099ekujjbpe9dqvs3noi9sdcfja6e@4ax.com> <1075817212.745748@master.nyc.kbcfp.com> <1075824683.769215@master.nyc.kbcfp.com> <1075851506.238480@master.nyc.kbcfp.com> <4020C947.81A6D703@0.0> <1075907239.138068@master.nyc.kbcfp.com> <402232E9.3EE15B4B@0.0> <1075987360.225622@master.nyc.kbcfp.com> <40236C0B.E988E003@0.0> NNTP-Posting-Host: sparre.crs4.it Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: munin.grove.home 1077610948 18762 156.148.70.170 (24 Feb 2004 08:22:28 GMT) X-Complaints-To: sparre@munin.nbi.dk NNTP-Posting-Date: Tue, 24 Feb 2004 08:22:28 +0000 (UTC) User-Agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.2 Xref: archiver1.google.com comp.lang.ada:5759 Date: 2004-02-24T09:22:28+01:00 List-Id: Hyman Rosen wrote: > Where does Ada permit the concurrent execution of multiple function > calls of an expression? Nowhere (I can remember) - except that "arbitrary order" in my eyes includes "at the same time". > Yes, that's what my rules would accomplish. There are many people > who are astonished to realize that in > a := f(a(0)) + g(b(1)); > the only constraints are that a is called before f and b before g, > but nothing else is required, so that six orders are possible: > abfg abgf afbg bafg bagf bgaf Since Ada specifically is targeted to concurrent processing I find that astonishment a bit strange. But maybe those people you're thinking of aren't used to concurrent processing? > > XY := doublet'(x => a+b, y => c+d); > > If they are truly unconnected objects then perhaps they > > should be processed in separate tasks. > > I will leave it to the people who describe Ada code as readeable to > tell me whether turning a sequence of assignments into an aggregate > or a pair of tasks is a good idea. If the objects are _logically_ unconnected, the above notation implies a connection between the objects that only exists for the sake of this specific implementation. That may confuse later maintainers of the code. Jacob -- "Banning open source would have immediate, broad, and strongly negative impacts on the ability of many sensitive and security-focused DOD groups to protect themselves against cyberattacks" -- Mitre Corp.