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.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,6161bc9aa025a9a3 X-Google-Attributes: gid103376,public From: bobduff@world.std.com (Robert A Duff) Subject: Re: Subunits of packages vs. subunits of subprograms Date: 1996/07/21 Message-ID: #1/1 X-Deja-AN: 169265269 references: <31E534FE.12370608@jinx.sckans.edu> <4s8h0o$s6u@felix.seas.gwu.edu> organization: The World Public Access UNIX, Brookline, MA newsgroups: comp.lang.ada Date: 1996-07-21T00:00:00+00:00 List-Id: In article <4s8h0o$s6u@felix.seas.gwu.edu>, Michael Feldman wrote: >Well, if you buy Robert Dewar's definition of compilation as syntax/ >semantic checking but no code generation, there's no violation. I've >just been looking in the RM 95, especially Chapter 10, and I find no >straightforward definition of compilation in it. That is, there's nothing >like "compilation includes syntax/semantic checking and code generation". Well, this is all very language-lawyerly, but here's the chapter-and-verse: RM-1.1.2(27), 1.1.3(4), and 1.1.5(3-4) say that Legality Rules have to be checked at "compile time", and that the compiler has to tell you (at compile time) whether each compilation unit submitted to the compiler is legal or illegal. (Of course, a good compiler will attempt to explain *why* it's illegal, but the RM doesn't require that.) 10.1(2) and 10.1.4(5,8) make it clear that "compile time" is not the same as link time -- the "compiler" has to be able to detect legality errors in incomplete programs (i.e. before link time). The RM never says that the implementation has to generate code (although 1.1.3(2) comes close), and certainly never says *when* code is generated. Interpretive execution is legal, but there still has to be a legality-checking compiler that comes before. Incremental code generation is another possibility, or even code generation at run-time ("just in time"). >That's fine - it is not the role of the standard to micromanage >mechanics. Right. - Bob