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=ham autolearn_force=no version=3.4.4 X-Google-Thread: 103376,aea4cc77526f5e4a X-Google-Attributes: gid103376,public,usenet X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news1.google.com!news3.google.com!news1.google.com!news2.google.com!news.glorb.com!newscon02.news.prodigy.net!prodigy.net!newsfeed-00.mathworks.com!nntp.TheWorld.com!not-for-mail From: Robert A Duff Newsgroups: comp.lang.ada Subject: Re: Separate Compilation in Programming Languages Date: Fri, 22 Feb 2008 16:27:33 -0500 Organization: The World Public Access UNIX, Brookline, MA Message-ID: References: NNTP-Posting-Host: shell01.theworld.com Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: pcls6.std.com 1203715658 11495 192.74.137.71 (22 Feb 2008 21:27:38 GMT) X-Complaints-To: abuse@TheWorld.com NNTP-Posting-Date: Fri, 22 Feb 2008 21:27:38 +0000 (UTC) User-Agent: Gnus/5.1008 (Gnus v5.10.8) Emacs/21.3 (irix) Cancel-Lock: sha1:YYmDes+hgmdetNuR+pUvyQ1mw68= Xref: g2news1.google.com comp.lang.ada:19995 Date: 2008-02-22T16:27:33-05:00 List-Id: writes: > Recently, I have been engaged in some conversations with colleagues > about the value of separate compilation. This is one of my favorite > features in Ada. In fact, as nearly as I can tell, none of the other > popular languages includes this feature in as well-developed a form as > Ada. Java has no separate compilation at all. Nor does Eiffel. C++ > has a rather kludgy form that is sometimes worse than none at all. > Modula includes a form of separate compilation, but requires opaque > types. Older languages such as PL/I, COBOL, and Fortran are pretty > useless in this respect. Please define what you mean by "separate compilation". My definition is that you can store parts of the program in separate source files, and compile each source file separately from other source files. You can compile parts of incomplete programs. In that sense, all of the above-mentioned languages (or language implementations in common use) have it. So I'm puzzled by your statement to the contrary. I've also heard the term "independent compilation" used for the above, with "separate compilation" meaning that in addition, whatever type checking is done within a single compilation unit should be done across separately compiled units. In that sense, Ada, Eiffel, Modula-2, and Java still have separate compilation. C and C++ do too, sort of, if you rely on taking care with include files. Still puzzled. By the way, Eiffel compilers typically use incremental compilation, which if implemented well, is strictly superior to separate compilation on a file-by-file basis. - Bob