On Oct 12, 2022, at 12:01 PM, ron minnich <rminnich@gmail.com> wrote:

I know branch and link was in the 360; was it earlier? And ... anybody know who invented it?

This came up in a risc-v meeting just now :-) My claim is that if anybody knows, they will  be in this group.

Zuse Z4 had instructions to jump to a subprogram and back. Unclear if they were in the original Z4 (1945) or were added later. Or how it was done.

https://cacm.acm.org/blogs/blog-cacm/247521-discovery-user-manual-of-the-oldest-surviving-computer-in-the-world/fulltext

Turing's ACE (1946) computer had BURY and UNBURY that push and pop a subroutine's return address from a ptr held in TS31. TS1..TS32 were "temporary storage" registers each in a recirculating memory (mercury delay line?) with a cycle time of 32µs. The paper referenced below says BURY and UNBURY were subroutines but I wonder if they were macros.

From the "Turing and ACE, Lessons from a 1946 Computer Design" paper, "Inventing this concept in late 1945 was a truly amazing achievement, perhaps inspired by the recursive function theory which Turing had learnt from the work of Church, and by a slight knowledge of the nineteenth century work of Babbage."