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!feeder.eternal-september.org!aioe.org!.POSTED!not-for-mail From: "Dmitry A. Kazakov" Newsgroups: comp.lang.ada Subject: Re: Languages don't matter. A mathematical refutation Date: Tue, 7 Apr 2015 07:57:07 +0200 Organization: cbb software GmbH Message-ID: References: <87h9t95cly.fsf@jester.gateway.sonic.net> <04f0759d-0377-4408-a141-6ad178f055ed@googlegroups.com> <871tk1z62n.fsf@theworld.com> <87oan56rpn.fsf@jester.gateway.sonic.net> <87k2xt6l1b.fsf@jester.gateway.sonic.net> <87vbh99d1z.fsf@jester.gateway.sonic.net> Reply-To: mailbox@dmitry-kazakov.de NNTP-Posting-Host: w2sqUGEBZqsVBYNL7Ky3Kg.user.speranza.aioe.org Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Complaints-To: abuse@aioe.org User-Agent: 40tude_Dialog/2.0.15.1 X-Notice: Filtered by postfilter v. 0.8.2 Xref: news.eternal-september.org comp.lang.ada:25449 Date: 2015-04-07T07:57:07+02:00 List-Id: On Mon, 06 Apr 2015 14:12:08 -0700, Paul Rubin wrote: > "Dmitry A. Kazakov" writes: >>> GC is not like matrix operations. It's not a library that you call. It >>> pervades the operation of your entire program. >> So is the floating-point unit on x86. You must save registers and restore >> them when doing some unrelated operations. Does it make floating-point >> multiplication high-level? > > That's different, the FPU save/compute/restore is completely localized > as long as you have a small amount of private memory to save the > registers. You can call a floating point routine that saves the > registers, computes stuff, restores, and returns, and it doesn't have to > care what the rest of the program does or vice versa. Except that you must call this subprogram each and every place. > GC is different, it affects every part of the program that uses memory, > which is to say every part of the program. Having precise GC requires > enforcing invariants across all of memory, and the absence of language > features (except maybe some special purpose unsafe fragment) that can > break those invariants. All the code generated by the compiler has to > take the GC's requirements into account. That's what I mean by > pervasive. Saving FPU registers, any registers, as a matter of fact, is as much pervasive. How is it high level? -- Regards, Dmitry A. Kazakov http://www.dmitry-kazakov.de