On 26 mars 2013, at 12:05, Frank Shearar wrote: > On 26 March 2013 10:51, Camille Teruel <[email protected]> wrote: >> >> On 26 mars 2013, at 11:02, Tudor Girba wrote: >> >> I like this project proposal. A little addition would be to add type >> inference for code written in the inspector where we already have concrete >> types that we could leverage for development tools. Would you consider that? >> >> >> Do you mean that type information could be gathered on object inspection? >> If so it's a cool idea and the same thing could be done with a debugger. > > As an example, since you know the actual type of all variables and > method arguments, you can use that information when writing code in > the debugger: you've just written a message send to some variable but > that that variable's class doesn't understand that message, for > instance. (This should be a warning, not an error.) > >> I just didn't want to force the student to develop new type inference >> mechanisms because some solutions already exist in Pharo. >> The project is more about making cool tools that use type information >> provided by an existing solution. > > That includes both Francisco Garau's and Santiago Bragagnolo's work on > Concrete Type Inference, Roel Wuyt's RoelTyper and my own tiny > inference engine in SqueakCheck > (http://www.squeaksource.com/SqueakCheck/ and its ConfigurationOf > might well need fixing for Pharo).
Thanks Frank, I wasn't aware of your engine, I will have a look on it. > > frank > >> Doing both tasks would be too much work for one student. >> However, if the existing solutions don't fit the tool the student wants to >> develop he is still free to improve them. >> >> >> Cheers, >> Doru >> >> >> On Tue, Mar 26, 2013 at 10:51 AM, Camille Teruel <[email protected]> >> wrote: >>> >>> Hi Janko, >>> >>> Here is another project proposition. >>> >>> Programming tools for Pharo based on Type Inference >>> >>> >>> Level: intermediate/advanced >>> >>> Possible mentor: Camille Teruel >>> Possible second mentor: Stéphane Ducasse >>> >>> Description: Type inference mechanisms can be used to compute the types of >>> variables from the source code. This information is very interesting in the >>> context of a dynamically-typed language like Smalltalk. Several type >>> inference tools already exists for Smalltalk but the type information they >>> bring has not revealed all its potential yet. The student will have to >>> leverage this type information with new programming tools. >>> >>> Example of such tools are: >>> >>> Code analysis tools: >>> >>> better "implementors of" and "senders of" lists >>> dead code finder >>> >>> Development tools: >>> >>> type mismatch hints at compile time >>> better code completion >>> >>> Technical details: >>> >>> The student will have to analyze existing type inference tools and choose >>> an appropriate solution. Then he will have to learn how to build UIs with >>> Spec. >>> >>> Benefits for the Pharo community >>> >>> New useful development tools >>> Improvement of existing code base thank to these tools >>> >>> Benefits for the student >>> >>> Use a highly reflective dynamic language >>> Learn the basics of type inference >>> Learn how to make UIs with Spec >>> Have an impact on the code base of a large project >>> >>> >> >> >> >> -- >> www.tudorgirba.com >> >> "Every thing has its own flow" >> >> >
