Raoul:

I'm afraid you shouldn't hold your breath on this request, but it may help
that the things you are asking about are mostly orthogonal.

The slippery slopes in subtyping mainly have to do with interactions
between subtyping and type inference. There is a *huge* research literature
on this, and the devil is in the details. There are several ways to dodge
or mitigate the bullets. We're not far enough along in BitC to know whether
those will work for us yet, which is part of my hesitation. I also hesitate
because once you commit yourself to dodging a bullet in a particular way,
that choice will tend to constrain the future ways in which the type system
of the language can evolve.

If you want to try to get a feel for this, the best source might be
Benjamin Pierce's book Types and Programming Languages. If you're more
inclined toward academic papers:

Simple, Decidable Type Inference with Subtyping
<https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=3&cad=rja&uact=8&ved=0CDMQFjAC&url=http%3A%2F%2Farxiv-web3.library.cornell.edu%2Fpdf%2F1104.3116v1&ei=fgC8U97rGar-igLnIQ&usg=AFQjCNHBxWy_UoSWCzi0aUNwglJY7zIr6w&sig2=rOzL6Uks2pKCTwU1ARpqeQ&bvm=bv.70138588,d.cGE>


My personal expectation is that the real killer for inference in BitC is
going to turn out to be something called kinding. That's an issue that's
considered too advanced for TAPL to address.


As to interfaces, I'm really only aware of two kinds (ignoring BitC): in
some legacy languages an interface is really a module boundary. Otherwise,
the Java/C# notion of interfaces seems to be how people do things.

BitC interfaces are probably misnamed. What they really do is existential
encapsulation, which is why they were originally named "capsules". At some
point I noticed that they looked a whole lot like interfaces (except for
the downcast and identity issues) and started calling them that. The
discussion here on the list strongly suggests that calling them
"interfaces" probably isn't a good idea.


And yes, BitC needs a blog (or better: a CMS). I haven't put one up on my
machines because of security concerns, and because I don't want the blog to
detract from the discussions here. It may be time to start one, though.


Not sure how helpful this is...

shap
_______________________________________________
bitc-dev mailing list
[email protected]
http://www.coyotos.org/mailman/listinfo/bitc-dev

Reply via email to