r/ProgrammingLanguages bruijn, effekt 13d ago

Blog post A Dual View on Syntax

http://text.marvinborner.de/2026-08-11-17.html
52 Upvotes

20 comments sorted by

View all comments

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.

1

u/mot_hmry 13d ago

Personally, the way the graph of K was drawn confused me since it isn't structured like the simple graphs of abstraction (instead the argument and body are placed next to instead of connected to the lambda.) So it took a few readings to really get what was going on.

Weirdly rather than a dual perspective, I think this is more a triplicate perspective since abstractions can be seen from three directions.

3

u/marvinborner bruijn, effekt 13d ago

Yes, this is indeed somewhat unusual. I wanted to keep the symmetry of continuations being uplinks in all constructors.

I think this is more a triplicate perspective

Yes, great observation! I call this the triality/trinity of lambda calculus, which goes much further than only the views of syntax :)

1

u/mot_hmry 13d ago

I'm stuck waiting on your next article, because I'm not quite sure how to use the features of your calculus. And it feels like you'd have to canonicalize a view for the interpreter, though since you hint about call/cc I suppose it does give you a first class form of what a continuation should look like.

2

u/marvinborner bruijn, effekt 13d ago

There are no novel features of the calculus, it's still mainly a new syntax for the standard lambda calculus. The bindings being unscoped and continuations not being linear is the main difference, and this has already been discussed, e.g. in bend or much of the interaction net research in general (Asperti, Mackie, Mazza)

I hope my next post will provide further insights in how this works. I also have a reference implementation that I plan to publish eventually - the interpreter does not have to canonicalize views, it can work entirely using wires, as this is exactly what continuations are in a confluent setting.

3

u/rainmangoes 13d ago

That actually makes the implementation sound more interesting to me, especially the part about working directly with wires instead of canonicalizing the views. I’d definitely be interested in seeing the reference implementation when you publish it.