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: "Alejandro R. Mosteo" Newsgroups: comp.lang.ada Subject: Re: Why are Ada compilers difficult to write ? Date: Tue, 2 Oct 2018 14:58:01 +0200 Organization: A noiseless patient Spider Message-ID: References: <584564c2-9f64-4965-b045-535cdaf899c0@googlegroups.com> <99d7e8ba-9e5a-4881-9132-607d9f16007a@googlegroups.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Injection-Date: Tue, 2 Oct 2018 12:58:02 -0000 (UTC) Injection-Info: reader02.eternal-september.org; posting-host="617acadac88c413f19c5141151dbfcd7"; logging-data="20994"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/lnVe9KiwKZLxY7PAyM+KG" User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 Cancel-Lock: sha1:foyCyYYIzXutfhxJDnJLtCtYA+Y= In-Reply-To: <99d7e8ba-9e5a-4881-9132-607d9f16007a@googlegroups.com> Content-Language: en-US Xref: reader02.eternal-september.org comp.lang.ada:54468 Date: 2018-10-02T14:58:01+02:00 List-Id: On 01/10/18 20:51, Lucretia wrote: > On Monday, 1 October 2018 19:09:12 UTC+1, Tucker Taft wrote: >> Perhaps the hardest aspect of getting an Ada compiler to pass all of the ACATS conformance tests is to correctly diagnose all errors, which includes both compile-time error detection (the so-called "B" tests of the ACATS test suite) and the run-time checks, which raise exceptions when some dynamic semantics rule of the language is violated (the so-called "C" tests of the ACATS test suite). >> >> One of the great strengths of Ada compared to other languages is the strictness of the conformance test suite, and its attention to both correctly executing "good" tests but also correctly detecting compile-time or run-time problems in "bad" tests. I remember many times when an implementor of an Ada compiler would announce that they were "almost done," only to discover that passing all of the B tests took another five person years of effort. >> >> I would presume that correctly implementing C++ is harder than Ada these days, given that C++ seems to contain the union of all language features ever invented for any language. But relative to C or Pascal, Ada and C++ are at least one order of magnitude harder, with exceptions, generic templates, object-oriented programming, and finalization/destructors, as just a few of the sources of compiler complexity. > > As there's been talk of creating a new compiler, from someone who's done it, what advise, apart from "don't do it," would you give to someone considering it? > > On a separate tangent, would you say look into designing a new language completely? Again, for anyone considering it. I think someone is already playing with that idea :) https://en.wikipedia.org/wiki/ParaSail_(programming_language)