David Gelernter, "Generative Communication in Linda"

siiky

2023/12/06

2023/12/06

2023/12/06

whitepaper,distributed,programming

Introduction to the generative programming language Linda.

The language "is said to be generative because, until it is explicitly withdrawn, the tuple generated by A has an independent existence in TS".

ยง2.4.1, p.10-11: remote procedure call and remote procedure.

2023/10/06 chat on #chicken

01:08:03 <MD5:1d22> anyone know or read about "Linda"? from the/a paper's abstract: "Linda is fully distributed in space and distributed in time; it allows distributed sharing, continuation passing, and structured naming."

01:08:08 <MD5:1d22> https://doi.org/10.1145/2363.2433

01:08:32 <MD5:1312> Yes, Linda is a great design

01:08:56 <MD5:1d22> it sounds interesting, though from the abstract I don't understand what "generative communication" is supposed to be

01:09:33 <MD5:1d22> ok looks like I'll add it to the list, thanks MD5:1312

01:09:44 <MD5:1312> Basic idea is that you have processes of the ordinary kind, and then tuples that live in Lindaspace. A Linda process can write a tuple, read a tuple with pattern matching, or peek a tuple with pattern matching (leaving it in Linda space). Thassit. Very simple, very easy to understand.

01:10:27 <MD5:1312> So you can write tuples where one element is a service id, and then anyone who implpements that service can match on it and write a tuple with your personal service id

01:10:40 <MD5:1312> that is RPC

01:10:58 <MD5:1312> but you can do pipelines too, by using a pipe id and a sequence number

01:11:05 <MD5:1d22> hm sounds like a messy mailbox where anyone can send to and receive from

01:11:07 <MD5:1312> or literally anything else

01:11:11 <MD5:1312> Yes

01:11:18 <MD5:1d22> don't see that working IRL but maybe computers can do it

01:11:50 <MD5:1d22> cool, let's see

01:12:17 <MD5:1d22> I found it in the refs of "Sparrow: A DSL for Coordinating Large Groups of Heterogeneous Actors" (haven't read it yet, also on my list)

01:13:50 <MD5:1312> https://en.wikipedia.org/wiki/Linda_(coordination_language) is pretty clear and has good links

01:14:25 <MD5:1312> oh yes, you also have eval to start another process

01:14:40 <MD5:1d22> whoa 1985

01:14:46 <MD5:1d22> just noticed now the paper is so old

01:15:33 <MD5:1d22> MD5:1312: the continuations thing mentioned in the abstract is basically the pipeline thing you mentioned? or not related at all?

01:16:40 <MD5:1312> not sure why they mention continuation passing

01:17:45 <MD5:1312> https://www.cs.unc.edu/~stotts/COMP590-059-f21/slides/lindaGenerative.pdf is an open version (not slides, despite the URL)

01:18:22 <MD5:1d22> "naming it after Linda Lovelace, who appeared in the pornographic film Deep Throat" ok.jpeg

01:19:54 <MD5:1d22> it's available freely on ACM too