1 00:00:00,000 --> 00:00:00,499 2 00:00:00,499 --> 00:00:06,130 SPEAKER: What you have here is a listing of an early piece of software 3 00:00:06,130 --> 00:00:11,040 written by Bill Gates and Paul Allen, the founders of Microsoft. 4 00:00:11,040 --> 00:00:13,120 The code is interesting for two reasons. 5 00:00:13,120 --> 00:00:16,100 First of all, it became Microsoft's first product, 6 00:00:16,100 --> 00:00:22,430 which was an interpreter for the basic programming language. 7 00:00:22,430 --> 00:00:25,540 >> And secondly, this was one of the first attempts 8 00:00:25,540 --> 00:00:31,200 to create an interpreter so ordinary people could use personal computers. 9 00:00:31,200 --> 00:00:33,250 So, bill gates was an undergraduate at Harvard. 10 00:00:33,250 --> 00:00:35,430 I started teaching at Harvard 1974. 11 00:00:35,430 --> 00:00:37,180 This was done in 1975. 12 00:00:37,180 --> 00:00:40,770 >> So, it was early in his career in early in my career. 13 00:00:40,770 --> 00:00:44,400 I actually taught Bill in a course around this time. 14 00:00:44,400 --> 00:00:47,740 Paul Allen was not a Harvard student, but he 15 00:00:47,740 --> 00:00:51,550 had been a high school classmate of Bill Gates. 16 00:00:51,550 --> 00:00:54,360 If you come and look at the listing, you'll 17 00:00:54,360 --> 00:00:56,840 actually find a third name, Monte Davidoff, 18 00:00:56,840 --> 00:01:00,250 who was Gates's classmate here at Harvard. 19 00:01:00,250 --> 00:01:01,950 >> Here's an interesting comment up here. 20 00:01:01,950 --> 00:01:08,050 It says "in 4k can delete square root but for loops should still work." 21 00:01:08,050 --> 00:01:13,660 So what that means is that there was two ways to compile this program. 22 00:01:13,660 --> 00:01:18,490 One was to run on a version of this Altair computer 23 00:01:18,490 --> 00:01:24,820 that only had 4k words of memory, 4,096 words of memory. 24 00:01:24,820 --> 00:01:27,680 >> But the big version had 8k. 25 00:01:27,680 --> 00:01:30,370 And so what this says that in the 4k version 26 00:01:30,370 --> 00:01:33,370 you had to delete some code to make it fit. 27 00:01:33,370 --> 00:01:35,400 And one of the things that would be deleted 28 00:01:35,400 --> 00:01:36,890 would be the square root routine. 29 00:01:36,890 --> 00:01:40,920 But apparently the for loops should still 30 00:01:40,920 --> 00:01:44,150 work even when you were compiling down for just 31 00:01:44,150 --> 00:01:48,600 the 4k version of the computer.