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.