Is Libretto anyhow related to "interaction nets" and / or the Hume language? #87
Replies: 1 comment 1 reply
-
Implementing racing would require the non-deterministic extension of interaction nets. I don't see any mention of non-determinism in either of the linked projects (their front pages, that is). With non-deterministic extension in place, I tend to say "surely we could do that," because I don't see why not. Though my intuition is that any translation of Libretto to Interaction Nets will inevitably include elaboration of Libretto to a lower-level intermediate representation, which can then more readily be translated to Interaction Nets. Why the need for intermediate representation? case class Par[A1, A2, B1, B2](
f1: A1 -⚬ B1,
f2: A2 -⚬ B2,
) extends ((A1 ⊗ A2) -⚬ (B1 ⊗ B2)) This tells you that the Aside: In the current Libretto implementation, elaborating those abstract ports to concrete ports (like
On a high level, Libretto and Interaction Nets are similar:
I would say programming in Libretto is more high-level, and composing Libretto programs is more like composing functions. (YMMV) I don't really know about the Hume language. I can comment once I educate myself, or you can do that once you get more intuition about Libretto 😉 |
Beta Was this translation helpful? Give feedback.
-
I've seen the implementation of "interaction nets" in Libretto.
But would this also work the other way around? Implementing Libretto in terms of "interaction nets"?
This would open up the way to high performance asynchronous runtimes:
https://github.com/inpla/inpla
https://github.com/HigherOrderCO/HVM
Also Libretto reminded me somehow about the Hume language.
In both cases would be nice to learn more about the differences and similarities to Libretto.
I guess this would be also a nice to have in the docs! Some more comparison with similar approaches.
Beta Was this translation helpful? Give feedback.
All reactions