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=-0.3 required=5.0 tests=BAYES_00, REPLYTO_WITHOUT_TO_CC autolearn=no autolearn_force=no version=3.4.4 X-Google-Thread: 103376,ea5071f634c2ea8b X-Google-NewGroupId: yes X-Google-Attributes: gida07f3367d7,domainid0,public,usenet X-Google-Language: ENGLISH,ASCII-7-bit Received: by 10.68.28.135 with SMTP id b7mr7730213pbh.8.1322131991362; Thu, 24 Nov 2011 02:53:11 -0800 (PST) Path: lh20ni12445pbb.0!nntp.google.com!news1.google.com!news3.google.com!proxad.net!feeder1-2.proxad.net!usenet-fr.net!gegeweb.org!aioe.org!.POSTED!not-for-mail From: "Dmitry A. Kazakov" Newsgroups: comp.lang.ada Subject: Re: Generic-Package Elaboration Question / Possible GNAT Bug. Date: Thu, 24 Nov 2011 11:52:50 +0100 Organization: cbb software GmbH Message-ID: <1tpgi2c1lci4l.1lvazzk0xb93j.dlg@40tude.net> References: <7bf9bc32-850a-40c6-9ae2-5254fe220533@f29g2000yqa.googlegroups.com> <3snehoqgs8ia$.1nobjem6g6hx6$.dlg@40tude.net> <128rdz2581345$.c4td19l7qp9z$.dlg@40tude.net> <16ipwvpdavifr$.17bxf7if7f6kh$.dlg@40tude.net> <4ecb78b1$0$6643$9b4e6d93@newsspool2.arcor-online.net> <1iofgbqznsviu$.phvidtvxlyj4$.dlg@40tude.net> <4ecbb96e$0$6581$9b4e6d93@newsspool3.arcor-online.net> <4ecbdfdb$0$6629$9b4e6d93@newsspool2.arcor-online.net> <12hfiflyf7pr5$.l3pkpgoid8xt$.dlg@40tude.net> <4ecc35b8$0$7628$9b4e6d93@newsspool1.arcor-online.net> <4eccd5d2$0$6637$9b4e6d93@newsspool2.arcor-online.net> <14p8llstxrtci$.18hb93fkpteuv$.dlg@40tude.net> <4ecd0652$0$6582$9b4e6d93@newsspool3.arcor-online.net> <1wyybnjde2yxq.1w37r5182t0xt.dlg@40tude.net> <4ecd9faf$0$6627$9b4e6d93@newsspool2.arcor-online.net> Reply-To: mailbox@dmitry-kazakov.de NNTP-Posting-Host: FbOMkhMtVLVmu7IwBnt1tw.user.speranza.aioe.org Mime-Version: 1.0 X-Complaints-To: abuse@aioe.org User-Agent: 40tude_Dialog/2.0.15.1 X-Notice: Filtered by postfilter v. 0.8.2 Xref: news1.google.com comp.lang.ada:19110 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Date: 2011-11-24T11:52:50+01:00 List-Id: On Thu, 24 Nov 2011 02:36:47 +0100, Georg Bauhaus wrote: > On 23.11.11 20:48, Dmitry A. Kazakov wrote: > >>>>> Subprograms of unknown effect, >>>> >>>> You confuse interface and implementation. >>> >>> I call a subprogram because it has an effect. Is this unusual? >>> In order to choose the right subprogram, I need to know its >>> effect. >> >> That is exactly why contracts cannot be dynamic. Dynamic means statically >> undecidable. How are you going to know anything about the subprogram, if >> that is unknown until run-time? > > The typical example is a stack and its contract referring to > values available at runtime: from the contract, I learn that a stack > is initially empty and has a certain capacity. What is dynamic there? > Similarly, for Sqrt, Ada throws Argument_Error if the caller > fails to establish the implicit precondition of Sqrt: It is not a precondition, sqrt (-1.0) is *defined* as Argument_Error propagation. I.e. the postcondition includes Argument_Error. The precondition is "X in Float." > Is Sqrt'Result statically determinable? The semantics of sqrt can be formally defined as it happens in math. For an arithmetic based on bounded rational numbers with rounding errors (e.g. Float) it is also possible, but nobody would care. >>>>>>> There is no right or wrong in most programs. >>>>>> >>>>>> You cannot build safe software on false premises. >>>>> >>>>> Almost all programs have a number of things that can go wrong, >>>> >>>> Program code cannot GO wrong, it IS either wrong or not, here and now. >>> >>> No, we don't know whether an executable program is right or wrong, >>> for almost all programs. >> >> It is not about anybody's knowledge. A program is correct or not >> independently on whether you or anybody else knows that. > > "Is correct or not correct" sounds like a tautology and says just > as much. It says that correctness is unconditional to our ability to decide it. [It is conditional to the specifications only] A plane without fuel would crash regardless your ability to determine the level kerosene in its tanks. -- Regards, Dmitry A. Kazakov http://www.dmitry-kazakov.de