From: "Dan'l Miller" <optikos@verizon.net>
Subject: Re: Studying and Maintaining GNAT, Is There Any Interest in a New Group?
Date: Sun, 26 Aug 2018 12:54:09 -0700 (PDT)
Date: 2018-08-26T12:54:09-07:00 [thread overview]
Message-ID: <3892c779-2924-405c-b88d-19389fc5ba3e@googlegroups.com> (raw)
In-Reply-To: <2145221813.556924687.162377.laguest-archeia.com@nntp.aioe.org>
On Saturday, August 25, 2018 at 4:48:07 PM UTC-5, Luke A. Guest wrote:
> <patrick@spellingbeewinnars.org> wrote:
>
> > However I am discouraged with what you are saying about the bugs being on
> > the compiler side and not so much in the RTS.
>
> It’s more the bugs are in the Ada front end, not the GCC backend, which is
> the codegen.
Although it might be quibbling over the definition of “front-end” and “back-end”, it is my belief that the vast majority of the bugs outside of the runtime is either:
1) front-end proper:
lack of fidelity (to the _LRM_ or to nuanced explanations in the _AARM_) in the Ada-language semantic-adornment of the AST
and
2) lack of fidelity in the GIGI tree-transducer middle layer (which might be truly one-of-a-kind unique to GNAT) effectively •outside• the Ada-language-source-code front-end proper and the GENERIC/GIMPLE/RTL back-end proper:
Between a) the Ada-language semantic-tree in the written-in-Ada front-end proper and b) the GCC GENERIC/GIMPLE/RTL back-end that is shared among all GCC languages, there exists the GIGI () tree-transducer that observes snippets of Ada-front-end's semantically-adorned AST to then instantiate the analogous C/C++-language semantics in that branch of the GENERIC/GIMPLE's back-end semantic tree.
There are 2 areas where GNAT can easily make a mistake:
1) misinterpret (or malenforce) the normative _LRM_ and/or the nuanced explanations in the _AARM_ in the Ada semantically-adorned AST written in Ada language
or
2) mistranscribe the ‘equivalent‘ C/C++ semantics in GENERIC/GIMPLE via the GIGI tree transducer, written in C language. Just like beauty, ‘equivalent’ degenerates to: equivalent is in the eye of the beholder. (And the human being of high IQ has a bigger eye-of-the-beholder than GIGI's observation of mere subset of the Ada AST. GIGI's eye-of-the-beholder naturally has tunnel vision.)
On Saturday, August 25, 2018 at 5:05:52 PM UTC-5, Luke A. Guest wrote:
> A new compiler needs a radical new design.
Luke, GIGI is the general vicinity for fulfilling your prophetic prediction of the future: A radical new Ada-compiler design would eliminate the tree-transducer's transcription of snippets of Ada's semantically-adorned AST (in Ada-language source code) into GENERIC/GIMPLE C/C++ semantic tree (in C-language source code). In short, a radical new Ada-compiler design would eliminate GIGI. Luke & Shark8 take especial note: eliminate the need for GIGI entirely, then one has a drastically entirely-different-than-GNAT design for a next-gen Ada compiler. Luke, despite your ridicule of studying Ada's antiquity, •that• elimination of GIGI is precisely why studying William Wulf's DIANA from decades ago is intellectually stimulating & rewarding as getting the creative juices flowing in the mind when contemplating what a next-gen Ada compiler might have at its heart instead of the bug-prone complication that GNAT has at its heart: AdaAST-GIGI-C/C++AST, 2 separate trees and a transducer-of-clever-snippets between them. (I suspect sometimes the scope of that cleverness there in GIGI is insufficiently narrow/not-omniscient-enough, hence mistranscription bug.)
Although Figure 1.1 is the front-end/back-end diagram that most people hold in their head (and dear to their heart) from a compiler-construction textbook, I find Figure 1.2 to much more lucidly reveal GNAT's inner workings in a nutshell for repeated reference in the mind's eye:
https://www2.adacore.com/gap-static/GNAT_Book/html/node5.htm#SECTION03120000000000000000
It is not entirely clear (to me) what GIGI stands for, btw. One of the “G”s could stand for GNAT; the other could stand for GENERIC or GIMPLE. One of the “I”s could stand for instantiation (as in instantiating a snippet/extract of the Ada AST into GENERIC/GIMPLE's C-language tree). One guess: GNAT-Internal GENERIC/GIMPLE Instatiator. Perhaps only the original designers of GIGI know for sure: Robert Dewar, RWS, perhaps Edmond Schonberg.
next prev parent reply other threads:[~2018-08-26 19:54 UTC|newest]
Thread overview: 55+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-08-25 12:27 Studying and Maintaining GNAT, Is There Any Interest in a New Group? patrick
2018-08-25 13:56 ` Dan'l Miller
2018-08-25 16:00 ` patrick
2018-08-25 16:16 ` Luke A. Guest
2018-08-25 17:42 ` patrick
2018-08-25 19:25 ` Simon Wright
2018-08-25 20:24 ` patrick
2018-08-25 21:48 ` Luke A. Guest
2018-08-25 21:53 ` patrick
2018-08-25 22:05 ` Luke A. Guest
2018-08-26 19:54 ` Dan'l Miller [this message]
2018-08-26 20:14 ` Dan'l Miller
2018-08-26 22:52 ` Lucretia
2018-08-27 2:38 ` Dan'l Miller
2018-08-27 14:46 ` Lucretia
2018-08-27 15:42 ` Dan'l Miller
2018-08-27 21:27 ` Randy Brukardt
2018-08-28 7:26 ` Dmitry A. Kazakov
2018-08-29 0:16 ` Randy Brukardt
2018-08-29 8:20 ` Dmitry A. Kazakov
2018-08-29 21:43 ` Randy Brukardt
2018-08-30 7:55 ` Dmitry A. Kazakov
2018-08-30 23:25 ` Randy Brukardt
2018-08-31 8:48 ` Dmitry A. Kazakov
2018-08-31 22:42 ` Randy Brukardt
2018-09-02 8:02 ` Dmitry A. Kazakov
2018-09-04 22:18 ` Randy Brukardt
2018-08-29 3:02 ` Paul Rubin
2018-08-29 6:18 ` Luke A. Guest
2018-08-29 19:00 ` Paul Rubin
2018-08-30 5:54 ` Luke A. Guest
2018-08-30 6:29 ` Paul Rubin
2018-08-27 21:18 ` Randy Brukardt
2018-08-27 9:37 ` Simon Wright
2018-08-27 16:54 ` Bill Findlay
2018-08-27 17:42 ` Shark8
2018-08-31 21:23 ` Robert A Duff
2018-08-31 22:51 ` Randy Brukardt
2018-09-01 19:42 ` Robert A Duff
2018-09-02 8:04 ` Dmitry A. Kazakov
2018-09-02 10:11 ` AdaMagica
2018-09-02 12:10 ` Jeffrey R. Carter
2018-09-02 14:30 ` AdaMagica
2018-09-04 22:05 ` Randy Brukardt
2018-09-01 7:41 ` Simon Wright
2018-09-01 17:27 ` Bill Findlay
2018-08-27 17:35 ` Shark8
2018-08-25 21:17 ` Luke A. Guest
2018-08-25 23:16 ` Paul Rubin
2018-08-26 8:03 ` Rene
2018-08-26 10:09 ` Simon Wright
2018-08-25 16:43 ` Jeffrey R. Carter
2018-08-25 17:38 ` patrick
2018-08-25 17:39 ` Luke A. Guest
2018-08-25 17:45 ` patrick
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox