

Google's Plop is implemented in Lisp - brewski
http://code.google.com/p/plop/source/browse/#svn/trunk/src

======
enomar
Plop appears to be part of a Google-summer-of-code project.

I don't think that makes it a Google product/project. It just means Google
paid a student to work on an open source project.

That student appears to have written some of that code in Lisp. Why is that
interesting?

~~~
moshe
Actually, I work full-time for Google Research (and have written all of the
plop code, so far). Google happens to have sponsored a bunch of summer-of-code
students through opencog.org, one of whom I supervised, but he coded in C++.

I think that the idea of a Lisp system that learns Lisp programs via
probabilistic modeling is intrinsically interesting regardless of who funds
it, but that could be personal bias ;->.

~~~
frisco
moshe: by the way, you have the greatest email address ever.

~~~
staticshock
madscience at google com? wow, i second that sentiment

------
tlrobinson
So what's it do?

I see a bunch of AI buzzwords.

~~~
moshe
Eventually, learn arbitrary programs from data, e.g.

Input: (learn 'fib '(x) '(((1) 1) ((2) 1) ((3) 2) ((4) 3))) Output (defun fib
(n) (if (< n 3) 1 (+ (fib (1- n)) (fib (- n 2)))))

as well as standard machine-learning tasks such as supervised classification.

For what it does right now, see the examples at the bottom of the quick start
guide:

<http://code.google.com/p/plop/wiki/QuickStart>

For more technical background see e.g. <http://metacog.org/main.pdf> (my
dissertation). I will also add a list of relevant publications to the wiki...

~~~
jderick
Pretty interesting.. actually looks somewhat related to my thesis:

<http://www.cs.utexas.edu/~jderick/thesis.pdf>

I'll have to look at it more closely when I get a chance.

I was working on learning proofs, rather than programs, but I think there are
a lot of similarities.

~~~
mnemonicsloth
_I was working on learning proofs, rather than programs, but I think there are
a lot of similarities._

I'm just a mathematician, and my mind has obviously been warped by continua
and the Axiom of Choice but aren't they the same thing?

<http://en.wikipedia.org/wiki/Curry-Howard_correspondence>

Actually, I've gotten interested in learning more about theoretical CS lately,
but my everyone in my department is too old/applied/Russian to care, and my
university's CS people only seem to care about operating systems and
e-commerce. Can you recommend a logical starting place?

~~~
sdp
The equivalence seems to hold only when the program is complete. Thus, while
all proofs can be expressed as programs, not all programs can be expressed as
proofs.

~~~
13ren
Can't you restrict the domain, and so that the program is complete (for that
restricted domain)?

~~~
sdp
I meant correct, not complete.

I refer to the article on wikipedia which states: "A converse direction is to
use a program to extract a proof, given its correctness. This is only feasible
if the programming language the program is written for is very richly typed:
the development of such type systems has been partly motivated by the wish to
make the Curry-Howard correspondence practically relevant."

------
charrington
This is NOT "Google's Plop" - It is hosted by Google Code, along with
thousands of other open source projects. It was part of Google's Summer of
Code, as were dozens of other open source projects. Neither of these things
make it "Google's."

~~~
moshe
But it is! I really am lucky enough to get to do machine learning research at
Google and code in Common Lisp!

See <http://research.google.com/>. Another way you can tell that this is an
official Google project is the 'Google' label on the right-hand side of
<http://code.google.com/p/plop/>, which is only added to code developed at
Google that has been open-sourced.

Cheers!

~~~
icey
Maybe one day if you're bored, you could tell the rest of us how you were able
to swing a job at Google Research working with Lisp?

I don't know about these guys, but I've always been under the impression that
if you're at Google, you're using one of their "Big 4" languages.... Heck,
even Norvig is using Python! (I know, he was using it before he went there...
but still).

~~~
moshe
a) Not everyone in Google Research has a PhD, though of course there is a bit
of a correlation (also, plenty of "research" takes place in general
engineering) b) You do generally have to be very familiar with one of the Big
4 to get hired (C++ in my case) c) Plop is kind of a weird edge case insofar
as it is very long-term research, and really cries out to be implemented in a
language where you have the same features at compile-time and run-time, and
can conveniently represent and manipulate code as data (i.e. a Lisp). For
doing plop in any other language, your first task would be to implement these
features, which is rather a lot of work (believe me, I've tried ;->). For most
anything else one of the Big 4 would be used, for the reasons Steve Yegge
outlines...

~~~
cdibona
Also, before anyone gets too excited, Google generally doesn't go beyond Java,
C++ and Python. But we do have some special purpose languages internally, as
well.

Also, I don't have a PhD :-)

------
loumf
Wouldn't it be pretty odd to see a Lisp framework implemented in some other
way?

------
stcredzero
Plop was the name of another humor comic magazine along the lines of Mad and
Cracked. It was on newsstands in the very early 80s.

