I had no idea how much of today's code carries ALGOL DNA.
And the reality is that these things haven't really changed much. Most of the changes that modern languages bring are in the way of directives to the compiler/interpreter.
The initial release of Fortran had loops and subroutines. But I don't think even they invented those things.
I'm not sure about dynamic allocation.