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 Path: eternal-september.org!reader01.eternal-september.org!reader02.eternal-september.org!news.eternal-september.org!mx02.eternal-september.org!.POSTED!not-for-mail From: "G.B." Newsgroups: comp.lang.ada Subject: Re: GNAT GPL is not shareware Date: Thu, 08 Jan 2015 15:17:15 +0100 Organization: A noiseless patient Spider Message-ID: References: <87bnmetex4.fsf@ludovic-brenta.org> <79f3eff7-2b45-40ae-af94-fa9a17426d82@googlegroups.com> <87bnmd8mg2.fsf@ixod.org> <19cf9bc2-f8b9-4735-b427-7b070dda59da@googlegroups.com> <1otenmcbgnvlt$.dn9361nl2jm8$.dlg@40tude.net> <8ryfky4awox2$.q2gfw4pvsgau.dlg@40tude.net> Reply-To: nonlegitur@futureapps.de Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Injection-Date: Thu, 8 Jan 2015 14:16:46 +0000 (UTC) Injection-Info: mx02.eternal-september.org; posting-host="b96887e80893c84a90c3007226ca0d1c"; logging-data="29187"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+/c56GbDauNPntNimjDgoV2sxAHWHf+IM=" User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:24.0) Gecko/20100101 Thunderbird/24.6.0 In-Reply-To: <8ryfky4awox2$.q2gfw4pvsgau.dlg@40tude.net> Cancel-Lock: sha1:oNIKaOfwVqyZL8gd0nbVm9aF2dw= Xref: news.eternal-september.org comp.lang.ada:24480 Date: 2015-01-08T15:17:15+01:00 List-Id: On 08.01.15 13:30, Dmitry A. Kazakov wrote: > On Thu, 08 Jan 2015 11:55:09 +0100, G.B. wrote: > >> On 08.01.15 09:14, Dmitry A. Kazakov wrote: >>> On Wed, 7 Jan 2015 16:47:25 -0600, Randy Brukardt wrote: >>> >>>> I have yet to use *anything* that used a DB that could not have been done >>>> better without the DB. >>> >>> True. >> >> False, in general: >> >> As soon as you start talking truly relational, you'll either >> use Prolog-ish programs, which are DB programs. > > Prolog has nothing to do with DB, Really? Prolog always has been about databases as long as it has existed, TTBOMK. It is even using that word meaningfully at its very basis. Or are you referring to a different meaning of "DB"? Prolog: % the database (base universe): apple(green, 59). apple(red_and_green, 49). orange(sweet, 27). orange(sour, 20). % cross product apples_x_oranges(A1, A2, O1, O2) :- apple(A1, A2), orange(O1, O2). % selection from cross product fruit_salad(A, PA, O, PO) :- % pricey apples_x_oranges(A, PA, O, PO), PA > 50, PO > 20. ?- fruit_salad(X, Y, Z, W). X = green, Y = 59, Z = sour, W = 27 ; false. The same setup could be used for a database of Ada identifiers and possible relations among them, since each of the identifiers, as the word "identifier" says, denotes identically one element of the universe of named things that an Ada source establishes. > Relational algebra (RA) can be implemented in Ada. No problem, You *are* naming the problem: It is: "reinventing wheels", as I said. The point is that relational problems can be solved easily whenever a language defines the means of directly expressing relational items. Such a language does *not* require that modes of expression be implemented first. OTOH, if that's difficult to do in Ada, then a reusable implementation seems preferable to compilers' idiosyncrasies except for the reasons listed. >> Using the GNAT repertoire in the compiler sources, >> this question is typical of thinking "relational": >> >> "List all Ada identifiers that are public in packages >> that are children of P0, provided that they are not of >> a pointer type." > > This is not relational. Aha... > Relational algebra does not deploy universally > qualified expression. Every selection is from the next universe, all of it. What definition of the RA equivalent of FROM are you denying? I don't understand. > A simple counterexample is spatial neighbour search (kD-tree). A counterexample is usually a technique for invalidating a general statement, but there is no general statement about Relational being Whatever in *every* situation. Relations are just being used in compilers, and in ASIS tools.