Live data from Hacker News

What did Ada Lovelace's program actually do? (2018)

twobithistory.org

31–40 of 138 posts

Re: What did Ada Lovelace's program actually do? (2018)

#31

Earlier quoted context omitted.

...or worked with any mathematicians/physicists/engineers who program. As soon as I saw that, I thought "typical quant". Like my dad (A chemical engineer) learned to program in FORTRAN, which used to insist variable names were 1 letter and up to 2 digits. He later learned Basic, but his code was still spiritually FORTRAN so the one-letter-two digits thing stuck. I thought that was just him but then much later I went…

That naming convention makes perfect sense to the mathematician, so why not? It's why we use `for(int i = i; i < n; i++)` in for loops; its the mathematical sigma sum of values with the same naming convention

The question to me always was, does it makes sense in the way of, it is intuitivly understandable, or does it only make sense, if it was drilled into you long enough?

(I suspect the latter)

Re: What did Ada Lovelace's program actually do? (2018)

#32
post #7

> In her “diagram of development,” Lovelace gives the fourth operation as v5 / v4. But the correct ordering here is v4 / v5. This may well have been a typesetting error and not an error in the program that Lovelace devised. All the same, this must be the oldest bug in computing. I marveled that, for ten minutes or so, unknowingly, I had wrestled with this first ever bug. The real mark of a non-trivial program is that…

[deleted]

Re: What did Ada Lovelace's program actually do? (2018)

#33

Earlier quoted context omitted.

The analytical engine wasn't a stored program computer. It most closely follows the Harvard architecture, with instructions read from punch card memory. The analytical engine's claim to fame is that it was the first Turing complete computer to be designed.

> with instructions read from punch card memory If that isn't a stored program, I don't know what is.

A stored program computer refers to the computer architecture where program instructions and data are stored in the same memory. This is also referred to as the Von Neumann architecture.

In contrast, a lot of early computers were built with separate instruction memory like punch cards. This is called the Harvard Architecture. If the instructions were immutable, which they usually were, then things like modifying the program at runtime were not possible.

Concrete examples of this difference is the Harvard Mk 1 and the Manchester Mk 1, the former being a Harvard architecture computer and the latter is a stored program computer or a von Neumann architecture.

Re: What did Ada Lovelace's program actually do? (2018)

#34

> In fact, aside from the profusion of variables with unhelpful names, the C translation of Lovelace’s program doesn’t look that alien at all. Clearly the author never met my coworkers.

I'm reminded of a high school programming class where a project partner named variables with the most crude and lewd words he could imagine. Not that I was prudish, but he unsurprisingly never remembered what "butts" was for and somehow never figured out why he kept getting confused by his own code.

Re: What did Ada Lovelace's program actually do? (2018)

#35

Has anyone built a virtual machine out of Babbage's instruction set and then tried Ada's program?

John Walker built a virtual machine for the Babbage's instruction set, and it has a web emulator: https://fourmilab.ch/babbage/emulator.html.

I don't think Ada program is available as an example though, so you'll need to input it manually.

Fun fact: my compiler course project was creating a C compiler targeting the emulator https://github.com/Christopher-Chianelli/ccpa (warning, said code is terrible).

Re: What did Ada Lovelace's program actually do? (2018)

#36
post #21

A really cool article. From the Intro: > She thought carefully about how operations could be organized into groups that could be repeated, thereby inventing the loop. She realized how important it was to track the state of variables as they changed, introducing a notation to illustrate those changes. As a programmer myself, I’m startled to see how much of what Lovelace was doing resembles the experience of writing so…

However much credit Ada deserves for her programming techniques, to me the thing that always stood out is her ability to see the big picture wrt computation: > Again, it [Analytical Engine] might act upon other things besides number, were objects found whose mutual fundamental relations could be expressed by those of the abstract science of operations, and which should be also susceptible of adaptations to the action…

Programmable looms (which used a type of punchcard) such as the Jacquard Loom had existed for a little while - if I recall she specifically referenced this as inspiration for some of her ideas. Not trying to diminish how impressive her work was, but I do believe some form of primitive mechanical computation had already been done for a little while.

Re: What did Ada Lovelace's program actually do? (2018)

#37

> The Difference Engine was not a computer, because all it did was add and subtract. The definition of computer is pretty grey for the pre-digital era, and it wasn't turing complete, but is it actually controversial whether it was a computer?

I don't think there is anything controversial here- the Difference Engine was a calculator that could only do a predefined set of hardwired computations, the Analytical Engine a true turing complete computer.

Re: What did Ada Lovelace's program actually do? (2018)

#38
post #6

Earlier quoted context omitted.

Probably not, it's stated in the TFA, the controversy is because Lovelace was a woman and some people think propping her up is basically a DEI retcon in history, the rest of us don't care. But I don't think it's anything whatsoever to do with actual computers

That's so funny... Mathematicians for 150 years: Ada Lovelace is kind of on top of it. Random from 2024: probably just a diversity footnote.

Funny indeed.Ada Lovelace has been persistantly recognised for a very long time, but has never been held up as a sufferget type mayrter, as by all accounts, she enjoyed herself out on the bleeding edge and is still making people uncomfortable 150 years after not fitting into any stereotypes then. Its clear from the footnotes that, whatever crowd around Babage and Lovelace, grasped the possibilities. Also interesting is that durring the apollo moon mission, the memory modules for the guidance computers were crafted by some of the last lace makers, working by hand, to survive the introduction of the jaquard looms and there punch cards.

Re: What did Ada Lovelace's program actually do? (2018)

#39
post #21

A really cool article. From the Intro: > She thought carefully about how operations could be organized into groups that could be repeated, thereby inventing the loop. She realized how important it was to track the state of variables as they changed, introducing a notation to illustrate those changes. As a programmer myself, I’m startled to see how much of what Lovelace was doing resembles the experience of writing so…

However much credit Ada deserves for her programming techniques, to me the thing that always stood out is her ability to see the big picture wrt computation: > Again, it [Analytical Engine] might act upon other things besides number, were objects found whose mutual fundamental relations could be expressed by those of the abstract science of operations, and which should be also susceptible of adaptations to the action…

Tide prediction machines came about 30 years later as an application of the "science of harmony".

Re: What did Ada Lovelace's program actually do? (2018)

#40
post #21

Earlier quoted context omitted.

However much credit Ada deserves for her programming techniques, to me the thing that always stood out is her ability to see the big picture wrt computation: > Again, it [Analytical Engine] might act upon other things besides number, were objects found whose mutual fundamental relations could be expressed by those of the abstract science of operations, and which should be also susceptible of adaptations to the action…

Programmable looms (which used a type of punchcard) such as the Jacquard Loom had existed for a little while - if I recall she specifically referenced this as inspiration for some of her ideas. Not trying to diminish how impressive her work was, but I do believe some form of primitive mechanical computation had already been done for a little while.

Jacquard loom was indeed well-known, and one of the sources of inspiration for Babbage, but it is still fundamentally about designing a system around a specific task - the cards directly encode operations on hooks.

What Ada is saying here is that, once you have a machine that let you do generic operations on numbers, you can use it to do all kinds of non-math stuff so long as you can come up with ways to encode other things as numbers (= finite sets of symbols). This was not at all obvious to other people who worked on the Engine, including Babbage himself.

Post reply on HN