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=unavailable autolearn_force=no version=3.4.4 Path: eternal-september.org!reader01.eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail From: Paul Rubin Newsgroups: comp.lang.ada Subject: Re: Studying and Maintaining GNAT, Is There Any Interest in a New Group? Date: Wed, 29 Aug 2018 12:00:16 -0700 Organization: A noiseless patient Spider Message-ID: <87o9dl0zi7.fsf@nightsong.com> References: <309225242.556906218.575482.laguest-archeia.com@nntp.aioe.org> <2145221813.556924687.162377.laguest-archeia.com@nntp.aioe.org> <3892c779-2924-405c-b88d-19389fc5ba3e@googlegroups.com> <1ceec6d8-c5c4-49b1-9808-a3580bba3f8e@googlegroups.com> <87y3cpdgds.fsf@nightsong.com> <1230377626.557216184.473076.laguest-archeia.com@nntp.aioe.org> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Injection-Info: reader02.eternal-september.org; posting-host="3fc0a0d3524558fce223b4ad8b808dd8"; logging-data="17670"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+Ln7PeerXtJtSMF9UCFWKJ" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux) Cancel-Lock: sha1:YPv4t/UORykF/O+v6PWamjAOBQI= sha1:RbmsQEbdL+tJE6GWQku66mO70JM= Xref: reader02.eternal-september.org comp.lang.ada:54291 Date: 2018-08-29T12:00:16-07:00 List-Id: Luke A. Guest writes: > I have the C version of that book, bought before I got into Ada. I can see > how FP languages help in the construction of the front end of a compiler, > but forcing FP on the rest of the compiler where you’re not doing tree > walking, I’m not so sure. It wouldn't have occurred to me that any "forcing" would be involved, since the approach seems very natural. Past the front end there are usually a bunch of IR rewriting passes, and sometimes multiple IR's involving translation steps. Then at the end there is instruction selection, which in the book is done by tree pattern recognition (other approaches are also possible). This paper was pretty impressive, about cleaning up a compilation phase by replacing a traditional data structure with a functional one: https://www.cs.tufts.edu/~nr/pubs/zipcfg.pdf I think I've linked it before, so you may have seen it already.