Re: User defined precedence for user defined operators.

Hans-Peter Diettrich <DrDiettrich1@aol.com>
15 Aug 2006 18:53:47 -0400

          From comp.compilers

Related articles
User defined precedence for user defined operators. gah@ugcs.caltech.edu (glen herrmannsfeldt) (2006-08-14)
Re: User defined precedence for user defined operators. tommy.thorn@gmail.com (Tommy Thorn) (2006-08-15)
Re: User defined precedence for user defined operators. DrDiettrich1@aol.com (Hans-Peter Diettrich) (2006-08-15)
Re: User defined precedence for user defined operators. marcov@stack.nl (Marco van de Voort) (2006-08-15)
Re: User defined precedence for user defined operators. tmk@netvision.net.il (Michael Tiomkin) (2006-08-15)
User defined precedence for user defined operators. derek@knosof.co.uk (Derek M Jones) (2006-08-15)
Re: User defined precedence for user defined operators. torbenm@app-5.diku.dk (2006-08-18)
| List of all articles for this month |

From: Hans-Peter Diettrich <DrDiettrich1@aol.com>
Newsgroups: comp.lang.fortran,comp.compilers
Date: 15 Aug 2006 18:53:47 -0400
Organization: Compilers Central
References: <1155280055.803334.85200@h48g2000cwc.googlegroups.com> <1155424619.168792.202040@h48g2000cwc.googlegroups.com> <ebpn6e$qbt$1@vilya.larc.nasa.gov> <1hk1yfv.zyn74w12uw4xsN%nospam@see.signature> <44E0B3FF.4040401@cits1.stanford.edu> 06-08-081
Keywords: Fortran, design

glen herrmannsfeldt wrote:


> As far as I know, the languages that allow operator overloading
> use the same precedence in all cases for each operator.


The same precedence, associativity, and other semantics of the
"original" operators.


>>Type(a) + Type(b) returns a Type(b)


IMO binary operands will expand to a.<op>(b), with a possible type cast
of b, into an type compatible with a.<op>. But a and b may be swapped as
well, according to the grouping of the operator <op>.




> [I don't think I've ever seen a language where the operator precedence
> depended on the types of the operands, and I hope I never do. -John]


At least not in a language, that allows for user defined and possibly
polymorphic types, whose exact type is unknown at compile time.


There may exist situations, like a multiplication of an vector by a
scalar, where special handling might make sense. Nontheless it also
would make sense, then, to introduce new operators for such operations.


DoDi
[I don't doubt that it's possible to write a parser with type-dependent
precedence, but if ever there were a feature guaranteed to produce
unreadable code with hard to find bugs, that's it. -John]



Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.