David Gelernter, "Generative Communication in Linda"

siiky

2023/12/06

2023/12/06

2023/12/06

whitepaper,distributed,programming

https://doi.org/10.1145/2363.2433

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