1 00:00:13,745 --> 00:00:16,205 I'm a professor at Rawl Holloway. 2 00:00:16,205 --> 00:00:19,635 I'm going to shift the level of discourse 3 00:00:19,635 --> 00:00:22,655 away from how the individual programs work. 4 00:00:22,655 --> 00:00:24,735 Can you hear me now? 5 00:00:24,735 --> 00:00:25,325 >> Yes. 6 00:00:25,325 --> 00:00:29,545 >> How the individual programs work and indeed how the individual machines work. 7 00:00:29,545 --> 00:00:32,835 Because my interest is in, really, how the machines came to be. 8 00:00:32,835 --> 00:00:35,745 How were those individual designs captured and 9 00:00:35,745 --> 00:00:39,395 marshalled together into these very complex objects. 10 00:00:39,395 --> 00:00:42,735 So my main goal is to 11 00:00:42,735 --> 00:00:47,275 help you get some insight into the diagram that is behind the figure wheel there. 12 00:00:47,275 --> 00:00:52,715 Which captures a description of the causal chain within the printer, which 13 00:00:52,715 --> 00:00:56,515 was designed both the analytical engine and for difference engine number two. 14 00:00:56,515 --> 00:01:00,515 And that physical printer you can go and view in the science museum. 15 00:01:00,515 --> 00:01:01,895 Now because I stand between you and 16 00:01:01,895 --> 00:01:06,720 lunch, and we're clearly over-running, I'm gonna show my last slide first. 17 00:01:06,720 --> 00:01:12,035 >> [LAUGH] >> Because it contains an invitation. 18 00:01:12,035 --> 00:01:12,995 >> Elizabeth Scott and 19 00:01:12,995 --> 00:01:17,505 I have a table set up outside which has got this device on it. 20 00:01:17,505 --> 00:01:19,465 And you're very welcome to come and play with it, 21 00:01:19,465 --> 00:01:22,745 because it will add together your two favorite numbers, 22 00:01:22,745 --> 00:01:26,545 as long as they are single digit numbers, >> [LAUGH] 23 00:01:26,545 --> 00:01:28,475 >> And it is a direct representation 24 00:01:28,475 --> 00:01:30,895 of the atom mechanism from difference engine number two. 25 00:01:30,895 --> 00:01:34,655 Which is related to the kinds of adding mechanisms that would have been used in 26 00:01:34,655 --> 00:01:37,605 the analytical engine, and we can explain to you how it works and 27 00:01:37,605 --> 00:01:38,785 you can have a play with it. 28 00:01:38,785 --> 00:01:42,145 So why don't you come and talk to us, we'll be there in the breaks both today 29 00:01:42,145 --> 00:01:44,255 and tomorrow, there's plenty of opportunity. 30 00:01:44,255 --> 00:01:46,325 If I'm allowed I'll even bring it along and 31 00:01:46,325 --> 00:01:48,935 have it on the table at dinner this evening. 32 00:01:48,935 --> 00:01:52,545 Okay, so now, let me get on to what I really wanna talk about. 33 00:01:52,545 --> 00:01:56,765 Now I'll leave this up for you to read while I'm speaking. 34 00:01:56,765 --> 00:01:58,775 I study formal languages. 35 00:01:58,775 --> 00:02:02,365 That means languages which are more or less mathematically specified, 36 00:02:02,365 --> 00:02:04,615 both the syntax and the semantics. 37 00:02:04,615 --> 00:02:07,365 In practice, that means programming languages. 38 00:02:07,365 --> 00:02:12,185 It means mathematical symbolism, it means some aspects of network protocols, and 39 00:02:12,185 --> 00:02:16,915 it means in particular, a curious byway in the field of formal languages, 40 00:02:16,915 --> 00:02:19,595 which are hardware description languages. 41 00:02:19,595 --> 00:02:22,215 Now hardware description languages are little known, 42 00:02:22,215 --> 00:02:24,335 but are incredibly important. 43 00:02:24,335 --> 00:02:27,505 Because our modern technology really rests on the achievement 44 00:02:27,505 --> 00:02:29,425 of hardware description languages. 45 00:02:29,425 --> 00:02:34,635 A modern high end integrated circuit has on it one transistor for 46 00:02:34,635 --> 00:02:36,635 every person on this planet. 47 00:02:36,635 --> 00:02:38,815 Now anybody who hears that for the first time and 48 00:02:38,815 --> 00:02:42,205 is not shocked is not paying attention. 49 00:02:42,205 --> 00:02:47,875 How on earth could you possibly marshal the geometry and the inter connections 50 00:02:47,875 --> 00:02:51,515 in a structure which is as complex as the population of the planet? 51 00:02:51,515 --> 00:02:52,865 How do you do that? 52 00:02:52,865 --> 00:02:55,885 And hardware description languages are how you do it. 53 00:02:55,885 --> 00:02:59,405 You use techniques from software engineering, where we use hierarchy and 54 00:02:59,405 --> 00:03:04,285 abstraction to enable the designer to focus on a particular part of the machine, 55 00:03:04,285 --> 00:03:06,685 a particular level of the machine at any one time. 56 00:03:06,685 --> 00:03:09,125 And, you also use new ideas. 57 00:03:09,125 --> 00:03:11,355 Idea's which I call faceting. 58 00:03:11,355 --> 00:03:15,535 What we do is bring together multiple descriptions of the same piece of 59 00:03:15,535 --> 00:03:19,805 hardware, its interconnectivity, its geometry. 60 00:03:19,805 --> 00:03:21,295 The intent of its behavior. 61 00:03:21,295 --> 00:03:23,185 And we have these things in parallel. 62 00:03:23,185 --> 00:03:25,865 And hardware description language works so 63 00:03:25,865 --> 00:03:31,345 as to enable you to check the internal consistency of those descriptions. 64 00:03:31,345 --> 00:03:34,095 Now the use of hardware description languages is quite recent. 65 00:03:34,095 --> 00:03:38,195 When I started as a young academic in the mid-1980s. 66 00:03:38,195 --> 00:03:41,275 It was still something that you had to persuade 67 00:03:41,275 --> 00:03:43,075 hardcore electronic engineers to do. 68 00:03:43,075 --> 00:03:46,305 Because they could still just about cope with the complexity of 69 00:03:46,305 --> 00:03:50,005 the systems they were designing by drawing pictures. 70 00:03:50,005 --> 00:03:53,195 But that battle was won. 71 00:03:53,195 --> 00:03:56,675 And these days, I think almost nobody designs high end hardware without 72 00:03:56,675 --> 00:03:58,435 using hardware description language. 73 00:03:58,435 --> 00:04:02,545 As an aside, one of the two dominant hardware description languages 74 00:04:02,545 --> 00:04:05,465 called VHDL, is derived from the language called ADA, 75 00:04:05,465 --> 00:04:10,515 which you'll hear about this afteroon, it's just a little historical accident. 76 00:04:10,515 --> 00:04:15,385 So, the thing that is interesting is that Charles Babbage, 77 00:04:15,385 --> 00:04:20,295 as well as well as being the pioneer of computing, as well as being an embryonic 78 00:04:20,295 --> 00:04:25,105 figure in economics, as well as all the other strange rocks that you lift and 79 00:04:25,105 --> 00:04:27,980 there is Babbage smiling at you, this anachronistic figure. 80 00:04:27,980 --> 00:04:29,355 >> [LAUGH] >> He invented hardware 81 00:04:29,355 --> 00:04:31,125 description languages. 82 00:04:31,125 --> 00:04:34,662 And I don't think this is widely known fact, which is great for 83 00:04:34,662 --> 00:04:38,801 me because it enabled me to extract a very large amount of information from 84 00:04:38,801 --> 00:04:42,123 the trust to run a research project on this topic. 85 00:04:42,123 --> 00:04:47,245 It is clear that Babbage was fixated on notation throughout his life. 86 00:04:47,245 --> 00:04:54,705 We don't have time to do biographies of Babbage here but Dubby has it here. 87 00:04:54,705 --> 00:04:57,995 The Leibnizian notation that we use for 88 00:04:57,995 --> 00:05:03,055 differential calculus essentially is in our current usage, because 89 00:05:03,055 --> 00:05:06,915 Babbage went to war with the authorities at Cambridge as an undergraduate. 90 00:05:06,915 --> 00:05:09,635 And that battle was won very quickly. 91 00:05:09,635 --> 00:05:13,875 So notation was always central to Babbage's ideas. 92 00:05:13,875 --> 00:05:18,785 Now, writing 80 or 90 years after this picture of Babbage was taken, 93 00:05:18,785 --> 00:05:21,085 Bertrand Russell said something quite interesting. 94 00:05:21,085 --> 00:05:24,735 It's a common place that ordinary language is too ambiguous to 95 00:05:24,735 --> 00:05:29,915 enable us to specify electronic and mathematical systems. 96 00:05:29,915 --> 00:05:34,105 Russell makes the very excellent point that only mathematicians, mathematics, and 97 00:05:34,105 --> 00:05:38,805 mathematical logic can say as little as a physicist needs to say. 98 00:05:38,805 --> 00:05:43,175 This idea that what we are going to do is strict, meaning out of symbols, so 99 00:05:43,175 --> 00:05:44,695 as to deliver precision and 100 00:05:44,695 --> 00:05:49,305 insight, Is absolutely at the heart of what we do in mathematics and 101 00:05:49,305 --> 00:05:52,885 in computing, and all other forms of it or other forms of engineering. 102 00:05:52,885 --> 00:05:57,855 Now for the folk in the audience who are not engineering and 103 00:05:57,855 --> 00:06:01,445 mathematically oriented, I want to make absolutely 104 00:06:01,445 --> 00:06:04,695 clear that this got nothing to do with linguistic relativism. 105 00:06:04,695 --> 00:06:09,705 Concepts which was satirized so ablely by Orwell in 1984. 106 00:06:09,705 --> 00:06:12,235 It's always seemed to me, that anybody that reads that paragraph, 107 00:06:12,235 --> 00:06:16,566 this is a quote from Simon in 1984, explaining what is. 108 00:06:16,566 --> 00:06:20,174 Anybody that reads that, and doesn't think it's nonsense, isn't paying attention. 109 00:06:20,174 --> 00:06:26,845 Because the with which humans create words and terminology is outstanding. 110 00:06:26,845 --> 00:06:30,725 I'm sure you can create a language where people won't say out loud anything 111 00:06:30,725 --> 00:06:32,925 that the thought police won't come after you for. 112 00:06:32,925 --> 00:06:35,985 But the idea that you could actually erase modes of thought, 113 00:06:35,985 --> 00:06:40,280 by restricting It was vocabulary, I think is bizarre. 114 00:06:40,280 --> 00:06:43,960 And functionally, I think, is not a common, not a commonly 115 00:06:43,960 --> 00:06:48,800 supported mode in natural linguistics at the moment. 116 00:06:48,800 --> 00:06:55,655 Orwell, himself, wrote a couple years previously, in almost opposite terms. 117 00:06:55,655 --> 00:06:57,525 I have to be very careful about saying things like this, 118 00:06:57,525 --> 00:07:00,740 because linguists are famous for their viciousness of their debates. 119 00:07:00,740 --> 00:07:02,055 >> [LAUGHTER] >> And I don't want, 120 00:07:02,055 --> 00:07:04,565 I do not wish to have any bricks thrown at my head. 121 00:07:04,565 --> 00:07:07,875 And as Pinker says here you wouldn't believe the kind of hate mail he 122 00:07:07,875 --> 00:07:10,095 gets just from his work on irregular verbs. 123 00:07:10,095 --> 00:07:12,785 So I'm keeping right off human linguistics. 124 00:07:12,785 --> 00:07:15,595 The only reason for putting this slide up, is to tell you that I am not 125 00:07:15,595 --> 00:07:20,155 talking about linguistic relativism, I'm talking about something different. 126 00:07:20,155 --> 00:07:23,625 Now the project that I mentioned earlier comprises these four folk here, and 127 00:07:23,625 --> 00:07:26,205 I want to give full acknowledgement to them. 128 00:07:26,205 --> 00:07:28,995 Doran Swade on the end there. 129 00:07:28,995 --> 00:07:32,055 I met Doran 25 years ago, when I turned up at the science museum to 130 00:07:32,055 --> 00:07:34,445 hear about efforts in the conservation of early computers. 131 00:07:34,445 --> 00:07:38,485 and he and I worked together on a variety of projects, and into earlier 132 00:07:38,485 --> 00:07:42,105 he showed me the difference engine which is under construction at that time and 133 00:07:42,105 --> 00:07:45,335 began to talk to me about Babbage's work. 134 00:07:45,335 --> 00:07:48,855 And for me the central questions was, What!? 135 00:07:48,855 --> 00:07:50,825 How can this possibly be? 136 00:07:50,825 --> 00:07:54,695 Anybody who encountered Babbage's work For 137 00:07:54,695 --> 00:07:57,225 the first time without perspective in the 21st century. 138 00:07:57,225 --> 00:08:00,495 And isn't shocked, isn't paying attention. 139 00:08:00,495 --> 00:08:02,065 And they should be shocked for two reasons. 140 00:08:02,065 --> 00:08:04,345 Firstly because the machinery exists and 141 00:08:04,345 --> 00:08:08,335 secondly because it does not connect through our technology. 142 00:08:08,335 --> 00:08:11,135 Doren has this glorious phrase which he calls Babbage 143 00:08:11,135 --> 00:08:13,235 the great uncle of computing. 144 00:08:13,235 --> 00:08:16,345 As this notion of something really important going on over there, 145 00:08:16,345 --> 00:08:21,265 but there is no dissident connection to the current generation of children. 146 00:08:21,265 --> 00:08:25,515 It is astonishing as much that Babbage's machines existed, 147 00:08:25,515 --> 00:08:29,435 it is astonishing the stuff disappeared again. 148 00:08:29,435 --> 00:08:32,355 And the study we're doing does throw a little bit of insight as to why that is 149 00:08:32,355 --> 00:08:34,945 so, so the people in the team, there's Doren at the end, 150 00:08:34,945 --> 00:08:38,015 there's some weird guy there in a sweatshirt. 151 00:08:38,015 --> 00:08:41,895 Professor Elizabeth Scott who you can meet outside, and Doctor Pierce Plumber who is 152 00:08:41,895 --> 00:08:46,445 a very fine mechanical electronic engine here,who has designed and built some of 153 00:08:46,445 --> 00:08:52,855 the alternate Babbagery systems that we're playing with us part of our project. 154 00:08:52,855 --> 00:08:54,285 Now I want to show you some timelines, 155 00:08:54,285 --> 00:08:59,505 and just skit it through some of the machines so you can get a feel for them. 156 00:08:59,505 --> 00:09:02,455 The reason that I like to put this slide up, is because it is a common 157 00:09:02,455 --> 00:09:06,445 place that Babbage is this anachronistic Victorian engineer. 158 00:09:06,445 --> 00:09:07,255 He's no such thing. 159 00:09:07,255 --> 00:09:09,455 He's an anachronistic Georgian engineer. 160 00:09:09,455 --> 00:09:11,075 This is not Victorian engineering. 161 00:09:11,075 --> 00:09:13,685 >> [LAUGH] >> This is Georgian engineering. 162 00:09:13,685 --> 00:09:18,165 By the time Victoria concedes to mount the throne, 163 00:09:18,165 --> 00:09:21,175 the whole difference engine one project has been and gone. 164 00:09:21,175 --> 00:09:22,955 Work on the analytical engine has begun. 165 00:09:22,955 --> 00:09:24,565 The concepts and 166 00:09:24,565 --> 00:09:27,795 the ideas that we've been talking about today are already well in place. 167 00:09:27,795 --> 00:09:34,145 The other thing I want to draw to you attention is that Babbage had a son. 168 00:09:34,145 --> 00:09:37,805 To whom, well he had several sons, we'll come to that in a moment. 169 00:09:37,805 --> 00:09:41,745 He bequeathed his equipment and much of his knowledge and Henry Prevost Babbage 170 00:09:41,745 --> 00:09:45,495 continued his work after Babbage's death, really right up to the first world war. 171 00:09:45,495 --> 00:09:48,395 So this is really a very, very long development program indeed 172 00:09:48,395 --> 00:09:53,305 that we're talking about, 50 years of Babbage, and then more years of the son. 173 00:09:53,305 --> 00:09:56,085 It's not clear that the son really moves thing forward any more, 174 00:09:56,085 --> 00:09:57,955 he did a few things that are important. 175 00:09:57,955 --> 00:10:01,255 He constructed some small test pieces, much like the one that I can 176 00:10:01,255 --> 00:10:04,035 show you outside and let you play with, conceptually at least. 177 00:10:04,035 --> 00:10:07,065 And they were distributed to major institutions of learning. 178 00:10:07,065 --> 00:10:11,795 There's one in the Oxford history of the History of science. 179 00:10:11,795 --> 00:10:13,275 One went to Harvard. 180 00:10:13,275 --> 00:10:17,485 And one is sitting in fact at the moment in the Science Museum in London, 181 00:10:17,485 --> 00:10:20,245 where difference engine number one normally lives because DE1 is 182 00:10:20,245 --> 00:10:23,165 being moved upstairs for the Ada exhibition. 183 00:10:23,165 --> 00:10:24,988 So if you're in London you can go and have a look at one. 184 00:10:24,988 --> 00:10:29,265 [COUGH] The other thing I want to draw your attention to 185 00:10:29,265 --> 00:10:32,315 Is the relative timing of the pieces of work. 186 00:10:32,315 --> 00:10:36,575 Now Difference Engine Number One is a project that failed. 187 00:10:36,575 --> 00:10:40,005 It failed not because the engineering was impossible, but perhaps 188 00:10:40,005 --> 00:10:43,295 because the engineering organization was beyond what was possible for the time. 189 00:10:43,295 --> 00:10:45,895 Or possibly because Babbage was being ripped off. 190 00:10:45,895 --> 00:10:46,585 Discuss. 191 00:10:46,585 --> 00:10:47,170 Not my job. 192 00:10:47,170 --> 00:10:51,957 >> [LAUGH] >> It failed, but immediately thereafter, 193 00:10:51,957 --> 00:10:55,615 Babbage's vision expanded towards generalizations 194 00:10:55,615 --> 00:11:00,001 of the polynomial computation that the Difference Engine does. 195 00:11:00,001 --> 00:11:05,047 It's clear that Babbage was haunted by the failure of that early project. 196 00:11:05,047 --> 00:11:09,090 And towards the middle of the analytical engine development, 197 00:11:09,090 --> 00:11:12,415 Babbage re-implemented the same architecture. 198 00:11:12,415 --> 00:11:16,845 Probably the first example in history of a range of machines where an architecture 199 00:11:16,845 --> 00:11:18,525 has two physical manifestations. 200 00:11:18,525 --> 00:11:23,715 So Fred Brooks, move over. 201 00:11:23,715 --> 00:11:27,265 He reimplemented the Difference Engine architecture using the new ideas and 202 00:11:27,265 --> 00:11:31,305 technology that he developed whilst thinking about the analytical engine. 203 00:11:31,305 --> 00:11:35,255 And the heck line result is that the number of pulse goes down by the factor 3. 204 00:11:35,255 --> 00:11:39,865 So, the complete Difference Engine number One ran about 24 thousand pulse. 205 00:11:39,865 --> 00:11:42,353 Difference Engine number two, about 8,000 parts. 206 00:11:42,353 --> 00:11:45,405 The analytical engine, well put a wet finger in the air, 207 00:11:45,405 --> 00:11:46,445 how many registers do you want? 208 00:11:46,445 --> 00:11:48,115 Do you see these numbers are quite large? 209 00:11:48,115 --> 00:11:51,495 They're not as large as the population of the planet, but I don't know 210 00:11:51,495 --> 00:11:56,395 how good you are at holding the details of 24,000 things in your head at once. 211 00:11:56,395 --> 00:12:01,155 It's an extraordinary intellectual achievement at how it is done. 212 00:12:01,155 --> 00:12:04,695 Let's skip through some material very quickly. 213 00:12:04,695 --> 00:12:07,905 I wanna just, because I'm gonna talk about collaboration in a moment. 214 00:12:07,905 --> 00:12:10,635 I wanna talk briefly about Babbage's character. 215 00:12:10,635 --> 00:12:15,805 You see here the list of Babbage's children with their births and deaths. 216 00:12:15,805 --> 00:12:17,555 It's not a happy story. 217 00:12:17,555 --> 00:12:21,345 By 1827, five of Babbage's children and his wife were dead. 218 00:12:21,345 --> 00:12:23,275 That's gonna do something to a man. 219 00:12:23,275 --> 00:12:27,205 And I think having an enormous project to throw yourself into for decades, 220 00:12:27,205 --> 00:12:34,865 might possibly be a side effect of that kind of hand that fate has dealt you. 221 00:12:34,865 --> 00:12:37,155 We can talk very briefly about all the Difference Engine does. 222 00:12:37,155 --> 00:12:37,875 It kind of does that. 223 00:12:37,875 --> 00:12:39,555 There's an Excel sheet, and 224 00:12:39,555 --> 00:12:42,235 I've done a quadratic, actually a cubic fit to some data. 225 00:12:42,235 --> 00:12:45,575 It's the data from one of our research algorithms. 226 00:12:45,575 --> 00:12:48,485 You probably know that you can take 227 00:12:48,485 --> 00:12:51,945 equations which are made off of powers of X. 228 00:12:51,945 --> 00:12:53,355 And if you do it carefully enough, 229 00:12:53,355 --> 00:12:56,865 you can fit them to most other equations that you might be interested in. 230 00:12:56,865 --> 00:12:59,565 It's trigonometric functions and so on. 231 00:12:59,565 --> 00:13:04,475 And the way that these machines were used, was to get a competent mathematician to 232 00:13:04,475 --> 00:13:09,575 do a piece wise fit of polynomials to the function you actually wanted to compute. 233 00:13:09,575 --> 00:13:14,085 And then difference engine, using method of Newton's, enables you to tabulate 234 00:13:14,085 --> 00:13:19,115 the values of that polynomial, simply by performing repeated additions or 235 00:13:19,115 --> 00:13:21,335 subtractions, depending on how you care to think about it. 236 00:13:21,335 --> 00:13:22,955 And that's what the difference engines do. 237 00:13:22,955 --> 00:13:25,985 They are both very limited, and yet very, very useful. 238 00:13:25,985 --> 00:13:29,685 Because not so much of the utility polynomials but 239 00:13:29,685 --> 00:13:35,190 the fact that you can fit polynomials so easily to the functions that you want. 240 00:13:35,190 --> 00:13:39,555 [COUGH] Here's different engine 911 Derek Doren has already shown this. 241 00:13:39,555 --> 00:13:41,475 The reason I'm showing you these slides, is so 242 00:13:41,475 --> 00:13:46,345 that you can look at the progression in the physical manifestation of the parts. 243 00:13:46,345 --> 00:13:49,325 This Georgian engineering definitely Georgian engineering. 244 00:13:49,325 --> 00:13:51,135 All finished before Victoria came along. 245 00:13:51,135 --> 00:13:55,255 Rather beautiful rather Baroque and curvaceous in places. 246 00:13:55,255 --> 00:13:57,765 This is difference engine number two. 247 00:13:57,765 --> 00:13:59,745 Which is much more in your face. 248 00:13:59,745 --> 00:14:02,285 It's a lot bigger for a start. 249 00:14:02,285 --> 00:14:05,225 Remember, this has got a third as many parts as the earlier engine. 250 00:14:05,225 --> 00:14:06,575 The earlier engine is only a fragment, 251 00:14:06,575 --> 00:14:09,515 about a seventh of it, so you've got to do a bit of arithmetic in your head. 252 00:14:09,515 --> 00:14:12,775 But this is a much chunkier piece of kit. 253 00:14:12,775 --> 00:14:17,155 Just for your information, the section on the end here is the printer, and 254 00:14:17,155 --> 00:14:19,145 we're gonna talk about that again in a moment. 255 00:14:19,145 --> 00:14:22,145 I've thrown a picture of the Rosetta Stone in there as well, 256 00:14:22,145 --> 00:14:24,745 courtesy of Wikimedia Commons. 257 00:14:24,745 --> 00:14:29,725 The reason I've done that is because, for our project, this is our Rosetta Stone. 258 00:14:29,725 --> 00:14:31,605 Every time people talk about that, they should say, oh, 259 00:14:31,605 --> 00:14:32,840 of course he never finished anything. 260 00:14:32,840 --> 00:14:35,775 [LAUGH] Go to hell is my response. 261 00:14:35,775 --> 00:14:39,575 This man did incredible things. 262 00:14:39,575 --> 00:14:41,665 One thing he did finish was a design for de2. 263 00:14:41,665 --> 00:14:45,815 And he offered it to the government, and the government said, oh no thank you. 264 00:14:45,815 --> 00:14:48,645 Cuz they got burned pretty badly on de1. 265 00:14:48,645 --> 00:14:51,335 But the presence of the full design enabled Doran and 266 00:14:51,335 --> 00:14:55,825 his team in about 1990 to construct this physical machine. 267 00:14:55,825 --> 00:14:59,045 This is not a reconstruction, this is a first construction. 268 00:14:59,045 --> 00:15:02,515 But they did it purely by reference to the engineering diagrams. 269 00:15:02,515 --> 00:15:05,575 They didn't use the notational elements that I'm going to describe to you 270 00:15:05,575 --> 00:15:06,605 in a moment. 271 00:15:06,605 --> 00:15:11,605 As a result we have this physical artifact and we have these notations independently. 272 00:15:11,605 --> 00:15:16,155 And we can use the physical artifact to decode the notations. 273 00:15:16,155 --> 00:15:19,615 So this is kind of Linear B for early computing. 274 00:15:19,615 --> 00:15:22,665 Finally, we have the analytical engine, or one version of it. 275 00:15:22,665 --> 00:15:24,935 And this is much more likely constructed. 276 00:15:24,935 --> 00:15:27,435 It's a much smaller system. 277 00:15:27,435 --> 00:15:28,705 Apart from all the other things he did, 278 00:15:28,705 --> 00:15:32,965 Babbage became interested in manufacturing technology and took a tour of the country. 279 00:15:32,965 --> 00:15:37,425 And wrote a book on it, which was cited by Karl Marx in Das Capital, 280 00:15:37,425 --> 00:15:44,265 because it was one of the first studies of what was possible in manufactories. 281 00:15:44,265 --> 00:15:49,635 So what you see here, in fact, is a third generation of engineering hardware. 282 00:15:49,635 --> 00:15:52,525 It would be very interesting to see what the difference engine would look like if 283 00:15:52,525 --> 00:15:56,125 it was constructed using this style of hardware. 284 00:15:56,125 --> 00:15:59,195 Before I show you the notational stuff proper, I want to talk to you about 285 00:15:59,195 --> 00:16:03,645 a nature collaboration, because it's about the only thing I have to say about either. 286 00:16:03,645 --> 00:16:07,655 Now, the first thing you must understand, is that all engineering design is really 287 00:16:07,655 --> 00:16:11,835 a conversation between the designers, the artifacts and the users. 288 00:16:11,835 --> 00:16:15,515 Designers are always surprised by what their things actually do. 289 00:16:15,515 --> 00:16:18,455 Sometimes they do weird stuff because you made a mistake. 290 00:16:18,455 --> 00:16:21,485 Sometimes they do weird stuff because they've got capabilities that you 291 00:16:21,485 --> 00:16:22,875 haven't imagined. 292 00:16:22,875 --> 00:16:25,835 Never less true than of computing. 293 00:16:25,835 --> 00:16:27,415 Nearly all systems are unfinished. 294 00:16:27,415 --> 00:16:30,395 They're simply abandoned, because people moved on. 295 00:16:30,395 --> 00:16:33,475 And really, the only distinction between designers, implementors, and 296 00:16:33,475 --> 00:16:36,435 users, is about the level of abstraction that they're working in. 297 00:16:36,435 --> 00:16:40,885 Now, this is something I feel very keenly, because I work in various collaborative 298 00:16:40,885 --> 00:16:43,665 relationships, none of which are comfortable. 299 00:16:43,665 --> 00:16:46,625 They're all necessary to drive forward the ideas. 300 00:16:46,625 --> 00:16:48,395 But it's not a fun sport. 301 00:16:48,395 --> 00:16:50,455 Anybody who's got a very comfortable, cheerful, 302 00:16:50,455 --> 00:16:55,375 collaborative relationship probably needs somebody with a bit more grit in there. 303 00:16:55,375 --> 00:16:59,291 And I think one of the tragedies of Babbage, is that he didn't have any users. 304 00:16:59,291 --> 00:17:04,085 Apart from that brief supernova explosion, as Doran talks of it, 305 00:17:04,085 --> 00:17:08,155 maybe nine months, in one year, in the middle of a 50 year research program. 306 00:17:08,155 --> 00:17:10,405 Basically, you can see Babbage working alone, 307 00:17:10,405 --> 00:17:13,000 with a team of technicians to implement his ideas. 308 00:17:13,000 --> 00:17:15,525 [COUGH] Essentially in isolation. 309 00:17:15,525 --> 00:17:17,905 Not lecturing about what he's doing, and 310 00:17:17,905 --> 00:17:22,755 really somewhat resistant even to getting the stuff published and out the door. 311 00:17:22,755 --> 00:17:24,135 He's independently wealthy. 312 00:17:24,135 --> 00:17:25,055 Why does he care? 313 00:17:25,055 --> 00:17:27,715 He's not sitting in a modern university with a ref coming up 314 00:17:27,715 --> 00:17:32,255 to bite his back side in five minutes time. 315 00:17:32,255 --> 00:17:35,035 So now, I'm gonna get into the actual technical core of what I'm gonna do, but 316 00:17:35,035 --> 00:17:37,475 very briefly, because there's very little time. 317 00:17:37,475 --> 00:17:39,435 But you can come and talk to me afterwards. 318 00:17:39,435 --> 00:17:42,025 Here's a close up of the printer mechanism. 319 00:17:42,025 --> 00:17:45,875 The printer, in many ways, is the most complex part of the machine. 320 00:17:45,875 --> 00:17:50,765 It does different with columns, for instance. 321 00:17:50,765 --> 00:17:54,795 And one feature that I can draw to your attention, is that as you're printing 322 00:17:54,795 --> 00:17:58,075 a set of tables, the man on the other end is turning the handle. 323 00:17:58,075 --> 00:18:00,035 Sort of, probably a man. 324 00:18:00,035 --> 00:18:01,795 The person on the other hand is turning the handle. 325 00:18:01,795 --> 00:18:03,965 You can see this in the video. 326 00:18:03,965 --> 00:18:06,995 They don't know when you've got to the very bottom of a table. 327 00:18:06,995 --> 00:18:11,355 So there's actually a mechanism whereby a trip is thrown by the printer and 328 00:18:11,355 --> 00:18:15,505 there is a cat gut chord, which runs across the machine and 329 00:18:15,505 --> 00:18:20,045 disengages a drive dog in the handle, at which point you're running free and 330 00:18:20,045 --> 00:18:21,405 the machine itself is stopped. 331 00:18:21,405 --> 00:18:22,685 So this is glorious. 332 00:18:22,685 --> 00:18:25,615 Synchronization mechanism in there. 333 00:18:25,615 --> 00:18:28,465 I understand that the West Coast version has a bit of trouble here, 334 00:18:28,465 --> 00:18:31,065 because cat gut is hygroscopic I was told this morning. 335 00:18:31,065 --> 00:18:32,000 So it stretches. 336 00:18:32,000 --> 00:18:34,185 >> [LAUGH] >> Thank you for the anecdote. 337 00:18:34,185 --> 00:18:38,165 Now then, if you go and look at the engineering diagrams for the printer, 338 00:18:38,165 --> 00:18:42,525 you see a traditional side on view of the gears. 339 00:18:42,525 --> 00:18:47,855 As you've got at the back, but it's also heavily populated with strange symbols. 340 00:18:47,855 --> 00:18:52,115 And here are some in close up, you can see that there are letters in different fonts, 341 00:18:52,115 --> 00:18:55,005 and they have a variety of subscripts and superscripts. 342 00:18:55,005 --> 00:18:57,625 This is the core of Babbage's notation, and 343 00:18:57,625 --> 00:19:01,955 it is how he managed to make sense of the complexity of his system. 344 00:19:01,955 --> 00:19:06,085 This is what it looks like in total. 345 00:19:06,085 --> 00:19:07,935 This is a trains diagram, 346 00:19:07,935 --> 00:19:11,215 one of three facets of Babbage's hardware description language. 347 00:19:11,215 --> 00:19:16,335 And it captures the causal chains throughout the printer. 348 00:19:16,335 --> 00:19:19,605 You can't see it terribly well, so I'm gonna zoom it up a little bit on 349 00:19:19,605 --> 00:19:22,835 one of the central features, and you'll begin to see what's going on. 350 00:19:22,835 --> 00:19:27,055 There are these rather strange looking formulae. 351 00:19:27,055 --> 00:19:33,545 We see here these labels, with actually up to six, suffixes. 352 00:19:33,545 --> 00:19:35,725 We see these braces, and 353 00:19:35,725 --> 00:19:41,655 we see arrows, and we see parentheses, and they all mean something. 354 00:19:41,655 --> 00:19:48,295 Now here's the kicker, Babbage was, by his own words, most proud of the notation. 355 00:19:48,295 --> 00:19:52,275 He saw it as his greatest achievement, and of course, he was correct. 356 00:19:52,275 --> 00:19:53,625 Because this is not a machine. 357 00:19:53,625 --> 00:19:56,435 This is not a program running on a machine. 358 00:19:56,435 --> 00:20:00,225 This is a way of thinking which enables you to design machines. 359 00:20:00,225 --> 00:20:01,135 This is not the thing. 360 00:20:01,135 --> 00:20:05,545 This is the meta-thing, and the meta-thing is always more interesting than the thing. 361 00:20:05,545 --> 00:20:08,615 And Babbage was absolutely correct, I think, in saying that 362 00:20:08,615 --> 00:20:12,365 his hardware description language was the pinnacle of his intellectual achievement, 363 00:20:12,365 --> 00:20:16,005 not least of all, because it enabled everything else. 364 00:20:16,005 --> 00:20:17,195 And it went nowhere. 365 00:20:17,195 --> 00:20:19,695 As far as anyone can see, apart from a few of his technicians and 366 00:20:19,695 --> 00:20:23,595 his son, nobody really used this notation in anger. 367 00:20:23,595 --> 00:20:25,115 Now why would that be? 368 00:20:25,115 --> 00:20:27,735 Well, I think the answer is very simple. 369 00:20:27,735 --> 00:20:32,775 Babbage was so far out of his time, in terms of the state 370 00:20:32,775 --> 00:20:35,745 space of the machinery that he was building, but no one else needed it. 371 00:20:35,745 --> 00:20:39,295 If you look at the steam engine, which I build in my copious free time. 372 00:20:39,295 --> 00:20:43,305 Or even an internal combustion engine, there is stake, there are cycles, 373 00:20:43,305 --> 00:20:46,205 there is a rotation, but there's nothing that you can't figure out by 374 00:20:46,205 --> 00:20:49,555 just looking at side elevation and imagine the bits moving around. 375 00:20:49,555 --> 00:20:51,715 It's only when you introduce memory into a system, 376 00:20:51,715 --> 00:20:57,195 it's only when you introduce state that things get too hard. 377 00:20:57,195 --> 00:21:02,685 And essentially you don't find machines with true state appearing until its 378 00:21:02,685 --> 00:21:07,435 use perhaps in the 30s, and certainly the post World War II flowering in computers. 379 00:21:07,435 --> 00:21:11,165 And I think it's exactly how big is the state space of your machine, and 380 00:21:11,165 --> 00:21:14,435 if it isn't too big to fit in your head, you might have a go at this. 381 00:21:14,435 --> 00:21:18,160 Anybody else is gonna run screaming from this, and they did. 382 00:21:18,160 --> 00:21:21,805 Babbage tried to push this as a notation that should be taught in the mechanical 383 00:21:21,805 --> 00:21:24,685 schools, and in fact, at the time of the great exhibition, 384 00:21:24,685 --> 00:21:29,535 he made a desultory attempt to contact people who might be interested in it. 385 00:21:29,535 --> 00:21:32,435 And try and generalize his notation in a certain way 386 00:21:32,435 --> 00:21:33,845 to give it wider applicability. 387 00:21:33,845 --> 00:21:37,775 It's one of the few instances that one can see of Babbage reaching out 388 00:21:37,775 --> 00:21:41,855 to other folks and saying, come and join with me. 389 00:21:41,855 --> 00:21:42,813 >> Seems lucky for you. 390 00:21:42,813 --> 00:21:44,095 >> [LAUGH] >> Doesn't it? 391 00:21:44,095 --> 00:21:45,720 Remember what happened to APL? 392 00:21:45,720 --> 00:21:46,425 [LAUGH] A very, 393 00:21:46,425 --> 00:21:51,265 very fine notation which is not broadly used outside of certain shops. 394 00:21:51,265 --> 00:21:53,565 Here's some detail on how it works. 395 00:21:53,565 --> 00:21:55,505 Names comprise a letter. 396 00:21:55,505 --> 00:21:59,795 And the font and whether it's in italics or not are significant. 397 00:21:59,795 --> 00:22:03,345 Above it there's a little icon which is called the index of form. 398 00:22:03,345 --> 00:22:07,105 That particular one is Iraq, I'll show you some other ones in a moment. 399 00:22:07,105 --> 00:22:10,385 Down the bottom there's an icon indicating the kind of movement that 400 00:22:10,385 --> 00:22:13,425 the element named by this name performed. 401 00:22:13,425 --> 00:22:17,205 So that motion there is actually the motion of something that is 402 00:22:17,205 --> 00:22:19,495 turning if your looking down the x axis. 403 00:22:19,495 --> 00:22:22,025 So actually that's the motion of the handle 404 00:22:22,025 --> 00:22:25,065 on the end of difference engine number two. 405 00:22:25,065 --> 00:22:28,775 The index of identity is set to be the same for 406 00:22:28,775 --> 00:22:31,345 all elements that are originally connected. 407 00:22:31,345 --> 00:22:34,577 The index of alphabet is used when you've run out of letters. 408 00:22:34,577 --> 00:22:35,735 [LAUGH] >> [LAUGH] 409 00:22:35,735 --> 00:22:37,555 >> And doesn't fit. 410 00:22:37,555 --> 00:22:41,855 So six was enough for a long time, and then it wasn't enough. 411 00:22:41,855 --> 00:22:45,455 The linear index is used to generate arrays. 412 00:22:45,455 --> 00:22:49,325 You will have seen in the example that Dorin showed this morning a sigma and 413 00:22:49,325 --> 00:22:52,645 something that looks suspiciously like an indexed expression from a software 414 00:22:52,645 --> 00:22:53,275 programming language. 415 00:22:53,275 --> 00:22:54,765 That's exactly what it is and 416 00:22:54,765 --> 00:22:58,195 it refers to the columns in the difference engine number two. 417 00:22:58,195 --> 00:23:01,605 And the angular index does the same thing, but it's used for rotation. 418 00:23:01,605 --> 00:23:04,085 Any of you that have seen the difference engine in action, 419 00:23:04,085 --> 00:23:08,895 will know that it has a spiral of levers behind it. 420 00:23:08,895 --> 00:23:11,145 So each element both goes up and 421 00:23:11,145 --> 00:23:16,045 rotates by a certain angle and that's the angular index. 422 00:23:16,045 --> 00:23:20,105 [COUGH] Not used very often, because those structures don't appear very much. 423 00:23:20,105 --> 00:23:25,495 Here are some, I love these, here are some of the icons that Babbage constructed, 424 00:23:25,495 --> 00:23:27,495 my favorite one is the escapement. 425 00:23:27,495 --> 00:23:30,475 He gave an example, the clock written in the notation, 426 00:23:30,475 --> 00:23:33,915 you know how the escapement works, and there's a little pendulum. 427 00:23:33,915 --> 00:23:36,515 And what I said earlier that run about time the great exhibition, 428 00:23:36,515 --> 00:23:38,225 the attention to reach out to other people. 429 00:23:38,225 --> 00:23:39,435 What they actually did was say to people, 430 00:23:39,435 --> 00:23:43,285 what other icons do I need, what other kinds of mechanisms are there? 431 00:23:43,285 --> 00:23:47,465 And there are that 70 or 80 of these little pictures. 432 00:23:47,465 --> 00:23:48,395 This ones a rack. 433 00:23:48,395 --> 00:23:52,685 When you get the idea, they're all meant to be kind of pnemonic value and 434 00:23:52,685 --> 00:23:55,835 emotions too have some pnemonic value. 435 00:23:55,835 --> 00:23:57,205 Coming from modern perspective, 436 00:23:57,205 --> 00:24:01,181 when you look at it, you'll find there are obvious gaps all over the place. 437 00:24:01,181 --> 00:24:05,515 Some motions down some axis have an icon and some don't. 438 00:24:05,515 --> 00:24:10,135 So to a modern mathematician, a modern, someone who is interested in modern formal 439 00:24:10,135 --> 00:24:13,155 languages, one of the very interesting things is that Babbage just seems to 440 00:24:13,155 --> 00:24:16,075 use what he needed, and not bothered to define the rest of it. 441 00:24:16,075 --> 00:24:18,495 But I guess from a mathematicians perspective makes sense, but 442 00:24:18,495 --> 00:24:21,515 from an engineer's perspective it's confusing. 443 00:24:21,515 --> 00:24:25,145 There's some information on the naming conventions, and whether we're upright, 444 00:24:25,145 --> 00:24:26,715 or slanted letters. 445 00:24:26,715 --> 00:24:30,055 You can read about all this stuff and how long have I got? 446 00:24:30,055 --> 00:24:31,265 Have I run out of time completely? 447 00:24:31,265 --> 00:24:34,125 Oh you're waving your hands, you have a sign saying stop in front of you, 448 00:24:34,125 --> 00:24:37,330 but I cannot tell whether it's active or not. 449 00:24:37,330 --> 00:24:41,165 [LAUGH] You'll wave it at me, but I can keep going for a bit, okay. 450 00:24:41,165 --> 00:24:44,315 [LAUGH] So here are some of the conventions. 451 00:24:44,315 --> 00:24:46,815 Some of the conventions are desperately unhelpful. 452 00:24:46,815 --> 00:24:52,485 On a particular drawing the lettering of parts is such that, 453 00:24:52,485 --> 00:24:58,045 where does it say here, letter names are used to indicate depth into the diagram. 454 00:24:58,045 --> 00:25:01,555 So a distant part has a letter closest to the beginning of the alphabet, 455 00:25:01,555 --> 00:25:04,765 which is really great right up until the point when you've got the same part on 456 00:25:04,765 --> 00:25:07,515 two different diagrams, from two different angles. 457 00:25:07,515 --> 00:25:12,635 So these names are with respect to a particular diagram to some extent. 458 00:25:12,635 --> 00:25:14,215 There is cross referencing to some extent. 459 00:25:14,215 --> 00:25:16,075 I don't want to underestimate that, but 460 00:25:16,075 --> 00:25:18,515 again from a modern perspective we would think of 461 00:25:18,515 --> 00:25:21,825 the part having a name which popped up with the same name in various places. 462 00:25:21,825 --> 00:25:26,335 And here life is not so simple necessarily. 463 00:25:26,335 --> 00:25:29,535 One of the things that Babbage does which though is absolutely core and 464 00:25:29,535 --> 00:25:34,515 really important, is that he distinguishes between working parts and working points. 465 00:25:34,515 --> 00:25:38,305 Now he calls them working points, but in general they might be a surface. 466 00:25:38,305 --> 00:25:43,145 So a cam is a part and a cam follower is a part. 467 00:25:43,145 --> 00:25:45,075 The place where they contact each other, 468 00:25:45,075 --> 00:25:47,835 which in general is the surface, that's a working point. 469 00:25:47,835 --> 00:25:51,855 And for the computer scientist in the audience, essentially what Babbage is 470 00:25:51,855 --> 00:25:57,435 doing is constructing a directed graph of the hardware interactions. 471 00:25:57,435 --> 00:26:01,705 So we can think of the trains diagram as a description of a connected directed graph 472 00:26:01,705 --> 00:26:07,365 whose nodes form two classes, paces those of the physical objects and action point. 473 00:26:07,365 --> 00:26:09,265 And edges are also in two classes. 474 00:26:09,265 --> 00:26:15,375 There are ownership edges, which say, this piece belongs to this assembly. 475 00:26:15,375 --> 00:26:16,875 And there are cause arrows, 476 00:26:16,875 --> 00:26:20,825 which involve an action point to action point arrangement. 477 00:26:20,825 --> 00:26:24,765 So the graph is not as you might imagine, 478 00:26:24,765 --> 00:26:28,980 that the nodes in the graph or the parts and the edges in the interaction. 479 00:26:28,980 --> 00:26:29,625 [INAUDIBLE] And their label. 480 00:26:29,625 --> 00:26:30,815 Not at all. 481 00:26:30,815 --> 00:26:35,415 There are nodes for the interactions which have lines between them. 482 00:26:35,415 --> 00:26:36,785 This is hard, actually. 483 00:26:36,785 --> 00:26:38,205 It's really quite hard to think about. 484 00:26:38,205 --> 00:26:41,425 Here are some examples that are derived from 485 00:26:41,425 --> 00:26:43,445 a paper written by Henry Prevost Babbage. 486 00:26:43,445 --> 00:26:45,075 So I'm doing a bit of an aider here. 487 00:26:45,075 --> 00:26:46,045 I haven't invented my own stuff. 488 00:26:46,045 --> 00:26:49,425 I've nicked it from another paper. 489 00:26:49,425 --> 00:26:52,355 These are the examples here. 490 00:26:52,355 --> 00:26:56,335 So, we've got a bevelled gear here which is rotating, one at the top there, and 491 00:26:56,335 --> 00:26:59,325 driving the bottom bevel gear. 492 00:26:59,325 --> 00:27:02,255 Now, if 3p, 3b, and 3d are all rigidly connected to each other, 493 00:27:02,255 --> 00:27:08,205 that's what the 3 means, the letters tell you that those are individual pieces. 494 00:27:08,205 --> 00:27:11,785 And this strange formula up here, which can be compressed to here, 495 00:27:11,785 --> 00:27:17,925 tells you that there is motion, or force, being injected via 3B. 496 00:27:17,925 --> 00:27:22,969 Which is turning 3B and as outputs have 3D and 3B up there. 497 00:27:22,969 --> 00:27:24,223 Here's a related example. 498 00:27:24,223 --> 00:27:26,145 It's essentially the same structure. 499 00:27:26,145 --> 00:27:29,835 There's a sleeve rotating on an axle. 500 00:27:29,835 --> 00:27:35,495 In this case the axle is called 3P and everything is called 2D 2B, 501 00:27:35,495 --> 00:27:39,765 because they're now independently non-fixed elements. 502 00:27:39,765 --> 00:27:43,605 And again if I drive it, then 2B Is driving and 503 00:27:43,605 --> 00:27:48,805 the parentheses mean it's rotating around that axle. 504 00:27:48,805 --> 00:27:51,325 You begin to see why the machinations of the day might 505 00:27:51,325 --> 00:27:52,915 not have enjoyed this very much. 506 00:27:52,915 --> 00:27:55,335 It's actually quite hard to use. 507 00:27:55,335 --> 00:27:58,025 This is why I borrowed examples from Henry Provost. 508 00:27:58,025 --> 00:28:00,345 I'm now being told to shut up. 509 00:28:00,345 --> 00:28:02,325 That's fine. 510 00:28:02,325 --> 00:28:10,126 One last slide, we're building software simulations, 511 00:28:10,126 --> 00:28:13,433 as you might expect, of this stuff, and we're building 3D printed systems and