On Thu, May 15, 2008 at 9:58 PM, Gabriel Dos Reis wrote:
> "Bill Page" <[EMAIL PROTECTED]> writes:
>
> | On Thu, May 15, 2008 at 5:57 AM, Gabriel Dos Reis wrote:
> | > Bill Page writes:
> | I agree with Waldek (in a different thread). I think the original
> | developers of Axiom explicitly decided against variable name
> | overloading. Do you know of any mainstream language where
> | this is a common programming paradigm?
>
> I mention the `real' overload solution to counter the assertion
> *must be a Union*.  The `must' does not follow.
>

Ok, granted.

> As for a language that has overload on variable, well have a look
> at Perl.  It certainly is more mainstream than Spad.
>

I believe Perl uses name mangling (sigilia), doesn't it?

http://en.wikipedia.org/wiki/Sigil_%28computer_programming%29

> ...
> On another tone, it appears odd to me that one would argue for
> overloaded constants (which OpenAxiom supports, as well as
> other Axioms in one form or another), and at the same time
> argue against overload of variables?  What is the fundamental
> reason?
>

One can guess or one can ask the original designers. :-)

It would be extraordinarily inconvenient if one had to invent
different names of common constants such as 0 and 1. These are members
of many different domains. Constants are really a form of nullary
operator and are treated uniformly with other exports. Do you agree?

> | One of the design goals of a static strongly typed language is to
> | ensure type correctness by associating static types with variables.
> | Allowing variable overloading by type seems to defeat this purpose -
>
> How?  I mean, constants are overloaded, why isn't that also defeating
> the purpose -- assuming that is the case for variables?
>

Constants are, um well, constant. Their value does not/cannot depend
on the execution history of the program. As such they are inherently
"safe".

> | especially when it is combined with implicit typing rules.
>
> How?  Please be more specific.

I mean that if I can write:

  y := x + 1

and expect the compiler to provide an implicit type for y based on
knowledge of x, + and 1 where all of these potentially overloaded, the
number of possibilities rises rapidly. The greater the number of
possibilites, the greater that chance of making a type error.

>
> | Overloading constants (including functions) however is obviously very
> | convenient and supported in all flavors plus Aldor.
>
> But, why isn't that also `defeating the purpose of static typing'?
> Just because `it is claimed to be convenient'?  That cannot be the
> reason.
>

No. It is because constants are already static.

> ...

Regards,
Bill Page.

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft 
Defy all challenges. Microsoft(R) Visual Studio 2008. 
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
open-axiom-devel mailing list
open-axiom-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/open-axiom-devel

Reply via email to