Work in progress.
This project describes a part of an ABI that looks like old-school Pascal, except that a hardware stack (or something emulating it) is much safer and faster. It does not need to change most high-level source code but compilers, libraries, linkers, processors etc. must account for:
- a software-defined data stack (to store the function's frame containing local variables)
- a hardware control-only stack (for call/return, looping or try/throw/catch for example).
The software data stack is a very old trick so nothing to say about it. The hardware stack however pulls a few tricks from its sleeves.
.
Implementations considered for #YGREC32 and #F-CPU.
Stay tuned.
So it was all Edsgar Dijkstra's fault !
https://www.youtube.com/watch?v=2vBVvQTTdXg
https://ics.uci.edu/~jajones/INF102-S18/readings/07_dijkstra.pdf
Dijkstra, E.W. (1960) Recursive Programming. Num. Mathematik, 2, 312-. 318.