Source Code is the title of Bill Gates’s autobiography. It also the eponym for the work that he, Paul Allen, and Ric Weiland did for Ed Roberts’s Altair 8800. Written on a teletype connected to a Digital Equipment PDP-10, their first task was to create a simulator of the Altair 8800 on the PDP-10. Then they wrote the source code for Altair BASIC. The BASIC interpreter was the product that Gates and Allen promised Roberts. In legendary hacker style, they did the work in under a week in bursts of long overnight sessions.
For myself, reading through it, I enjoyed contemplating the roots of modern computer programming but really understanding it at that level would have required more effort than they put into it. So, I left it like a trip to an art museum: spend time understanding the work, but I will never create anything like it.
Note that the nested line numbers along the wide left side show that the publication is an archive:. a file saved later as a new file.
![]() |
https://images.gatesnotes.com/ 12514eb8-7b51-008e-41a9-512542cf683b/34d561c8-cf5c- 4e69-af47-3782ea11482e/ Original-Microsoft-Source-Code.pdf |
The source code is commented at the right.
![]() |
https://images.gatesnotes.com/ 12514eb8-7b51-008e-41a9-512542cf683b/34d561c8-cf5c- 4e69-af47-3782ea11482e/ Original-Microsoft-Source-Code.pdf |
Also, in the story from Bill Gates, they had some discussion about whether to create an interpreter or a compiler. BASIC was intended as an interpreter so that each line could be debugged while written and run instead of writing, compiling the whole program, and then debugging the inevitable errors, as with Fortran or Cobol.
The power in the interpreter for learners is that feedback is immediate. It is also true that at some level of complexity and volume, having the entire program in a body is convenient and we spent hours reading and debugging long programs on accordions of greenbar paper and carrying around decks of punched cards.
PREVIOUSLY ON NECESSARY FACTS
John Kemeny Knew: We Shall Have Computed
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.