Re:Bryan Cantrill interviews Arthur Whitney (2009)
by refset on Monday December 02, 2019 @01:03AM
(#21680181)
I believe Aaron Hsu's work on tree processing for Co-dfns [0] is a novel example of tree handling - a data parallel compiler for efficient compilation on a GPU using extensive tree-oriented "nanopass" transformations [1].
Re:Bryan Cantrill interviews Arthur Whitney (2009)
by akkartik on Monday December 02, 2019 @01:36AM
(#21680316)
Holy crap, that video is mind-blowing. Thank you! I was vaguely aware of Co-dfns before, but now it's squarely on my radar.
Re:Bryan Cantrill interviews Arthur Whitney (2009)
by geocar on Monday December 02, 2019 @03:15AM
(#21680743)
If you have cycles in your graph, you can build a tree out of a vector of indices, or as a table of parent/child node keys. The former is what John Scholes does[1], and the latter has plenty of common SQL examples.
[1]: https://youtu.be/DsZdfnlh_d0
If you have a non-cyclic tree (e.g. a 256-trie) you can nest it directly: @/ will traverse to nodes, and COW keeps updates from trashing memory too much.
However trees are rarely the best data structure: Binary search on a sorted list can beat b-trees simply because the end of the search will already be in cache, so for a routing table of IP address ranges, I use something like:
ipStart where ipStart bin x
Re:Bryan Cantrill interviews Arthur Whitney (2009)
by vchak1 on Monday December 02, 2019 @01:12AM
(#21680212)
John Earnest also details how trees are handled in K (an array based language invented by Arthur Whitney).
https://github.com/JohnEarnest/ok/blob/gh-pages/docs/Trees.m...
Re:Bryan Cantrill interviews Arthur Whitney (2009)
by RodgerTheGreat on Monday December 02, 2019 @01:35AM
(#21680313)
I also wrote a paper about recursive combinators which touches on these ideas a bit: http://archive.vector.org.uk/art10501740
And I translated some of Aaron Hsu's APL ideas into k5. With a little massaging they work just as well: https://github.com/JohnEarnest/ok/blob/gh-pages/examples/key...
Does anybody know how array languages handle pointers and trees?