Ask HN: What are some great examples of bi-directional diagram/code projects?

5 points by thesurlydev ↗ HN
I've always been interested in this space and there seem to be few examples. Specifically, I'm looking for an example that shows how to use something like codemirror and a drag and drop interface. A change in one would be reflected in the other.

10 comments

[ 2.6 ms ] story [ 32.2 ms ] thread
constructive bidirectional programming[a]: treesitter[0] used with emacs[1] neovim[2] python[2.2]

programming language boomerang, "A bidirectional programming language for ad-hoc, textual data"[b];

more traditional use in neural networks[c]

xsugar for dual syntax xml language[d]

piet-q exotic language interpretation (vs. program/application)[e] and/or q-code usage/application[f][g]

can have fun with coding in c in way that 2nd program can be extrapolated from gcc ast syntax tree[3]

scratch[4] bit simpler, but gis-piet[5] bit bigger.

Hitchhicker's guide to the galaxy keeps it pretty small/simple with '42'; which means really have to fully expand/uncompress/unwind everything to get anything done.

---

[a] https://www.youtube.com/watch?v=jy-dpzi8neQ

[0] https://tree-sitter.github.io/tree-sitter/

[1] https://www.masteringemacs.org/article/how-to-get-started-tr...

[2] https://github.com/nvim-treesitter/nvim-treesitter

[2.2] : https://github.com/tree-sitter/py-tree-sitter / https://github.com/tree-sitter/tree-sitter-python

---

[b] https://www.seas.upenn.edu/~harmony/

[c] : https://github.com/bigaidream-projects/bidirectional

[d] : https://www.brics.dk/xsugar/

[e] : https://esolangs.org/wiki/Piet-Q

[f] : https://stable-diffusion-art.com/qr-code/

[g] : https://artvizual.com/featured/interactive-qr-code-art-exper... / https://www.hongkiat.com/blog/qr-code-artworks/

---

[3] : http://icps.u-strasbg.fr/~pop/gcc-ast.html / https://stackoverflow.com/questions/54162940/understanding-f...

[4] : https://scratch.mit.edu/

[5] : https://dl.acm.org/doi/abs/10.1145/1317331.1317345

I've built a number of bidirectional editors, often with CodeMirror.

You could check out my bidirectional circuit design tool:

https://github.com/leomcelroy/svg-pcb

Paper on it here:

https://dl.acm.org/doi/abs/10.1145/3559400.3562004

Feel free to reach out if you have questions.