Bravo! Bravo Bravissimo!

2009/9/3 Ray Dillinger <[email protected]>:
> There are restricted cases in which the likelihood of success in
> a particular endeavor can be related fairly strongly to a single
> number.

For future reference, I will call this "the cake number" in reference
to one ot the preceding posts and a slightly famous, rather truculent,
old lady :)

> For purposes of porting scheme programs from one implementation
> to another, I think you could get a good idea of the probability
> of success with a distance metric between the two implementations
> involved.

I love metrics. Especially software metrics. And now we have a
meta-metric on a software development platform. How cool is that?

> I think I could claim (although I'd want to look at my stats book
> pretty closely first) that the probability of a given program that
> runs on the source implementation S running without modification on
> the target implementation T, given typical distributions of use of
> features found in the source implementation, is P(S,T). If it isn't,
> it's because I made a mistake in the statistical relationships
> given above.
...
> A table like that would certainly be useful, as would the
> corresponding list of such potentially compatibility-breaking
> features.  I think that P(S,T) for all T is an important part of
> the measure of "goodness" for implementation S,

This would be Cake_S(I), where I is a particular implementation.

> and likewise, that P(S,T) for all S is an important part of the measure of 
> goodness
> for an implementation T.

And this would be Cake_T(I).

> But this is not any kind of ordered relationship.  This is a
> measure of pairwise compatibility among implementations, and
> it's not even symmetric.

Well, you have a lot of not-quite-metric components there (and
possibly some typos in how they all combine, but I think I see what
you are getting at). I think that Cake(S,T) (which is a corrected
P(S,T)) doesn't even form a lattice, but it would certainly establish
a DAG between implementations. The full Cake graph might very well
have any number of interesting features (I'm thinking particularly of
a clique analysis) which might inform the debate about the Large vs
Small Scheme debate.

It seems to me that Cake_S and Cake_T have the potential to form
lattices, and it would be very interesting to me if they did *not*
form actual metric spaces.  I don't see that Cake_S(I) == Cake_T(I),
however, for any implementation I. Heck, there may even be an
implementation or two out there (you know who you are) where Cake(I,I)
is indeterminate!

Ultimately, I think you should apply for a grant and publish this
paper :) No, really! I think that the Cake metric actually addresses
algorithmic portability issues in a very wide sense and attempts to
bring rigor to our intuitive understanding of the "expressive power"
of different programming languages. The nice thing about doing a Cake
analysis of Scheme is that there are so many implementations around
that you could have a meaningful universe for comparison while keeping
the analysis effort bounded. The only problem I foresee is that
computing Cake(S,T) for any given pair might be equivalent to the
Halting Problem :)

david rush
-- 
GPG Public key at http://cyber-rush.org/drr/gpg-public-key.txt

_______________________________________________
r6rs-discuss mailing list
[email protected]
http://lists.r6rs.org/cgi-bin/mailman/listinfo/r6rs-discuss

Reply via email to