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!feeder.eternal-september.org!gandalf.srv.welterde.de!news.jacob-sparre.dk!franka.jacob-sparre.dk!pnx.dk!.POSTED.rrsoftware.com!not-for-mail From: "Randy Brukardt" Newsgroups: comp.lang.ada Subject: Re: Why are Ada compilers difficult to write ? Date: Fri, 29 Jun 2018 16:43:48 -0500 Organization: JSA Research & Innovation Message-ID: References: <584564c2-9f64-4965-b045-535cdaf899c0@googlegroups.com> <2d287ba3-209d-4d6a-af79-77177a137885@googlegroups.com> Injection-Date: Fri, 29 Jun 2018 21:43:48 -0000 (UTC) Injection-Info: franka.jacob-sparre.dk; posting-host="rrsoftware.com:24.196.82.226"; logging-data="3675"; mail-complaints-to="news@jacob-sparre.dk" X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 6.00.2900.5931 X-RFC2646: Format=Flowed; Original X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.7246 Xref: reader02.eternal-september.org comp.lang.ada:53455 Date: 2018-06-29T16:43:48-05:00 List-Id: "Dan'l Miller" wrote in message news:2d287ba3-209d-4d6a-af79-77177a137885@googlegroups.com... ... >Well, in an alternate universe, there would be a way to accomplish >those declarations of constants or variables in the same package as >their subtypes. Surely. But Ada 83 had a goal that Ada text would be processed linearly. It didn't quite achieve that (see visibility of goto labels), but it's close. This goal has been preserved in all more recent revisions of the language. This goal wasn't adopted to make it easier to write compilers (although it sometimes has that effect), but rather to make it easier to *read* Ada code (ease of reading being one of Ada's primary goals). In general, you don't have to read anything following a declaration to determine how it will be implemented and execute. Randy.