"Surely there must be a less primitive way of making big changes in the store than by pushing vast numbers of words back and forth through the von Neumann bottleneck"
http://www.cs.cmu.edu/~crary/819-f09/Backus78.pdf
"Surely there must be a less primitive way of making big changes in the store than by pushing vast numbers of words back and forth through the von Neumann bottleneck" 31 comments
@pry Backus talks about how the current CPU design hinders alternative ways of programming because they might not map well to the current CPU/RAM style architecture where you branch and jump to labels and things. That Bret Victor talk is excellent btw, I'm due for a rewatch. @neauoire I suppose I wonder what an alternative CPU / assembly model looks like? a stack machine? I don't really know what a functional cpu would look like. maybe I should look into lisp machines @pry alternatively, you can imagine a Thue-like computer where its only instruction is string replacement, and how that might look like. @pry You might want to look into OCCAM parallel computing, or Fredkin's BBM: http://cell-auto.com/bbm/2d/index.html Or, imagine a OISC that is just Fractran, its one task is to hold prime encoded numbers and multiply! There's so many cool designs out there to try. I'd love to see a combinatory computer where opcodes are permutations of the combinatorics :mocking: Or ternary! http://wiki.xxiivv.com/docs/dssp.txt Or linear! https://plover.com/~mjd/misc/hbaker-archive/ReverseGC.html @neauoire yea idk hardware design for these sorts of models is such a fascinating problem. this summer I'll be working at a company designing CPUs (am just doing software simulation work) but I rlly do want to spend some more time thinking about alternate methods of instantiating computation in hardware @neauoire ooh I have been meaning to look into SECD and yea just checked and the paper mentions Mago which looks like it might be another thread to look into @neauoire @pry recommended talk on another way of building computers https://www.youtube.com/watch?v=aXVUoT_objA @neauoire what about interaction nets in hardware ? (found here : https://twitter.com/VictorTaelin/status/1605384601236606977) @maxime_andre yeah these articles suck, I'm always just like "GIVE ME THE LISP VERSION" so I can get on with my life @maxime_andre for interaction nets, I'd be like "SHOW ME THE HASKELL VERSION" so I can get on with my life.. same difference. @maxime_andre I've tried to implement Lamping's graph reduction in uxntal, I've noodled with pretty much every one of these programs: https://github.com/HigherOrderCO/Wikind I've ran their little webserver thing and got the tictactoe program to show @maxime_andre I'm only superficially interested in this stuff, I mean, it's cool and everything -- I like to read about alternative ways of doing combinatory logic, I'm always looking for things that I couldn't do in uxn, that I might draw inspiration from. I think I also just like running these types of programs that are easy to reflect about. I think so far, the most accessible implementation of interaction net is Inpla, I've been thinking about making a visual editor for it. @maxime_andre Did you ever read Shinya's thesis? http://sro.sussex.ac.uk/id/eprint/54469/1/Sato%2C_Shinya.pdf @neauoire yes this morning during breakfast π . and another time a couple of weeks ago iirc (or maybe it was another paper, but related to inpla) @maxime_andre When I read it, I was like okay, I need a graphical editor for this. It'll be so nice to see the graph instead of using textual representation, for once, this would make sense. A lot of folks are interested in flow-based programming but mapping over non-structural programming, this would be the ideal candidate. @maxime_andre Just stumbled on a pdf that is basically a focused version of Shinya's chapter 5(LL0) implementation! @neauoire ah yes this one is more readable :) @neauoire ok ok, on my side i've tried to implement the graph reduction too, but i have not played with the examples. I'd like to understand how it works, and build my little toy. I've managed to calculate 2^2, 2+2 in church encoding, but it starts to be a little boring. I've not implemented the inet -> lambda translation to show the result. |
@neauoire I love that paper a lot and also the talk "the future of programming" by Bret Victor
lots of great ideas from the past that still have not been adopted.
I don't really know very much about this but it feels like part of the problem is how CPUs are designed. we have extremely fast out of order processors connected to a very large and complex memory hierarchy
unless of course the paper is just talking about programming style. but idk it's much harder for me to map functional programming to assembly or what hardware does
@neauoire I love that paper a lot and also the talk "the future of programming" by Bret Victor
lots of great ideas from the past that still have not been adopted.
I don't really know very much about this but it feels like part of the problem is how CPUs are designed. we have extremely fast out of order processors connected to a very large and complex memory hierarchy