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.2 required=5.0 tests=BAYES_00,FROM_WORDY, INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,184737148aef02ac X-Google-Attributes: gid103376,public From: "Nick Roberts" Subject: Re: Building a compiler Date: 1999/02/05 Message-ID: <79enuc$lvc$1@plug.news.pipex.net>#1/1 X-Deja-AN: 440966561 References: <78sojm$crk$1@plug.news.pipex.net> <7982p7$nll$1@plug.news.pipex.net> <87aeyv4kbg.fsf@mihalis.ix.netcom.com> X-MimeOLE: Produced By Microsoft MimeOLE V4.72.3110.3 Organization: UUNET WorldCom server (post doesn't reflect views of UUNET WorldCom) Newsgroups: comp.lang.ada Date: 1999-02-05T00:00:00+00:00 List-Id: Chris Morgan wrote in message <87aeyv4kbg.fsf@mihalis.ix.netcom.com>... [...] |Presumably there are some "itches" in the design of GNAT/GCC that you |would like to scratch by building your own alternative. Interestingly, the "itches" you (very astutely) presume I wish to scratch are not in GNAT/GCC - which I am only passingly familiar with - but were in other, much older, Ada compilers I have used in my career. These compilers were very intimately bound up with the execution environments they targetted (essentially for real-time embedded applications, albeit huge ones). The story is a familiar one: I had lots of ideas as to how it could be improved, but, of course, no power at the time to introduce any of my ideas. So, the gist of it is, I am not only writing an entire new Ada compiler, but I'm also writing a new operating system (a very small one) as well! Together, these two will scratch most of my itches. The OS is a bit Mach-like, but fully object-oriented, and introduces some interesting new ideas. One of the key objectives of the OS is the use of memory-mapped, fully-linked, object files for maximum program initiation speed. The general theme of the compiler and the OS will be "speed to the max". |There have been some discussions |of language extensions on this group, including one for which Tucker |Taft eventually gave the most popular new syntax. Do you mean the "raise ... when" contruct? I'll be happy to include this (certainly a handy addition). But, then, I'll have to include a flag to reject it :-( ;-) |I have to |wonder though whether you wouldn't get more satisfaction out of |building extended versions of GNAT. [...anecdote...] |Still, if you want to try, it's a worthy challenge, let us know when |your parser runs faster than GNAT's ;) I imagine my compiler will always run a lot slower than GNAT/GCC. I am writing both the 'front end' (parser) and 'back end' in Prolog. As the compiler is going to be a deeply optimising one, the use of a 5GL such as Prolog is likely to be fairly essential. At the risk of sounding (extremely) snooty, constructing/extending such a compiler out of Ada and C (as I assume - correct me if I'm wrong - GNAT and GCC are respectively written in) would be a bit too clumsy to be practical. I'm willing to listen to arguments about this point of view. Yes, I'm writing the Prolog (semi-)compiler, too. There is really no limit to my madness! Whatever I produce, and whenever I produce it, I intend to publish as 'open source'. I'll keep you posted. ------------------------------------------- Nick Roberts -------------------------------------------