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,29fe9a340e0d180d X-Google-Attributes: gid103376,public From: Geert Bosch Subject: Re: Depending on passing mechanism Date: 1997/10/15 Message-ID: <622b4t$nhe$1@gonzo.sun3.iaf.nl>#1/1 X-Deja-AN: 280751685 References: Organization: La Calandre Infortunee Newsgroups: comp.lang.ada Date: 1997-10-15T00:00:00+00:00 List-Id: Robert Dewar wrote: ``Yes, it may change program behavior, but program behavior is occasionally non-deterministic in Ada, and this is one of those cases.'' Henry Baker replied: ``This is another one of those cases that give standards bodies such a bad name -- the behavior is well-defined as 'non-deterministic', but non-functional.'' Although it would be nice te remove non-determinism from programming languages I do not believe this is practical even for programs with a single thread of control. For example, large data-structures have to be passed by reference for efficiency reasons. A fundamental problem in this case is aliasing of subprogram parameters. When a subprogram is called with two parameters that are passed by reference and these actually refer to the same object the program execution may be non-deterministic. In general this cannot be detected at compile time. Solving this aliasing problem in the language (for example using reference counting) will result in significant extra complexity and distributed overhead. This added complexity and overhead would be two strong reasons not to use the "improved" language for embedded systems like those in the Boeing 777 you mentioned. Do you have a proposal to remove the non-determinism without affecting performance and flexibility too much? I think many readers in this group might be interested in such ideas, at least I am. Regards, Geert