A modest Modula wish list
This article contains suggestions for modifying Modula II an d using the modifications to write abstract data types. I write from the experience of several months full-time programming in Modula II i n which I endeavored to follow the program design style set forth in m y book "Abstraction For Programmers" [33. The discussion is divided into these sections : 1) Avoiding Excessive Variable Usage and Inadvertant Memory Usag e 2) Three Language Modification s 3) Abstract Data Type s My suggestions actually require very little change to Modula II. The suggestions in section 1) would merely decrease the freedom o f implementors to make decisions. Even in section 2) where I dream of a slightly different Modula, I have restrained myself to three modes t alterations. These alterations build upon what already exists i n Modula II rather than reach for what may be seen in other languages. Only one of the three suggestions requires a change to the BN F description of Modula II and that change is miniscule. In section 3), I show how abstract data types could be implemente d if my suggestions were accepted into the language. The suggestions in this section result from deficiencies in th e Modula II implementations with which I am familiar. My intention i s to explain why these deficiencies should not be permitted. >> All Modula implementations should allow dereferenced pointe r variables to appear any place another variable of the same data typ e could appear. are disallowed, a programmer is forced to introduce temporar y variables. A program with a lot of temporary variables is like a presentation with a lot of definitions-it's confusing. (This poin t is discussed as some length in section 4 .3 of [3] .) To use variable s that are not germain to the topic at hand could be called "excessiv e variable usage". A language which is supposed to help programmin g abstraction and style should not force excessive variable usage .