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