home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #20 / NN_1992_20.iso / spool / comp / lang / modula3 / 913 < prev    next >
Encoding:
Text File  |  1992-09-15  |  2.2 KB  |  43 lines

  1. Newsgroups: comp.lang.modula3
  2. Path: sparky!uunet!utcsri!torn!watserv2.uwaterloo.ca!watserv1!mhcoffin
  3. From: mhcoffin@tolstoy.uwaterloo.ca (Michael Coffin)
  4. Subject: Re: Constructors in Modula-3
  5. In-Reply-To: pk@rwthi3.informatik.rwth-aachen.de's message of 15 Sep 92 12:22:37 GMT
  6. Message-ID: <MHCOFFIN.92Sep15145854@tolstoy.uwaterloo.ca>
  7. Sender: news@watserv1.uwaterloo.ca
  8. Organization: Dept. of Computer Science, University of Waterloo
  9. References: <MHCOFFIN.92Sep14133341@tolstoy.uwaterloo.ca>
  10.     <1992Sep15.122237.271@Urmel.Informatik.RWTH-Aachen.DE>
  11. Date: Tue, 15 Sep 1992 19:58:54 GMT
  12. Lines: 29
  13.  
  14. In article <1992Sep15.122237.271@Urmel.Informatik.RWTH-Aachen.DE> pk@rwthi3.informatik.rwth-aachen.de (Peter Klein) writes:
  15. > ...
  16. > No, *please* no more pragmas. If you want to have a feature in the
  17. > language standard, then introduce a new keyword. Everything else leads
  18. > to portability problems. I see a certain use for pragmas if they don't
  19. > change the semantics of a program, like <* OBSOLETE *> or <* INLINE *>.
  20. > (What about INLINE anyway? Will it ever be supported?) But what you suggest
  21. > definetely changes the semantics, and should therefore be a keyword (just 
  22. > like <* EXTERNAL *>, which is actually no pragma either).
  23.  
  24. I, too, like a new keyword, but that would involve changing the
  25. standard, which is pretty difficult.  Adding a pragma can be done by
  26. merely changing a single implementation.  Furthermore, if successfully
  27. implemented and tested, it would add ammunition for introducing a new
  28. keyword in the next version of the standard (if there is one). 
  29.  
  30. And, as pragmas go, <*NO NEW*> is fairly benign. It doesn't introduce
  31. any portability problems that I can see.  If you write a program using
  32. a compiler that supports <*NO NEW*>, you can compile it on another
  33. compiler that ignores <*NO NEW*> and everything will work just fine.
  34. On the other hand, if you develop a program using a compiler that
  35. doesn't support <*NO NEW*>, it will certainly work on one that does.
  36.  
  37. The point is that <*NO NEW*> restricts the language, which merely
  38. makes some otherwise-legal programs illegal.  In contrast,
  39. <*EXTERNAL*>, makes some otherwise-illegal programs legal, which is
  40. far more serious and *does* cause portability problems.
  41.  
  42. -mike
  43.