[net.lang] Languages with overloading: summary.

jenny@ucbvax.BERKELEY.EDU (Kathryn Hargreaves) (02/13/86)

Around two months ago, I posted a request for information
about Algol-like languages that had some form of operator overloading.
Since I have received several requests to post the replies, following
is a summary. Any errors are my own, introduced in transcription. My
apologies if I missed anyone who sent me a reply.

Greg Davidson, Mark Freeland, Paul Broome, Saumya Debray, and Tim Olson
told me about Prolog, which has true overloading. The reference work is
Programming in Prolog, by Clocksin and Nellish, Springer-Verlag 1981, ISBN
0-387-11046-1.

Larry Rosenstein and Chris Warack told me about Clu, which has a rather
interesting form of overloading. (Operators aren't really operators, just
syntactic sugar.) The reference work is a MIT publication, I believe, by
Barbara Liskov et. al.

Martin Minow told me about MAD, which will do practically anything. MAD was
a bizarre language on the IBM 7090.

Andrew Klossner, Paul Fox, and especially Paul Campbell corrected my
original posting with respect to Algol 68: it doesn't have user-defined
postfix operators.

Greg Davidson, Bob Devine, Keith Gorlen, and ecsvax!bennett told me about
C++, which has overloading of existing operators. The reference work is
Bjarne Stroustrop's publication.

Jan Steinman, Steve Vegdan, and mct@gandalf.cmu.edu told me about Smalltalk,
which has a peculiar form of overloading. The reference work is the Xerox
book by Adele Goldberg, et. al.

James Jones told me about Russell, a language developed by Hans Boehm at
Cornell. (Notable for its theory about types. (Of course.))

Greg Davidson, Paul Broome, and S. Macrakis told me about Lisp, which has
everything, of course. The work Mr. Broome suggested was Winston & Horn.

Cesar Augusta told me about LET (?), a language developed by Jean Abnal. (?)

Paul Fox told me about POP-11.

mct@gandalf.cmu.edu told me about ML, an intermediate language (I think)
output by some compilers.

Tim Olson mentioned Forth.

apollo!alan told me about EL/I and SIX-12 (The Bliss debugger.) as well as a
thesis by Beart Beander at the University of Wisconsin on extensible
languages.

David Jacobsen told me about CGOL, which allows definition of new operators.
The reference work by Robert L. Toelle as Technical Report 77-12-02, from
the CS department, U. of Washington, Seattle, WA 98195.

S. Macrakis told me about Ada, which has overloading of existing operators.
The reference work is the ANSI document, I suppose.

S. Macrakis also told me about ECL, which has definition of new operators.
The reference work is by Ben Weigbret, in Proc. AFIPS 1971 FJCC vol. 39, and
the reference manual is available from the Harvard CS department.

Thanks to everyone.

ucbvax!jenny    jenny@ucbvax.berkeley.edu

ladkin@kestrel.ARPA (Peter Ladkin) (02/21/86)

In article <11837@ucbvax.BERKELEY.EDU>, jenny@ucbvax.BERKELEY.EDU 
(Kathryn Hargreaves) writes:
> Larry Rosenstein and Chris Warack told me about Clu, which has a rather
> interesting form of overloading. (Operators aren't really operators, just
> syntactic sugar.) The reference work is a MIT publication, I believe, by
> Barbara Liskov et. al.

The CLU reference manual is published by Springer in LNCS volume 114.

> mct@gandalf.cmu.edu told me about ML, an intermediate language (I think)
> output by some compilers.

ML is the Edinburgh type-theory language. It's not intermediate.
It's very high level. Dave McQueen at Bell Labs is probably the
best reference. Edinburgh puts out the POLYMORPH newsletter.

Joe Goguen and Pepe Meseguer at SRI are developing OBJ, an
algebraic data type language, and they have works investigating
the overloading of operators, especially with regard to 
incorporating subtypes in an equationally-based ADT environment.

Peter Ladkin