Trouble installing Chuck
lex at cc.gatech.edu
Tue Jun 1 19:13:00 UTC 2004
=?ISO-8859-1?Q?st=E9phane_ducasse?= <ducasse at iam.unibe.ch> wrote:
> I read your paper and tried to understand :) Long time ago I read the
> PhD of Agesen and the master of Garau,
> but I'm not sure I ever understood :) Anyway the paper is good and I
> will really have a look at Chuck.
Cool, your feedback is very welcome. Do let me know if anything seems
particularly confusing, so I can tweak the presentation.
> - Could we find a better characterisation of the goals to prune?
> I imagine that certain smalltalk constructs or highly polymorphic
> message sends could be prioritize to be pruned
Yes, there should be a very rich area of exploration here. I plan to
work on the pruner in the near future, now that the system as a whole is
> - Imagine a Smalltalk variant where we could annotate each AST node
> with type information, which may be
> wrong or absent. We could type check the code to make sure that there
> is a kind of coherence between
> the annotation but we could use this information for the inferencer.
> So do you think that this would be worth?
You can do this in Squeak, of course. Nobody stops you from keeping
track of some annotations on the variables.
If the types are checked, whether statically or dynamically, then Chuck
could use them as a source of information. In particular, if a variable
v has type T, then Chuck can use T as a bound on whatever type it infers
internally; even if it ends up pruning the goal "find a type of v", it
can conclude "v : T" instead of "v : Anything".
If the types are not checked then I don't know what Chuck could do with
them. For better or worse, I've been instisting that Chuck find *sound*
inferences so long as the program sticks with the core language and does
not do things like redefine methods. Given that assumption, how does
one use a programmer-supplied approximate type? In principle it can
lead to good heuristics, but I don't know of any *specific* place to use
> - Alternately we could also analyze the name of the variable and
> extract some kind of type information that
> we could correlate with your findings.
That would be an interesting experiment. You could also compare the
names to types determined by running the program. For me, with my
priorities, it will be years before getting around to such an
experiment, but if you or anyone goes after it I look forward to seeing
what you find!
More information about the Squeak-dev