Hacker News new | ask | show | jobs
by hackerbabz 2857 days ago
> she made groups of operations and in the text of her note specified when they should repeat.

Does anyone know what "should repeat" means? Was the machine capable of repeating or does this mean the human operator needed to do the repeating?

3 comments

Babbage's notes describe what we would call branch-if-zero and branch-if-negative instructions which you could use to implement repetition. Control flow was the least well developed part of the instruction set though, presumably because it would be trivial to implement compared to the arithmetic operations so it could wait.

If you're interested in that kind of thing I wrote a description of the entire instruction set a while back: http://h14s.p5r.org/2012/11/punched-cards.html.

Having just spent the last half hour on your blog I'm even more impressed by what the pair of them achieved.

Thanks for the in-depth, and wonderfully clear write-up.

The Analytical Engine was Turing complete so loops and conditionals would have been possible, but Babbage didn't get near building it.

The London Science Museum built a fully working Difference Engine, to Victorian tolerances so it could have actually worked.

I heard of a project to build a modern working replica but I don't know if anything ever came of it.

That would be https://plan28.org/ which I'm involved in. Blog for updates: http://blog.plan28.org/
Thanks! Nice to see it's still progressing.
You can see the exact 'program' here [1].

It's really just a series of mathematical steps with a store of values in between. Notions that would have clearly taken it from being a series of mathematical steps, to a program, such as branching, looping, or jumping are left completely unspecified. So her 'loop' was specified literally as "here follows a repetition of operations 13-23".

In other words, "should repeat" is left an as exercise to the reader.

[1] - https://i.imgur.com/HSWjbUl.jpg

It's easy to be dismissive from today's perspective, but I think it adequately conveys the algorithm. As I don't think Babbage ever published an instruction set I'm not sure it could have gone a lot further.