On Wednesday, June 20, 2012 11:07:16 PM UTC-5, Jack Moffitt wrote:
>
> > So taking up the task of insuring correctness/consistency but leaving 
> aside 
> > static typing as is typically practiced.   How can we best catch errors 
> and 
> > inconsistencies in our code before our end users do? How can we do this 
> > better than any competing system (like Haskell)? How quickly can errors 
> be 
> > caught - run time, compile time, edit time? 
>
> Dialyzer (a tool widely used in Erlang) may provide some ideas in this 
> direction. It can be used to infer types and to check for type 
> violations, in some cases without any annotations. 
>
> I don't think it's quite what you want, but like I said, perhaps more 
> food for thought. 
>
> More interesting is the work Kostis et al have done with Purity 
> (http://user.it.uu.se/~kostis/Papers/purity.pdf) which uses static 
> analysis to determine whether functions are referentially transparent 
> in order to have user-defined guard functions for Erlang's pattern 
> matching. 
>
> If you look at the other tools he and his colleagues have made 
> (http://www.erlang-factory.com/upload/presentations/347/Kostis.pdf) 
> you'll see that the Clojure community has already been busy along the 
> same lines (test.generative, the various semi-automated refactoring 
> tools, etc). 
>
> jack. 
>

Very interesting Jack I will be looking into this myself.

Any work in this direction could really make a difference for clojure. I 
don't doubt that such potential benefit is a motivation behind the work of 
whomever is doing these tools. I think in particular the purest the code 
is. The easier such analysis should be. Dealing with state makes those kind 
of analysis much more complicated.

One other area that I see that would be very interesting is having a 
completely new browsing IDE. I believe the best functions are small 
functions, and I still find code where functions are following each other 
in a sequential fashion in a way that aids reading comprehension. And that 
is good if we are trying to understand this one thread. But what about 
other threads. Static analysis may be able to bring together threads of 
functions that "tell" any number stories by placing related functions on 
the same screen.

Arturo

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en

Reply via email to