Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!watmath!clyde!caip!think!nike!ucbcad!ucbvax!DECWRL.DEC.COM!haynes From: haynes@DECWRL.DEC.COM Newsgroups: net.lang.mod2 Subject: Re: Single Pass Modula-2 Compiler Message-ID: <8610142109.AA23717@vulcan.DEC.COM> Date: Tue, 14-Oct-86 19:28:07 EDT Article-I.D.: vulcan.8610142109.AA23717 Posted: Tue Oct 14 19:28:07 1986 Date-Received: Mon, 20-Oct-86 22:14:03 EDT Sender: daemon@ucbvax.BERKELEY.EDU Organization: The ARPA Internet Lines: 27 Re: Declaration after use is an abomination, and should not bear consideration. Yeah? And so's your mother! (Proof by assertion refuted by childish ad hominem attack. Now that I've satisified net protocol...) What's wrong with declaration "after use"? Especially for procedures and the destinations of pointer types, declaration after "first mention" is often a natural programming style. It does make single pass compilation more difficult, sometimes impossible, and has performance implications for any compiler that has to translate the language that allows it. However declaration after use is not the obvious abomination you would try to hand wave us into believing. If claim that declaration before use results in more correct, easier to maintain programs, I will reply that the easiest to maintain large programs I ever worked on had all procedures declared in strict alphabetical order. That sure made a given procedure easy to find. One pass compilers are a boon to compiler writers and people who have to run on small machines. For them a one pass compiler is often the only possibility. For others who have large machines, and want an easy to use language, but don't want to sacrifice correctness or efficient object code, a multi-pass compiler is often the right thing. -- Charles