[Grace-core] On Gradual Typing

Eric Tanter etanter at dcc.uchile.cl
Thu Aug 1 11:22:37 PDT 2013


Hi all,

Related to Andrew's reference: listing missing methods in the IDE is an idea we've pushed forward recently in the context of both Java (Eclipse plugin) and Smalltalk (Pharo). We call them ghosts; they are not limited to self calls, nor to methods. There can be ghost classes, interfaces, methods, constructors and fields. 

A ghost view shows them as the user enters code, and can then be used to generate complete skeletons. Also, we can report type errors based on inconsistent usages of ghosts. 

>From what I understand of Andrew's description, it's taking what Nathaniel did a step even further (shame on us, we did not know about that work :/)

The IEEE Software paper (Jan/Feb 2013) is here:
http://pleiad.dcc.uchile.cl/papers/2013/callauTanter-software2013.pdf

The plugins and doc are here:
http://pleiad.cl/ghosts/

Sorry for the shameless plug, but that seemed really related.

Cheers,

-- Éric


On Jul 31, 2013, at 3:09 PM, Andrew P Black <black at cs.pdx.edu> wrote:

> 
> On 25 Jul 2013, at 15:31, Kim Bruce wrote:
> 
>> If inside the body of an object/class definition, you write self.m and there is no m in the definition, then I would like the programmer to be warned about this. 
> 
> This is similar to what the Trellis "grass catcher" did — accumulated warnings.   The "green browser" * that Nathaniel developed for Traits took this idea further: it produced an ambient display, in the system browser, of all messages sent to self fro which there wee not yet any methods.   This was really useful, as it told the programmer what remained to be worked on.  Eventually, before the code was committed, every one of the required methods that remained needed to be turned into an indication that the method was intentionally missing (abstract, aka subclassResponsibility).
> 
> However, during development, having the list of required methods visible and automatically updated served as a "to do" list for the programmer.   Vitally important, however, was that such a list did not in any way stop the programmer from running tests on the methods that had already been written.  Of course, if a test provoked execution of a missing method, the test emitted an appropriate Error.
> 
> 	Andrew
>  
> [*]  @article{SchaRli:2004:BIP:2295362.2295408,
>  author = {Sch\"{a}rli, Nathanael and Black, Andrew P.},
>  title = {A browser for incremental programming},
>  journal = {Comput. Lang. Syst. Struct.},
>  issue_date = {April, 2004},
>  volume = {30},
>  number = {1-2},
>  month = apr,
>  year = {2004},
>  issn = {1477-8424},
>  pages = {79--95},
>  numpages = {17},
>  url = {
> http://dx.doi.org/10.1016/j.cl.2003.09.004
> },
>  doi = {10.1016/j.cl.2003.09.004},
>  acmid = {2295408},
>  publisher = {Elsevier Science Publishers B. V.},
>  address = {Amsterdam, The Netherlands, The Netherlands},
>  keywords = {Incremental programming, Intentional programming, Method reachability, Requires set, Smalltalk browser},
> } 
> 
> 
> _______________________________________________
> Grace-core mailing list
> Grace-core at cecs.pdx.edu
> https://mailhost.cecs.pdx.edu/mailman/listinfo/grace-core




More information about the Grace-core mailing list