Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.1 6/24/83; site opus.UUCP Path: utzoo!watmath!clyde!burl!mgnetp!ihnp4!zehntel!hplabs!hao!cires!nbires!opus!rcd From: rcd@opus.UUCP (Dick Dunn) Newsgroups: net.lang.mod2 Subject: Re: Modula-2 vs. C Message-ID: <705@opus.UUCP> Date: Thu, 16-Aug-84 20:15:24 EDT Article-I.D.: opus.705 Posted: Thu Aug 16 20:15:24 1984 Date-Received: Sun, 19-Aug-84 02:59:01 EDT References: <1697@inmet.UUCP> Organization: NBI, Boulder Lines: 22 >Re: Modula-2 and Initialization. > >A highly optimizing complier could take most of the statements in a >module's initialization block, and convert them into load time data, as >opposed to run-time initialization code. I can't remember anything in >the language definition that would prevent this. While this is a valid argument for an existing language, it always pains me to see the following sequence: - language design omits a necessary (or commonly useful) feature [case at hand: variable initialization] - user is forced to work around lack of the feature [substitute assignment statements] - compiler-writer has to figure out the optimization step to recognize the now-disguised feature and implement it [find a certain class of assignments and turn them into load-time initializations] It's painful because both the user and implementor of the language recognize a mechanism that the designer has ignored. -- Dick Dunn {hao,ucbvax,allegra}!nbires!rcd (303)444-5710 x3086 ...Never attribute to malice what can be explained by stupidity.