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,fd0ee7c9be011576 X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 2001-03-07 21:56:04 PST Path: supernews.google.com!sn-xit-03!supernews.com!logbridge.uoregon.edu!newsfeed.direct.ca!look.ca!newsfeed1.earthlink.net!newsfeed2.earthlink.net!newsfeed.earthlink.net!newsmaster1.prod.itd.earthlink.net!newsread1.prod.itd.earthlink.net.POSTED!not-for-mail Message-ID: <3AA71E4E.51243AA6@acm.org> From: Jeffrey Carter X-Mailer: Mozilla 4.7 [en] (Win98; U) X-Accept-Language: en MIME-Version: 1.0 Newsgroups: comp.lang.ada Subject: Re: Ada Annex E (Just curious :-) References: <3AA29386.E60A686D@linuxchip.demon.co.uk> <980ekl$p4h$1@nh.pace.co.uk> <3AA43C58.105B970D@linuxchip.demon.co.uk> <3AA5DB24.9270F510@acm.org> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Date: Thu, 08 Mar 2001 05:53:19 GMT NNTP-Posting-Host: 63.178.182.95 X-Complaints-To: abuse@earthlink.net X-Trace: newsread1.prod.itd.earthlink.net 984030799 63.178.182.95 (Wed, 07 Mar 2001 21:53:19 PST) NNTP-Posting-Date: Wed, 07 Mar 2001 21:53:19 PST Organization: EarthLink Inc. -- http://www.EarthLink.net Xref: supernews.google.com comp.lang.ada:5536 Date: 2001-03-08T05:53:19+00:00 List-Id: Robert A Duff wrote: > > Jeffrey Carter writes: > > > One can argue that Annex E is completely superfluous. One could have a > > compiler that targeted a distributed system, and converted all intertask > > communications (rendezvous and protected operations) into network > > messages. A program for a distributed system could look exactly like a > > program for a multiprocessor, which would make porting from one to the > > other much simpler. > > One can argue that, but I don't think it's true. ;-) > I implemented such a beast for Ada 83. You could put tasks > on different nodes of a distributed system. You could control where > they ran, or let the system choose (some sort of primitive load > balancing). Rendezvous was implemented in terms of message passing > across the network. > > But we had to "cheat" a little bit. Above, you mention "rendezvous and > protected operations" as the intertask communications mechanisms. But > there's another one: shared variables. In Ada (83 and 95) it is > perfectly legitimate for two tasks to refer to the same variable (so > long as they synchronize properly, perhaps using rendezvous). But the > compiler can't tell which variables are shared. This pretty much > implies that all tasks must share the same address space. (You *could* > implement distributed shared memory in software, but it would be > intolerably slow. And you would have to pay that price even for > variables local to a single task (or node), because the compiler can't > tell which variables are shared). That's true, but I think disallowing shared variables (except protected objects) is reasonable for all systems :) -- Jeff Carter "You empty-headed animal-food-trough wiper." Monty Python & the Holy Grail