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=2.6 required=5.0 tests=BAYES_40,INVALID_DATE, MSGID_SHORT,REPLYTO_WITHOUT_TO_CC autolearn=no autolearn_force=no version=3.4.4 Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!uunet!husc6!cmcl2!rutgers!clyde!cbosgd!mandrill!asheem From: asheem@mandrill.CWRU.Edu (Asheem Chandna) Newsgroups: comp.lang.ada Subject: Passing Procedures Over a Network Message-ID: <2268@mandrill.CWRU.Edu> Date: Mon, 5-Oct-87 21:49:47 EDT Article-I.D.: mandrill.2268 Posted: Mon Oct 5 21:49:47 1987 Date-Received: Fri, 9-Oct-87 05:13:17 EDT Reply-To: asheem@mandrill.UUCP (Asheem Chandna) Distribution: world Organization: Center for Automation & Intelligent Systems Research. List-Id: Hi, After the recent discussions on "passing procedures as parameters," we were thinking about some of the issues related to "passing procedures as parameters over multi-processor target systems," and wondered if someone on the net could perhaps discuss some of the issues, and enlighten us. Of course (as discussed earlier on the net), Ada doesn't allow for the passing of procedures as parameters (or at least not yet)! Consider the case where an Ada program is written such that it contains several tasks, each directed to a particular processor (by means of say a pragma statement), and that these tasks use the rendezvous mechanism for their communication. We want to pass procedures as parameters between the tasks. We are assuming, that only procedure names, not entire procedure calls with parameters specified, would be the objects passed. One would probably prefer to avoid passing a copy of an entire procedure over the local area network for several reasons including the fact that processors may also have different instruction set architectures. ALGOL-60 has the "call by name" parameter passing mechanism where whole procedure calls could be passed -- one probably wouldn't want to apply anything like that in this situation. Now, any task making a procedure call will want a copy of the procedure in its local environment. If one such task was passed another procedure, surely a copy of that procedure should be in its local environment. Now, if a rendezvous from a task residing outside the local environment passes a procedure through an accept statement into the local environment, could one know the identity of the set of possible procedures at compile time (from all the procedures available of that particular type), and arrange to have copies resident in the local environment? Is this a feasible solution or are we just thinking crazy? Or, what are some other methods that could be applied towards tackling this and related issues? Thanks in advance for your comments. Asheem Chandna and William Schultz. VOICE: 216-368-4087 SNAIL: Center for Automation & Intelligent Systems Research, Case Western Reserve University, Cleveland, Ohio 44106. UUCP: asheem@mandrill.uucp OR {cbosgd,decvax,sun}!mandrill!asheem ARPA: asheem@mandrill.cwru.edu OR asheem%mandrill.cwru.edu@berkeley.edu CSNET: asheem@mandrill.cwru.edu OR asheem@case.csnet