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,a84eaf8fb2470909 X-Google-Attributes: gid103376,public X-Google-Language: ENGLISH,UTF8 Path: g2news2.google.com!news3.google.com!border1.nntp.dca.giganews.com!nntp.giganews.com!nx02.iad01.newshosting.com!newshosting.com!newsfeed.icl.net!newsfeed.fjserv.net!newsfeed.arcor.de!newsspool4.arcor-online.net!news.arcor.de.POSTED!not-for-mail From: "Dmitry A. Kazakov" Subject: Re: Ada generics Newsgroups: comp.lang.ada User-Agent: 40tude_Dialog/2.0.15.1 MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit Reply-To: mailbox@dmitry-kazakov.de Organization: cbb software GmbH References: <1166710494.869393.108730@a3g2000cwd.googlegroups.com> <17fe4xfogg7p5.1dcyc5nyc2gsl.dlg@40tude.net> <1166805696.291429.239590@48g2000cwx.googlegroups.com> <186qujlcx6rwl.1h6eq4mbdaa5s$.dlg@40tude.net> <1167150212.165097.289010@73g2000cwn.googlegroups.com> <1qmdvus6du3xu.1n21tzgev46ia$.dlg@40tude.net> <1167246396.057028.325080@48g2000cwx.googlegroups.com> Date: Thu, 28 Dec 2006 11:59:16 +0100 Message-ID: <15jxp8z1iu5fk.1oeihvavjghgg$.dlg@40tude.net> NNTP-Posting-Date: 28 Dec 2006 11:59:09 CET NNTP-Posting-Host: 080ffc04.newsspool2.arcor-online.net X-Trace: DXC=agDQTUU\FUL[kmHKHnaEnMA9EHlD;3YcB4Fo<]lROoRAFl8W>\BH3YBWdG`EadhiFGDNcfSJ;bb[EIRnRBaCdDD X-Complaints-To: usenet-abuse@arcor.de Xref: g2news2.google.com comp.lang.ada:8030 Date: 2006-12-28T11:59:09+01:00 List-Id: On 27 Dec 2006 11:06:36 -0800, Hyman Rosen wrote: > Dmitry A. Kazakov wrote: >> The "encoding language" is outside the programming language, >> so it is not the language problem > > Remember that Ada wishes to be case-insensitive, That's no problem in a closed alphabet, like English/Latin. > so it cannot ignore > Unicode issues if it wishes to allow Unicode characters in identifiers. Which is a BAD idea, IMO. We cannot know anything about properties of letters in Klingon. As a practical example consider Russian where e can be used (and is) in place of ё see (http://en.wikipedia.org/wiki/%D0%81), but not reverse. Or, maybe we should make Ada compilers capable to detect program written by Germans to consider ü and ue same? Should we handle diacritical vowel points of Hebrew as well? What about parsing the source right to left, or top to bottom? > Not to mention "normalization form KC". They reap what they sowed. Should Ada or C++ go into that mess? >> No, it would not. Consider 1.0 / 3.0 > > I believe an arbitrary-precision rational number package can portably > represent 1/3! An encoded name for an instantiation involving floating > point numbers could simply represent the number portably as a rational > in lowest terms. Huh, Ada.Numerics has pi and e... >> But it is not same as having legal finite programs which cannot be compiled >> no matter how much resources you have. > > So what? Since templates form a compile-time Turing-complete language, > C++ compilers can be sent into calculations which may or may not > terminate, just like programs themselves have always been able to do. > No one has palpitations over the fact that for some programs you can't > tell whether they're wrong or just haven't finished yet. Why should > anyone worry that there are some programs which you can't tell whether > they're wrong or the compiler hasn't finished yet? In order for a > compilation to not terminate, it must constantly generate new > instantiations, so anyway real compilers will just notice and give up. Because when the program does not compile the programmer would not know if that was his bug or one of the compiler. This is a quite common problem in C++ (and sadly in GNAT Ada), which wastes enormous human resources. And this is the case where you actually wished to save them by providing this "nice" feature. With a sufficient amount of memory, the programmer would not be able to even decide, empirically, because theoretically it were impossible anyway, if the compiler hangs or will crash later. I.e. you might sit 5-10 minutes in hope that it manage to chew over that fancy templates, before you would kill it in frustration. More memory you'll have worse it will be. BTW, it could be a yet another source of earning money. Consider numerous chains of [expensive] tools for template "optimization." That is source code conversions which would make compilation crashing faster! (:-)) -- Regards, Dmitry A. Kazakov http://www.dmitry-kazakov.de