Re:Forsp: A Forth+Lisp Hybrid Lambda Calculus Language
by um1 on Monday June 10, 2024 @09:26PM
(#40641284)
Very cool. I like that both lisp and forth were “discovered” and that this cvbp is more fundamental than both(?!). This reminds me of [pdf] https://dl.acm.org/doi/pdf/10.1145/181993.181999 and wonder if/how it relates.
[ Parent
| on HN ]
Re:Forsp: A Forth+Lisp Hybrid Lambda Calculus Language
by diffxx on Tuesday June 11, 2024 @12:08AM
(#40642224)
Thank for sharing that paper. I am currently implementing a compiler that has very similar ideas to those presented in it. It's very different syntactically, but the mental model is quite similar. It's simultaneously encouraging and discouraging to see your ideas reflected back to you from 30 years in the past :)
Re:Forsp: A Forth+Lisp Hybrid Lambda Calculus Language
by xorvoid on Tuesday June 11, 2024 @12:31AM
(#40642357)
Also thanks for sharing; looks interesting. I’ll read this when I have time and re-comment then. Off the bat: Forsp variables are definitely not linear.
Re:Forsp: A Forth+Lisp Hybrid Lambda Calculus Language
by boltzmann-brain on Tuesday June 11, 2024 @06:09AM
(#40644463)
what is cvbp? google yields nothing.
Re:Forsp: A Forth+Lisp Hybrid Lambda Calculus Language
by tonyg on Tuesday June 11, 2024 @06:24AM
(#40644551)
It's a typo for CBPV, Call-By-Push-Value.
Re:Forsp: A Forth+Lisp Hybrid Lambda Calculus Language
by boygobbo on Tuesday June 11, 2024 @06:25AM
(#40644553)
I think that was meant to be CBPV (Call-By-Push-Value)
Re:Forsp: A Forth+Lisp Hybrid Lambda Calculus Language
by alexisread on Tuesday June 11, 2024 @09:49AM
(#40646161)
Looks complicated to reason about, but really interesting.
Freeforth implements a similar mechanism to eliminate swaps via register renaming, obv. the focus is different in that Freeforth tries to still be an optimised stack, rather than a VLIW processor.
I guess you could look at this paper as a vector processor, similar to the way APLs handle things with function composition. In that, you'd need the compiler to take care of things as managing it manually would be a nightmare.
I guess the best way forward would be a specialized (forth) word lib which invokes the compiler to manage the top N stack cells for the duration of the word.