
How Prolog was used to develop Erlang - MaysonL
http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.34.3972
======
neilc
Folks interested in using logic programming for building distributed systems
might be interested in some work my research group is doing: we've built
Hadoop, HDFS, and Paxos in a high-level distributed variant of Datalog, which
is another logic programming language in the same family as Prolog.

[http://www.eecs.berkeley.edu/Pubs/TechRpts/2009/EECS-2009-11...](http://www.eecs.berkeley.edu/Pubs/TechRpts/2009/EECS-2009-113.pdf)

<http://neilconway.org/docs/netdb2009_paxos.pdf>

------
silentbicycle
It sounds like, with a little over two pages of Prolog, he had a prototype of
a multi-threaded, message-passing DSL. With 1,100 lines of Prolog, he had the
other Erlang elements such as process supervision groups, error trapping,
tracing, etc.

They eventually rewrote it in C to make it faster, to remove some
counterproductive aspects of Prolog's semantics (in particular, logic
variables were being instantiated across the threads), and to change the
syntax a bit.

There's a good interview with him on SE-Radio ([http://se-
radio.net/podcast/2008-03/episode-89-joe-armstrong...](http://se-
radio.net/podcast/2008-03/episode-89-joe-armstrong-erlang)) that discusses the
original implementation, as well.

------
d3vvnull
Yeah. erlang certainly smells like prolog. ;)

