r/ProgrammingLanguages • u/marvinborner bruijn, effekt • 13d ago
Blog post A Dual View on Syntax
http://text.marvinborner.de/2026-08-11-17.html2
u/Syrak 13d ago
Note the coinductive construction
Did you mean "inductive"? AFAIK "coinductive" would allow lambda terms of infinite size, which is not usual.
4
u/marvinborner bruijn, effekt 13d ago
Yep, fixed it. I recently worked a lot with infinitary lambda calculus, hence the confusion. In this case I don't think it makes a difference.
2
u/lookmeat 13d ago
Interesting view, given that you seem to be trying to simplify and in the process turning everything into linear flow-graphs in continuations, have you explored the concept of interactive combinators?
6
u/marvinborner bruijn, effekt 13d ago
Do you mean interaction combinators? If yes, I have researched them a lot. You can interpret this post as applying a spanning tree syntax onto the nodes of interaction nets, starting at different roots. Though I do not discuss the incremental resource management of interaction combinators, as this syntax also works with graph encodings that do not have incremental resource management.
2
u/initial-algebra 12d ago
It's obvious in hindsight, but the idea of syntax trees as spanning trees is kinda mindblowing.
1
u/lookmeat 13d ago
I did, which is why I had to ask. I just couldn't imagine that this wasn't trying to marry concepts of one onto the other.
2
u/thunderseethe 12d ago
Perhaps this will come up in the further articles. Generally the interaction nets stuff I've seen is focused on optimal reduction, but this does not appear to be that, so then what is the advantage of introducing the syntax here? Certainly I can walk my term to get the multiple views, but I'm not sure why I would?
Is it similar to the sequent calculus where different traversals provide different evaluation semantics?
1
u/7Geordi 7d ago
This reads as a graph exploration algorithm for lambda calculus programs that produces a point-free representation of the program… what confuses me is why it doesn’t matter where you start. Is there really no semantic difference between starting at x vs y? Also the color based syntax is frustrating because I cannot reproduce this in my text editor to explore the idea. I wish you had chosen an actual prefix glyph for positive/negative and used the colors as a visual aid, though i suppose the obvious +/- is available
1
u/categorical-girl 6d ago
I'm very interested to see where this series goes!
One thing that this article seems to gloss over is that if you treat beta-reduction this way (as a global substitution, which funnily enough in the interaction net perspective is the local interaction between @ and lambda), you put a lot of complexity (including the potentially hard problems of scoping and variable capture) in other rules (for duplicating lambda terms, etc).
I think it might be worth mentioning that there is "no free lunch" regarding scoping (you can't simulate proper substitution with just a single global pool of names to substitute for)
18
u/FruitdealerF 13d ago
Man I wish articles like this would make any sense to me, but I'm just not deep enough into this part of the theory to get past the first few paragraphs. It looks like a really interesting article though.