Thanks!
On Fri, Jan 10, 2014 at 9:24 AM, Sandro Magi <[email protected]> wrote: > http://lambda-the-ultimate.org/node/4865#comment-78251 > > > On 10/01/2014 12:12 PM, Jonathan S. Shapiro wrote: > >> Can you send out a link to Oleg's LtU post? I can't seem to find it. >> >> >> On Fri, Jan 10, 2014 at 6:06 AM, Sandro Magi <[email protected]<mailto: >> [email protected]>> wrote: >> >> Oleg just posted an interesting reference to an old paper [1] on >> LtU regarding overloading. Seems like it's exactly the type of >> overloading that Jonathan is looking for: >> >> The introduction of unrestricted overloading in languages >> with type systems based on implicit parametric polymorphism >> generally destroys the principal type property: namely that >> the type of every expression can uniformly be represented by >> a single type expression over some set of type variables. As >> a consequence, type inference in the presence of unrestricted >> overloading can become a NP-complete problem. In this paper >> we define the concept of parametric overloading as a restricted >> form of overloading which is easily combined with parametric >> polymorphism. Parametric overloading preserves the principal >> type property, thereby allowing the design of efficient type >> inference algorithms. We present sound type deduction systems, >> both for predefined and programmer defined overloading. Finally >> we state that parametric overloading can be resolved either >> statically, at compile time, or dynamically, during program >> execution. >> >> No free version seems accessible unfortunately. Oleg summarizes >> thusly: >> >> His paper introduced what is in modern terms a local type >> class with local instances. He cleverly avoids the incoherence >> problem by a restriction (checked by the type checker) that an >> overloaded operation doesn't escape the scope of its (local) >> class declaration. The paper proves principal types, shows the >> inference algorithm and describes two resolutions strategies, >> static and dynamic. The static strategy is essentially >> monomorphising (not quite different from template instantiation >> in C++) and the dynamic strategy is essentially RTTI. (The >> paper does not treat polymorphic recursion or higher-rank >> types, which make monomorphising impossible.) >> >> Sandro >> >> [1] http://link.springer.com/chapter/10.1007%2F3-540-19027-9_9 >> >> >> _______________________________________________ >> bitc-dev mailing list >> [email protected] <mailto:[email protected]> >> http://www.coyotos.org/mailman/listinfo/bitc-dev >> >> >> >> >> >> _______________________________________________ >> bitc-dev mailing list >> [email protected] >> http://www.coyotos.org/mailman/listinfo/bitc-dev >> > > > > _______________________________________________ > bitc-dev mailing list > [email protected] > http://www.coyotos.org/mailman/listinfo/bitc-dev > >
_______________________________________________ bitc-dev mailing list [email protected] http://www.coyotos.org/mailman/listinfo/bitc-dev
