Thoughts From The Abyss
Matthew Tuck
matty@box.net.au
Mon, 10 May 1999 21:20:56 +0930
Hans-Dieter.Dreier@materna.de wrote:
>> Hans-Dieter's transparent names are easily implementable as shorthands
>> if we don't use prototyping, and hence don't require any extra features.
> What do you mean by "prototyping" here?
As in "an object-based approach where inheritance is perform by copying
with update". Hence this operation would be primitive.
>> Type layout should never attempted before everything is known, since it
>> prohibits elimination of unused methods, etc., which I suspect is a big
>> cause of bloat in existing OOP systems.
> What do you refer to?
Say you wanted to eliminate a method because it's not used in a
program. Assume you're not loading/generating classes. It can only be
eliminated after linking, and this is rarely done. A simple
inter-module analysis could eliminate type methods by simply seeing if
they're ever referred to. Hence vtables would be smaller. Actual
instance fields being eliminated would shorten object layouts, but
fields are harder, since you want to eliminate stuff that is written to
but not read from, along with the assignments to them.
>From a programmer's point of view, if I can develop in a really modular,
flexible way, it reflects on my software by a reduction in bugs, and
quicker development/maintenance. And if I can optimise even better than
a standard C compiler lets me, it also reflects on my software that it
is very fast and small.
> Having the original state both unacceptable and modifiable is likely to
> cause problems inside the editor. The user is in trouble as soon as he
> decides to undo his changes in the middle of editing by restoring the
> original state.
Not really. The view would support having that value, and allow
changing to it, just not letting the user change to it. Hence an undo
would just take you back to the unacceptable value and display that it
is unacceptable.
--
Matthew Tuck - Software Developer & All-Round Nice Guy
mailto:matty@box.net.au (ICQ #8125618)
Check out the Ultra programming language project!
http://www.box.net.au/~matty/ultra/