4 ms·
i think GP means that conceptually, you could imagine goto-ing to a function's code - they do compile to labels after all. fun note: C-- has something like tha
by uryga 6y ago
i think GP means that conceptually, you could imagine goto-ing to a function's code - they do compile to labels after all.
fun note: C-- has something like that! iirc it's like calling a function, but reusing the current stackframe:
jump f(expr1,. . .,exprn);
> "the `jump` statement performs a control jump but carrying parameters. It has as target [...] a procedure address and can optionally transfer arguments to that procedure."
https://www.microsoft.com/en-us/research/wp-content/uploads/1998/01/pal-manual.pdf https://www.microsoft.com/en-us/research/wp-content/uploads/...
- piscisaureus 6y agoThis is the first time I've heard about a language called C--, thank you for that. The concept is not so unique as you might think tho; the more commonly used term is "tail call".
- uryga 6y agoi always thought "tail call" means a function call that can be optimized in this way (located in a tail position), not the act of call-by-jumping itself. both uses make sense though re: C--, i think it's mostly used as a compiler IR. (notably in Haskell's GHC)