[net.lang.c] Modula-2

rfm <@csnet-relay.arpa,@tufts.CSNET (Richard F. Man):rfm@tufts.C (02/03/85)

Since dan frank asked someone to read the book on modula-2 and comment on it,
I may as well give my two cents' worth...
1. IO in Modula-2 is terrible. It has to use different function for different
	type of things you want to print out.
2. Import/Export violates the classical scope rule. It is exporting the name
	of the function/procedure, not the actual function/procedure itself.
After you read the Wirth's book, make sure you read the book "Polymorphic
Programming Languages". It makes Wirth look baaaddd.
		richard man

mouli@cavell.UUCP (Bopsi ChandraMouli) (02/06/85)

In article <7969@brl-tgr.ARPA> rfm <@csnet-relay.arpa,@tufts.CSNET (Richard F. Man):rfm@tufts.C writes:
>Since dan frank asked someone to read the book on modula-2 and comment on it,
>I may as well give my two cents' worth...
>1. IO in Modula-2 is terrible. It has to use different function for different
>	type of things you want to print out.

IO is not part of Modula-2 language definition. It is left to the 
implementation to decide on the IO Module. What Wirth has suggested
in his book is just one way of doing it.

>2. Import/Export violates the classical scope rule. It is exporting the name
>	of the function/procedure, not the actual function/procedure itself.

I don't think I understand what you mean by this.  The aim behind 
exporting the name of the procedure/function (along with the parameter
declarations) is for the compiler to check the type compatibility
of parameters statically. You can use the procedures/functions
without knowing what their actual implementations are.
Regarding scope,
you can achieve one more level of scope control using "local modules".

Bopsi Chandramouli.
U of Alberta.

henry@utzoo.UUCP (Henry Spencer) (02/07/85)

> 2. Import/Export violates the classical scope rule. It is exporting the name
> 	of the function/procedure, not the actual function/procedure itself.

This is a feature, not a bug.  The "classical scope rule" has almost
nothing going for it except that it's "classical", i.e. old.
-- 
				Henry Spencer @ U of Toronto Zoology
				{allegra,ihnp4,linus,decvax}!utzoo!henry