I have been thinking about the discussion of "queryable programs" from
Rich's keynote at Clojure Conj.  This meaning of this idea is probably more
well-defined for other people than it is in my present understanding, but
my sense from the talk is that the analysis phase of compilation will
leverage core.logic to infer facts about the program and find possible
inconsistencies and problems, reporting them as warnings or errors.

Yesterday I had an interesting conversation with a functional programmer
who is more on the statically typed side of the fence, and I brought up
this idea.  He told me about some interesting research by Dana Xu on static
contracts.  Unlike standard (dynamic) contracts, which throw exceptions
when the code is exercised at run-time, static contracts seem to be more
along the lines of what Rich is talking about.

See: http://gallium.inria.fr/~naxu/research/dana-phd.pdf

What do you think about this idea? I have just started reading the above
pdf...  I don't see much of interest when googling for '"static contract"
Racket' but that would be a closer jump to Clojure if someone figured out
how to do this in a Lisp. The Racket community seems the likeliest home for
such research.

Also, I'm curious to know what other concepts/techniques might be on the
table in the plan for Clojure to surpass statically typed languages at
their own game (to the extent that their game is all that relevant).

Rob

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

Reply via email to