Skip to content

The Linda process coordination language written in Clojure.

Notifications You must be signed in to change notification settings

fdserr/clotilde

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

clotilde

Clotilde

Clotilde is a port of the Linda process coordination language, in an attempt at idiomatic Clojure.

"In computer science, Linda is a model of coordination and communication among several parallel processes operating upon objects stored in and retrieved from shared, virtual, associative memory. Linda was developed by David Gelernter and Nicholas Carriero at Yale University and is named for Linda Lovelace, an actress in the porn movie Deep Throat, a pun on Ada's tribute to Ada Lovelace." - Wikipedia -

Linda is a registered trademark of SCIENTIFIC Computing Associates, Inc.

Clotilde ( ~475-545* ) is the registered spouse of Clovis, and therefore is known to be the first ever queen of France. (*) Yes, 70 years old can be regarded as tough considering the era, and also her job, and especially the hubby.

Back to Linda... In order to get anything close to useful done with the language's four instructions (indeed 4: out, eval, rd, in), one needs some acquaintance with a small bunch of sparsely taught concepts such as tuple spaces or associative virtual memory, live data structures, and more generally "the game of parallelism". Fortunately, it's a matter of a couple of hours reading: HOW TO WRITE PARALLEL PROGRAMS: A FIRST COURSE , By Nicholas Carriero and David Gelernter ©1990 Massachusetts Institute of Technology , ISBN 0-262-03171-X. Well worth a read for anyone willing to program against more than a handful of cores, in any language. Especially when the book is short and unpedantic, and when it's freely available for browsing online, and when it can also be downloaded in pdf format. Great times we live in; if only Clotilde had html and pdf, she'd probably have gone centenarian. For deeper litterature on the topic (Linda, that is), see Science Direct (no, I havn't read all the references, and I won't, but some of these papers are really worth the time).

Credits

David Gelernter, Joe Armstrong, Rich Hickey: thank you for all those nights of mine you ruined.

Drew Colthorp: mucho thankies for all the nights of mine you saved; illumination! (matchure/fn-match).

Usage

Add a Leiningen depency to your project.clj:

(defproject your-project "0.0.1"
  :dependencies [[org.clojure/clojure "1.5.1"]
                 [clotilde "0.2.1-SNAPSHOT"]])

Add a :use clause to your namespace:

(ns your-project.core
  (:use clotilde.core    ;; API
        clotilde.tools   ;; utilities
        ))

For usage and instructions, see the program's documentation.

;; TODO: write documentation.

Kidding, the code is documented, and comes with tests; idiomatic Clojure ain't it?

Have fun.

License

Copyright (c) 2013 François De Serres, aka. Justiniac

Distributed under the Eclipse Public License, the same as Clojure.

About

The Linda process coordination language written in Clojure.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published