3 ms·
40,000 decimal numbers is about 16 KB of RAM (40K * log2(10) / 8). That’s 1980s home computer territory — there’s no way that amount of memory would have been n
by codeflo 5y ago
40,000 decimal numbers is about 16 KB of RAM (40K * log2(10) / 8). That’s 1980s home computer territory — there’s no way that amount of memory would have been needed for anything. (Given today’s understanding of efficient algorithms.)
- Animats 5y agoBabbage was perhaps thinking a bit too big. Also, the 40 or 50 digit decimal number thing comes partly from not being clear on how to manage scaling "However, by inserting an imaginary divider between the same two figure wheels of all variable number columns, thus making all coefficients and numbers within the Store possess the same number of decimal places, decimals could be used."[1] So there was one decimal point location for all memory locations. Babbage apparently didn't include a general shift function, which is necessary for rescaling results. If you can shift to discard low order digits, as on mechanical desk calculators, you need maybe 10 digits, and a 20 digit product register, so you can multiply two 10-digit numbers and then round off or truncate the result. Without that, you need a lot more digits to avoid overflow. So close... Useful programmable calculators from the 1970s had 20 to 100 memory locations, each capable of maybe 10 digits. A base Babbage machine with 200 digit wheels of memory, expandable to 1000, would probably have been feasible and moderately useful. Useful for cranking out navigation and gunnery tables, at least. Babbage's difference engine has about that much storage. So that was probably buildable as a minimum viable product. [1] https://cs.stanford.edu/people/eroberts/courses/soco/projects/1998-99/babbage/ana-mech.htm https://cs.stanford.edu/people/eroberts/courses/soco/project...
- codeflo 5y agoThat sounds like the fixed point representation is part of what causes the huge memory requirements. It's fascinating how obvious some ideas are in retrospect. Floating point is basically just scientific notation, which was well known AFAIK. But I can imagine that it's hard to make the transfer to use that as the representation for all calculations.
- djmips 5y agoI don't think it's hard. As a kid, I didn't know about floating point but derived it on my own. It seemed logical to just add another number that represented where the binary point was. I'm sure Babagge would have got there if his iteration time wasn't so slow. He really should have made a small general purpose computer as simple as possible just to experiment with.
- Animats 5y agoBabbage's work pre-dated mass production. Today, production people look at something like that, and ask "how many different parts"? Because banging out a lot of the same part has been a routine job for the last century. Babbage was too early for that. Parts required much hand work and craftsmanship. Metal part manufacturing did not scale yet. It was possible to build Babbage's parts using clockmaking techniques, but it would have required a lot of clockmakers. Ely Terry had a mass production clock business in the US by 1804, but the gears were wooden. Apprentices made rough clock wheels, and better workers finished them more precisely with hand tools. Precision stamping was still in the future, awaiting the widespread ability of steel in the 1880s. The Ingersoll dollar watch (1896), "The Watch that made the Dollar Famous", was probably the first high-volume mass produced product with part complexity and precision comparable to what Babbage needed. A few years later, the Computing-Tabulating-Recording company, the predecessor of IBM, was manufacturing the first commercial electromechanical computing devices in quantity. After that, there was steady progress. Those were the days when New England was to the world what Guangdong is now.
- fentonc 5y agoI believe his plans did include a general shift function - what he referred to as “stepping” up/down was just shifting by a digit
- Animats 5y agoRight. There's some question as to whether that was seen as a scaling operation or just as part of multiply or divide.[1] If you can scale into a reasonable range for each data type, you don't need 50 digits. But that's an abstraction which came decades after Babbage. [1] https://www.fourmilab.ch/babbage/cards.html https://www.fourmilab.ch/babbage/cards.html