mjl@ritcv.UUCP (Mike Lutz) (01/30/88)
Everyone else seems to be rambling all over the place on the "hot topic" of the hour (operator overloading), so what the hell! I might as well add some (marginally?) useful comments. Way back in the early 70's, a "hot topic" in language design were so-called extensible languages. In their fullest and least constrained forms, such languages allowed one to extend not only the data types, but the very form of control structures and overall language syntax. I remember a paper on a spectacularly powerful syntax macro system for PL/I, with an example where PL/I was turned into a special purpose geometry language. Interest in these languages quickly waned, however, when the practical problems of managing groups of these packages overwhelmed the perceived benefits (what if I want to use the "geometry" syntax and some "graphics" syntax, but they both define a "loop" construct in incompatible ways). The general feeling seemed to be that extending the syntax was a no-no, but extending data structures was a good thing. (I happen to agree, and most of the abstract data type and object oriented programming concepts follow these precepts). However overloading, whatever its notational convenience, and however much it may seem "obvious" in a local context, threatens to wreak the same havoc as did syntax macros way back when. The fact that some have essentially said that "intuition can guide interpretation" is frightening to me - software based on "intuition" is software doomed to failure. Remember: intuition says heavy objects fall faster than light ones - want to build an engineering discipline on that foundation? Mike Lutz Rochester Institute of Technology rochester!ritcv!mjl -- Mike Lutz Rochester Institute of Technology, Rochester NY UUCP: {allegra,seismo}!rochester!ritcv!mjl CSNET: mjl%rit@csnet-relay.ARPA
crowl@cs.rochester.edu (Lawrence Crowl) (01/30/88)
In article <138@ritcv.UUCP> mjl@ritcv.UUCP (Michael Lutz) writes: >... However overloading, whatever its notational convenience, and however >much it may seem "obvious" in a local context, threatens to wreak the >same havoc as did syntax macros way back when. Each programmer works in a local context, so unless we form an international registry of function names, we must accept operation overloading. Whether this overloading is done with "+" or "add" is somewhat moot. In the absence of formal definitions, "intuition" is all we have for guiding function names and operator symbols. -- Lawrence Crowl 716-275-9499 University of Rochester crowl@cs.rochester.edu Computer Science Department ...!{allegra,decvax,rutgers}!rochester!crowl Rochester, New York, 14627