MiniKanren in Pharo :)

So this isn't a specific out-of-the-box solution to any of the
code-generation use cases people have been discussing, but I thought it was relevant enough to toss it out there.

I'm currently doing some work on program synthesis using a Pharo port of the miniKanren logic programming language (http://minikanren.org/). The Pharo version is here: http://smalltalkhub.com/#!/~EvanDonahue/SmallKanren . 

So far, I've only used it to implement this paper on generating scheme
programs (http://smalltalkhub.com/#!/~EvanDonahue/SmallKanren), the
implementation of which is here:
http://smalltalkhub.com/#!/~EvanDonahue/Barliman . 

I've thought a bit about things like generating GUI's, and it seems like
something interesting could be done there, since you could imagine feeding
it constraints and then giving the results a thumbs up/thumbs down to see
other satisfying layouts more or less like the ones you voted on, but the
probabilistic learning component is an object of current research and isn't
ready yet. 

I was planning on sending out an announcement once it was more complete and
robust, as right now it has lots of tests but not much documentation, and
the architecture is changing rapidly, per research requirements, but if
anyone is interested in knowing more about it feel free to get in touch.
This is part of a broader research program on intelligent interfaces, so
hopefully some cooler things come out of it later down the line.

Cheers,
Evan

Leave a comment