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: a07f3367d7,8ea33c39efc56ac3 X-Google-Attributes: gida07f3367d7,public,usenet X-Google-NewGroupId: yes X-Google-Language: ENGLISH,UTF8 Path: g2news1.google.com!news3.google.com!feeder1-2.proxad.net!proxad.net!feeder2-2.proxad.net!newsfeed.arcor.de!newsspool2.arcor-online.net!news.arcor.de.POSTED!not-for-mail Date: Thu, 13 Oct 2011 17:18:31 +0200 From: Georg Bauhaus User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:7.0.1) Gecko/20110929 Thunderbird/7.0.1 MIME-Version: 1.0 Newsgroups: comp.lang.ada Subject: Re: sharp =?UTF-8?B?w58gYW5kIHNzIGluIEFkYSBrZXl3b3JkcyBsaWtlIEFD?= =?UTF-8?B?IENFU1M=?= References: <665628584340145751.161513rm-host.bauhaus-maps.arcor.de@news.arcor.de> <1tgwf2ey7q1qz.hpcw6dmx2aj2$.dlg@40tude.net> <4e96d5f0$0$6541$9b4e6d93@newsspool4.arcor-online.net> <179ii830sh36v.dto72qcmif76.dlg@40tude.net> In-Reply-To: <179ii830sh36v.dto72qcmif76.dlg@40tude.net> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Message-ID: <4e970147$0$6576$9b4e6d93@newsspool3.arcor-online.net> Organization: Arcor NNTP-Posting-Date: 13 Oct 2011 17:18:31 CEST NNTP-Posting-Host: 4bc7b364.newsspool3.arcor-online.net X-Trace: DXC=7Q`L88@P_oo;iVb[J9ZZP`McF=Q^Z^V3h4Fo<]lROoRa8kFjLh>_cHTX3jm5lgI1CS?iUa X-Complaints-To: usenet-abuse@arcor.de Xref: g2news1.google.com comp.lang.ada:21415 Date: 2011-10-13T17:18:31+02:00 List-Id: On 13.10.11 15:25, Dmitry A. Kazakov wrote: > It refers to "alphabets" and "spellings". Why should > anybody care about them? Many German programmers *do* care about them. Most issues arise in proportion to the ease with which a language allows mixing of alphabets: If you allow all kinds of identifiers, people will try them. >> Some_Year : constant := MCD92; >> >> Yeah, that's fun. And there are no Chinese digits >> in it, so Europeans and Americans will likely recognize the >> intent. > > Motor control device, the model of the year 1992? More clearly, Some_Year : constant Natural := MCD92; >> But otherwise? What's the point when mixing two >> numeric alphabets? > > 9 and 2 are not letters. M, C, and D, in this hypothetical examples, are digits, not letters; the example is not that far-fetched, since roman numerals are known well. The point is not that identifiers can have digits in them. The point is that is has seemed reasonable to let digits of numeric be drawn from the "alphabet" '0' .. '9', and no others. IOW, there is a single "alphabet" of digits, other digits will not be acceptable when forming numeric literals. I think this is reasonable. The one-alphabet rule for simple names is not much different. >> "the Swiss model (which is without ß) is working." > > I bet 90% of Ada users could not care less. It will be interesting to learn what your bet is thus why - 90% will not care - 10% do care I agree that many do not care about anything other than ASCII. With the usual consequences that carelessness tends to foster regarding the I/O of non-computer text. >> 1) I /= І, since they are from "alphabets" that real people >> think are different. > > Show me one, who thinks they are different without hexadecimal editor. My terminal, as I said, shows the difference between I and І very clearly. Any compiler shows they are different identifiers. As I said, obfuscation is programmer's business. Starting to feel like a broken record, the same goes for ASCII l, 1, i, I. Consequently, GNAT sources show a rule: I is not the name of an indexing variable... I'm just considering something that is a generalization, simple, practical, worldly, neither purporting to solve issues of discipline, nor pretending to erase all obfuscation. > If some nonsensical language rules put projects at risk, then, maybe, there > is something wrong with these rules? I have shown how to apply the rules and how they don't do any harm. They reduce complexity. They hardly put anything at risk, I think, since they only reduce the number of identifiers (do not mix "alphabets"). > Real people also think that sch=sh, kn=n (at the beginning of the word), > oo=u, ee=i and ad infinitum. This is demonstrably false, since, for example, those who write(!) using Latin will never in fact replace "kn" with "n". >> "Mass" has four Latin characters, "Maß" has three, > > So why are they equivalent? Because people say, in large numbers, that they are equivalent. >>> If "Latin" does not mean Latin, then you need yet another nonsensical rule >>> to redefine it. >> >> "Latin" is here meant to refer to the general thing. >> "Latin characters used in Europe" is pretty clear, > > Does this include Greece, Serbia, Bulgaria? This should be clear from the original list; also "Latin characters used in Europe" is pretty clear to anyone not trying to twist things. >> Declaring simple unions of sections from Unicode is easy, >> and consistent. > > Again, what is the rationale? To reduce complexity of identifiers, and to make reading easier. >> but programmers see characters >> if you ask them. > > Nope, it is a physiological fact that people see glyphs. A) "It's the 3rd character from the right". B) "It's the 3rd glyph from the right". How likely is it that any real programmer will say sentence B, and not A? >>> You cannot >>> safely recognize alphabet looking at a single word. >> >> I am looking at programs, not at single words. > > Does this mean that a program may not use several alphabets? Of course not, as stated, this applies to simple names. A simple name alone is not a program, and has little meaning. > I don't care about > Swiss model, I do about separate compilation. I don't want the legality of > components (tested, verified, validated) be randomly dependent on other > parts by mere placing them into one project. We could never reuse anything but Ada 83 units: The legality of components would have to be re-established under the rules of more recent Adas. Of course, everything about "alphabets" applies to software that is written, or changed systematically. Somewhat like turning a C program into a MISRA-C program, or an Ada program into one to which a profile applies. This changes the language, but you do it for a reason.