The interesting part of this talk however was this: the Z3 did support neither loops nor conditional branches per se! Instead, it could just compute a series of mathematical operations encoded on a punched tape.
To simulate the case statement without the conditional branching, the trick you do is you execute every branch of the case-statement each time, but you only allow one of the branches to write the results of its computation back to the machine's memory.
But how do you get a while-loop? Well, you just glue the ends of the punch tape together! ;-)
(More details here: http://www.zib.de/zuse/Inhalt/Kommentare/Html/0684/universal...)
"The Z1 was a mechanical computer designed by Konrad Zuse from 1935 to 1936 and built by him from 1936 to 1938."
and
"The Atanasoff–Berry Computer (ABC) was...conceived in 1937, the machine was not programmable, being designed only to solve systems of linear equations. It was successfully tested in 1942."
http://en.wikipedia.org/wiki/Small-Scale_Experimental_Machin...
[1]http://www.amazon.com/First-Computers--History-Architectures...