[self-interest] Assignement return value

Marko Mikulicic mmikulicic at full-moon.com
Tue Sep 12 22:31:36 UTC 2000


David Ungar wrote:

>
> Why did we specify Self this way?
> The idea is that anything that does not return a particular,
> interesting value, just returns the receiver and we wanted to be
> consistent.

The fact that in Self a method returns the last value without an explicit
return made me think that the situation with the assignment primitive is
also different that from smalltalk's accessors...

>
> Was it the best choice?

It's ok because it's consistent. It works well in this situations
" (foo a: 1) b: 2 " where receiver based cascading is implemented without
temps.
But  the  pseudo code " foo a: (b := c)" must be written as " b: c . foo a:
b" wich means that
the compiler must be smarter to not duplicate code that re-reads the slot
"b".
(not an big execution problem since the value of "b" is on the processor
cache", but it increases the code size
and the pipelines could be longer :-).

Does the Self 4.0 compiler optimizer handle this situation ?


>
>
> Beats me, but I still like it.
>
> BTW, all this interest is really gratifying.

Self is THE language. This research for simplicity but power makes it great.

I can't judge the framework build upon it since I haven't a running system
to explore,
but you can build infinite frameworks on top of a language. But a flexibile
language structure
behind the scene makes the real power go out.
Some people criticise C because of his standard library and search for new
language changing a little bit of
syntax, build a new framework and voila', you got a new language that
inherits all the great mistakes of the past.
I didn't have the time to check out, but I have an opinion that this extreme
situation is happening with the ms's  language C#
(and previously, but less extreme, by Java).


>
>
> Anyone coming to OOPSLA?

I'm really sad, but I can't.


Marko




More information about the Self-interest mailing list