Lucid, Gipsy paper

While re-reading some Alan Kay goodness, I was urged on to try to find information on Lucid, which led me to Gipsy. Unfortunately not a lot turned up. I did find a Masters thesis which talks about them plus Java (!?) which I now have to find time to actually read. Anybody know much about any of this?

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Links about Lucid

The Wikipedia article on Lucid has both a nice introduction and some links to interesting pages (including publications and some implementations). A good search term is also "intensional programming".

I think I have heard about Lucid many years ago, while studying dataflow architectures and languages. I have recently re-discovered it by stumbling upon a paper about a new technique for implementing lazy Haskell-like languages, by translation to a Lucid-like language. One interesting thing about this technique is that it seems to require no garbage collection for implementing laziness (GC would still be required, of course, for supporting dynamic structures like lists and trees). Unfortunately, it is still on my to-do list to study the paper in detail, and see how exactly it does its magic.

Lucian: Dataflow and Object Orientation

You might find the Lucian language of interest. Lucian is supposed to incorporate dataflow ideas from Lucid with Object Oriented concepts.

Dominic Orchard, the designer, started it as an undergraduate project (he blogged his progress).

I don't think he proceeded much with the language after graduation, but I know that recently he gave a talk about it, in BCTCS '09.

I don't know how many references to Lucid these links will yield, though.

Lucid Synchrone

For a more "modern" and functional flavour of Lucid, you should look into Lucid Synchrone. It is an extension of Lucid with higher-order functions, (inferred) typing, interesting static checking of some properties and programming constructs coming from control-oriented synchronous languages. It serves as a basis for the current SCADE compiler.

See Marc Pouzet's papers and the introduction to Lucid Synchrone in the v3 reference manual.