Settings

Theme

Removing recursion via explicit callstack simulation

jnkr.tech

16 points by gsky 9 days ago · 4 comments

Reader

juancn 9 days ago

It can be done mechanically, it's essentially what a compiler does.

But yeah, it can be a useful technique, specially when there's tail recursion and the explicit stack just vanishes and the recursion turns into a plain old loop which the hardware just loves.

Panzerschrek 8 days ago

While coding recursive algorithms in C++ and Rust I have found, that they have some overhead due to performing recursive calls. Compilers can't inline such calls (with exception of tail-recursion). So, replacing recursion with manually-managed stack gives some performance boost. I am wondering why no major C++ compiler can do this for me automatically.

kinow 8 days ago

It is common in Python too. Reduces memory and eliminates stack errors in some cases. Althoughin Python I think the developer always needs to implement it and cannot rely on compiler/interpreter to optimize that.

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection