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-Thread: 103376,c406e0c4a6eb74ed X-Google-Attributes: gid103376,public X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news1.google.com!news2.google.com!proxad.net!newsfeed.stueberl.de!news-mue1.dfn.de!news-ber1.dfn.de!news.uni-hamburg.de!cs.tu-berlin.de!uni-duisburg.de!not-for-mail From: Georg Bauhaus Newsgroups: comp.lang.ada Subject: Re: ADA Popularity Discussion Request Date: Wed, 8 Sep 2004 10:40:47 +0000 (UTC) Organization: GMUGHDU Message-ID: References: <49dc98cf.0408110556.18ae7df@posting.google.com> <87eklg62x8.fsf@news.bourguet.org> NNTP-Posting-Host: l1-hrz.uni-duisburg.de X-Trace: a1-hrz.uni-duisburg.de 1094640047 13830 134.91.1.34 (8 Sep 2004 10:40:47 GMT) X-Complaints-To: usenet@news.uni-duisburg.de NNTP-Posting-Date: Wed, 8 Sep 2004 10:40:47 +0000 (UTC) User-Agent: tin/1.5.8-20010221 ("Blue Water") (UNIX) (HP-UX/B.11.00 (9000/800)) Xref: g2news1.google.com comp.lang.ada:3469 Date: 2004-09-08T10:40:47+00:00 List-Id: jayessay wrote: : Georg Bauhaus writes: :> Sure it is insufficient. But it adds value by removing the need to :> test what the compiler has already found out. How about typos? : : True. But since this is determined anyway as part of incremental : development it doesn't actually save anything in practice. Typos are : a good example. : : :> Here is a fake: :> :> (defun next (n) (1 + n)) :> (defun hext (n) (1 + (mod n 16))) : : Let's see this in practice: [lengthy testing snipped] Do you see what I mean? ;-) ;-) ;-) Wouldn't have happend with proper typing and static type checks, see below. : What you are saying is, range types (as in Ada) could have caught : this. True, but they would not have caught it quicker (or even as : quick) as this did. No, I'm saying that this error can occur in an executing piece of program if and only if the compiler allows me to mix operations of an integer type and operations a modular type without notice. Things like this don't happen if you get the types right at compiletime. Similarly, physical units can be checked at compile time using C++ templates. Is there a set of Lisp macros that guarantees unit safe computations before a program runs? : Also, they wouldn't have caught the error in hext : until you ran it anyway. Not true as explained above. -- Georg