Imagine a modern personal computer. It has a direct-manipulation, WYSIWYG user interface, and programs for drawing, painting, writing, and other tasks. It is connected to a LAN with email, database, print, and other services. The LAN may be connected to other LANs, forming an internet, and it may be connected to a wide-area network like the Internet.
That also describes the Xerox Palo Alto Research Center (PARC) nearly 20 years ago . Today's personal computers are designed and sold by Apple, IBM, and others, but researchers had developed the ideas and techniques they use by the mid 1970s. This column discusses nine of those early ideas, the people who had them, and the labs where they worked. (footnote 1) We begin with the observation that an information processing machine was needed to augment intellect.
In an Atlantic Monthly article published just after World War II, Vannevar Bush, a prominent researcher at MIT, stated a problem: scientists were increasingly unable keep up with professional information. They could not find or read everything in their fields, and what they did read (and write) they often forgot or misfiled because of inflexible indexing systems. Having stated a problem, Bush postulated a machine to solve it. He called it "memex," because it was to extend the powers of human memory and association:
A memex is a device in which an individual stores all his (footnote 2) books, records, and communications, and which is mechanized so it may be consulted with exceeding speed and flexibility. It is an enlarged intimate supplement to his memory. [3: 102 in 18]He envisioned the memex as a desk-like machine with a keyboard, knobs, levers, and two displays. Storage would be on microfilm, and dry photography would be used for input. (Bush was working on microfilm- based library information retrieval when the article was written.) Most important, documents were not just indexed and stored. They could be annotated, and unlimited linking of documents was to be possible.
Bush wrote the first draft of this article before the war, and was concerned that it be published where it would be read by influential people. His most important reader turned out to be Doug Engelbart, a young sailor who "avidly read it in a Red Cross library on the edge of the jungle on Leyte ... in the Fall of 1945." [18: 236].
Engelbart saw the same problem as Bush, but his solution was not microfilm, it was "having the computer do some of his symbol- manipulating processes for [man] so that he can use more powerful concepts and concept-manipulation techniques." [4: 74] Engelbart elaborated a theoretical framework of knowledge work, knowledge representation, and of the relationship between people, societies and tools . He saw knowledge work as building structured concepts, networks of text frames and drawings, which might represent the work of a few hours or of a few years. Similar structures could represent procedures, like computer programs or project plans. He emphasized that people often built these structured concepts in groups, and pointed out that tools, people, and societies co-evolve. We shape our tools and they shape us.
The report also speculated on a machine, a two-display workstation with a light pen and two single-handed keysets, and specific applications. This framework guided 15 years years of research and prototype development in Engelbart's lab at the Stanford Research Institute (SRI). Bootstrapping development by using their own tools, Engelbart's group began the field of computer-supported cooperative work, and invented WYSIWYG word processing, the mouse, multi-window displays, electronic meeting rooms, and more. The system they developed is described in [5 and 6], and I wish I had been able to use it to write this article.
As Table 1 shows, the way we use and communicate with computers has changed over time. Early computers were expensive, so it was important that they not sit idle. Programs and data were prepared off line, and fed to the computer in batches by operators. After a job ran, the output returned to the user. This approach kept the computer busy, but wasted user's time. Every programmer who got a hands-on "shot" at the console for debugging or typed a five-minute "hello world" program into an early timesharing system knew it was better to work interactively than in batch mode.
Interactive computing bloomed at MIT in the 1950s, beginning with Jay Forrester's Whirlwind computer. Whirlwind processed real-time telemetry data and was used interactively by an operator at a display- based console. It was followed by other experimental interactive computers at MIT. All of the MIT engineers using them understood the value of interaction, but J. C. R. Licklider spread the vision. In an influential paper on man-machine symbiosis, he wrote:
Computing machines can do readily, well, and rapidly many things that are difficult or impossible for man, and men can do readily and well, though not rapidly, many things that are difficult or impossible for computers. That suggests that a symbiotic cooperation, if successful in integrating the positive characteristics of men and computers, would be of great value. [13: 6]
This paper was widely read and laid the groundwork for the study of what we now call "human-computer interaction." (Licklider was a research psychologist.) For example, the paper outlines scientific visualization, voice I/O, and pen-based interfaces.
While people at MIT enjoyed interactive computing, the rest of the world was submitting jobs and waiting for output. Timesharing brought interactive computing to the masses. The SAGE air defense system, which evolved out of the Whirlwind, timeshared a computer between many users working at the same task, but the first description of general purpose timesharing was in a widely quoted paper by Christopher Strachey, who wrote:
... several operators are using the machine during the same time. To each of these operators the machine appears to behave as a separate machine (smaller of course, and slower than the real machine) [22: 340].
Strachey describes a system to do this, and outlines architectural extensions that would be needed for timesharing . These included prioritized interrupts, memory protection, and supervisor-only instructions. Strachey's paper was published in 1959, and by the mid 1960s, there were at least six experimental timesharing systems.
Much of Engelbart's work and several of the timesharing experiments were funded by the Advanced Research Projects Agency of the Department of Defense (ARPA). This was no coincidence -- Licklider was the first head of the Information Processing Techniques Office at ARPA.
Timesharing enabled interactive computing, but as long as we worked at printing terminals, we were restricted to command-oriented user interfaces. The immediacy of direct manipulation, WYSIWYG interfaces required a display and pointing device. Like interactive computing, the power of direct manipulation was obvious; it only had to be experienced to be appreciated.
This was understood early at MIT. For example Doug Ross tells of a program he wrote in 1954 [7: 54], which let him draw on the display screen using his finger. However, it remained for Ivan Sutherland's Sketchpad program to demonstrate the power of direct manipulation to the world. Sketchpad, written for the TX-2, a descendent of Whirlwind, was a CAD program in which the user drew directly on the screen using a light pen. Sutherland described Sketchpad and its data structures, algorithms, and applications in , where he wrote:
A Sketchpad drawing is entirely different from the trail of carbon left on a piece of paper. Information about how the drawing is tied together is stored in the computer as well as the information which gives the drawing its particular appearance. [23: 331]
Sketchpad was arguably the most innovative program ever written. It opened the field of computer graphics, and featured software inventions like the cursor, the window (zooming, not scrolling), clipping, rubber-band drawing, constraint-based drawing, and gesture recognition. Furthermore, it was object-oriented. Anything you drew could be used as a "master" (i. e., class definition), from which instances (his term) could be derived. Instances inherited the properties of the master, and could be modified, resized, drug, rotated, and so forth. They could themselves be masters, and they could be recursively combined to form compound objects.
While Sutherland worked on drawings, Engelbart applied direct- manipulation to text. In , he proposed (and later implemented) a hypothetical word processing program with automatic word wrap, search and replace, user-definable macros, and commands (gestures) to move, copy or delete single words or arbitrarily selected blocks of text. When the text filled the screen, it scrolled. When changes were made "the text simultaneously readjusted to present the neat, no-gap appearance it had had." [4: 79] Margins could be adjusted at will, and text could be laid out in dynamically resizable columns. There was also to be an on-line dictionary with definitions, synonyms and antonyms. footnote 3.
Early computers were expensive and complex, so it took special vision to see they would one day be widely used. John Kemeny and Thomas Kurtz of Dartmouth College had that vision. During 1962, they and their students implemented several simple programming languages on an LGP-30 computer, and by 1963 they had made the decision that all Dartmouth students would be taught computing. They later wrote "The primary goal motivating our development of DTSS was the conviction that knowledge about computers and computing must become an essential part of a liberal education." [10: 223].
Following a design policy that "In all cases where there is a choice between simplicity and efficiency, simplicity is chosen," [11: 520], they built the DTSS timesharing system and invented BASIC. BASIC was designed for interactive use by beginners. It had interactive I/O statements, and built-in string functions made it easy to parse input and build conversational programs. An integrated monitor allowed easy interactive debugging.
While Kemeny and Kurtz were bringing computers to university students, Bob Albrecht, brought them to "the people." He began teaching FORTRAN to high school students in 1962, and "We had so much fun we ... extended the program to eight other schools" [1: 31]. Having smelled the flowers, Albrecht soon left his job at Control Data and moved to California, where he established the People's Computer Center (PCC). PCC was a walk-in center where children and adults played games, wrote BASIC programs, and demanded that computers be used "by the people, not against them." Many future Silicon Valley entrepreneurs were regulars at PCC's weekly potluck dinners. Albrecht was also influential through his writing. He published a tabloid periodical, and his uniquely informal books were widely read. ("My Computer Likes Me When I Speak BASIC" sold over 250,000 copies.)
In , Seymour Papert described his experience using Logo to teach junior high students mathematical and procedural thinking. Alan Kay was influenced by Papert, and when he began work on personal computing at PARC, he wrote "we wanted our range of users to include children from age 5 or 6 and 'noncomputer adults' such as secretaries, librarians, architects, musicians, housewives, doctors, and so on. [9: 2] (Kay's group at PARC was called the Learning Research Group.)
Computers evolved by merging programmable devices and calculating machines. The gap was closed by the ENIAC in 1946. (Table 2). Nearly fifty years later, we see the merging of two other streams of development, computing and communication (Table 3). Today many of us believe computers are primarily communication devices, but Licklider understood this in the early 1960s. He and Robert Taylor wrote "the use of the computer as a communication device ... promises to bring a new depth of intellectual interchange to the fine old art of fact-to- face communication." [14: 21]
The user communities which formed around the electronic mail, bulletin boards, and subroutine libraries of the early timesharing systems hinted at the role of computers in communication. Licklider and Taylor foresaw the possibility of extending those communities:
What will on-line interactive communities be like? In most fields they will consist of geographically separated members, sometimes grouped in small clusters and sometimes working individually. They will be communities not of common location, but of common interest. [14: 30]
As attractive as this vision was, they also asked:
Will 'to be on line' be a privilege or a right? If only a favored segment of the population gets a chance to enjoy the advantage of 'intelligence amplification,' the network may exaggerate the discontinuity in the spectrum of intellectual opportunity. [14: 31].
Inspired by telegraph systems using torn paper tape, Paul Baran of RAND wrote a series of memos proposing a packet switched military network . His memos present a packet format, routing algorithm, switching computer and microwave link design. They also discuss robustness when nodes or links fail or are destroyed, encryption, staffing difficulty, and other topics. While the network would be complex, and difficult to build, he predicted it would solve many communication problems, and save money. Baran's vision was less sweeping than Licklider's, but his analysis was accurate.
Licklider and others encouraged ARPA to fund the deployment of a national network, the ARPANET. Four nodes began operation in 1969, and the rest is history. Today, the Net has thousands of mailing lists, listservers, news groups, electronic journals, and other "communities of common interest."
When researchers at PARC decided to build an experimental personal computer, the Alto, they wanted to duplicate the sense of community surrounding timesharing systems. This led to a LAN, the Ethernet, being an integral part of the Alto design. Around 1,000 networked Altos were eventually deployed at PARC, and this experience led to the invention of client-server computing and the bit-mapped laser printer. The Alto designers wrote:
The high bandwidth communication provided by the Ethernet has been more valuable than anticipated, since we underestimated the importance of servers. The network and network services have been the mainstays of the environment, and we feel that a facility with an order of magnitude lower bandwidth would have had a qualitatively different effect. [17: 46].
One way to view the evolution of digital information processing is to note when various data types became commonplace (Table 4), but of course research precedes deployment. We have already discussed Sutherland and Engelbart's research with graphics and text. As early as Leibnitz, researchers (including Bush) had sought notation that would permit automatic deduction, and computer-based knowledge representation began in the 1950s. For example, John McCarthy wrote "If one wants a machine to be able to discover an abstraction, it seems most likely that the machine must be able to represent this abstraction in some relatively simple way,"[15: 404]. He then invented LISP. Research on voice recognition and synthesis, music synthesis, computer art, and computer animation was conducted Bell Labs between the late 1930s and mid 1960s. The Illiac computer was used in music composition in the 1950s, and experiments in pen-based handwriting, symbol and gesture recognition were carried out at at the System Development Corporation and RAND in the early 1960s.
While these and other early experiments were important, Kay's vision of a Dynabook dramatically integrated data types:
Suppose [the Dynabook] had enough power to outrace your senses of sight and hearing, enough capacity to store for later retrieval thousands of page-equivalents of reference material, poems, letters, recipes, records, drawings, animations, musical scores, waveforms, dynamic simulations and anything else you would like to remember and change. [12: 4,5].
Since at first people shared computers, the idea that everyone should have their own was a breakthrough. Kay's Flex Machine  was intended to be a personal computer, as were the Altos at PARC. Designed for a single user, the Alto had a page-size (875-line, 70 dpi), bit-mapped display, a mouse, keyboard, five-finger keyset, Ethernet controller, and a removable disk pack. It was optimized for I/O -- the user program and device controllers time-shared the system microcontroller and memory, and the firmware supported BitBlt, windowing, and a programmable cursor.
Alto software included several development systems and programs for drawing, painting, animation, music, email, word processing, and page layout, all with modern graphical interfaces. (Strategic employees at Apple and Microsoft came from PARC). As in Engelbart's lab, the Altos, LAN, servers, and software were in daily use by the people developing them. By 1979, there were roughly 1,000 Altos, several dozen print servers, and 25 Ethernets connected by 20 Alto-based routers. In evaluating the project, the designers wrote:
The Alto has led to an entirely new kind of computing environment, because it puts computing power near the user, and makes it possible for him to do most of his work without relying on a centralized facility. ... One of the Alto's most attractive features is that it does not run faster at night. [24: 46].
Alan Kay has remarked that had Vannevar Bush enjoyed working in all- night coffee shops, he would have invented the portable computer. But Bush worked at a desk, and the vision of a portable computer was Kay's. For him the Alto was a vehicle for prototyping the real "Holy Grail," a powerful portable computer. Desktop computers were chained to desks like Gutenberg's first books. Kay wanted a portable computer his mother could take to the market with her shopping list:
Several years ago, we crystallized our dreams into a design idea for a personal dynamic medium the size of a notebook (the Dynabook which can be owned by everyone and has the power to handle virtually all of its owner's information-related needs. ... We envision a device as small and portable as possible which could both take in and give out information in quantities approaching that of human sensory systems. [12: 3, 5].
Kay was also inspired by the shrinking calculators of the time. During the 1960s, Wang, Tektronix, and HP developed electronic calculators for the desktop, and in 1971 HP introduced a hand-held scientific calculator. Computerized shopping lists suddenly seemed a bit more likely.
There were several early, commercial personal computers, most notably the LINC, the IBM 5100, and the Tektronix 405X, but the first practical, mass-market machine was the MITS Altair, sold as a $397 kit . To be useful an Altair or its clones required a terminal, floppy disks, and a printer, which brought the price into the $5,000 range, but for that price you had a computer that did real work like word processing, file management, and running BASIC, FORTRAN, COBOL, and PL/I programs. Professionals could own their own tools. Entrepreneurs flocked to the Altair, and personal computing was on its way.
We have seen that the personal computer industry had a foundation to build on. The first years were like a fast-forward replay of the computer and word processing industries -- assemblers, high-level languages, operating systems, superscalar CPUs, and modern applications, were implemented as soon as falling cost allowed. The similarity of today's systems to the Alto, is an indication that the computer industry has consumed much of the intellectual capital developed at MIT, SRI, and PARC. I wonder which labs are inventing the next 50 years?
Thanks to Alex McKenzie and Bob Anderson for their help with this column.
Computing Communication Paradigm Paradigm 1950s: batch processing transmit batches of jobs 1960s: timesharing interactive terminals 1980s: desktop computers local-area networks 1990s: portable computers wide-area networksTable 1. Evolving computing/communication paradigms
Project Technology 1838 Analytical Engine mechanical 1890 Unit-record Machines electromechanical 1946 ENIAC electronicTable 2. Inventions combining calculation and programming
Project Technology 1950 Whirlwind/SAGE electronic 1960 Timesharing electronic 1969 ARPANET electronic 1973 Alto/Ethernet electronic 1996 The Net optronic/wireless (footnote 4)Table 3. Inventions bridging computing and communication
Commercial Type Application Example Numeric 1950s scientific and engineering data Alphanumeric 1950s DP/MIS files Control signals 1960s process control signals Text 1970s word processing and email documents Knowledge 1980s expert system rules Image 1980s graphs, paint, and draw images Motion Video 1990s animation and recorded video Music 1980s MIDI scores Voice 1990s recognition and synthesis Ink 1990s handwritten charactersTable 4. Common data types. Research with these data types began in the 1950s, but most required cheaper devices for commercial application.
1. The ideas and projects I have included are not necessarily the earliest. For example, the Dartmouth remote computing demonstration, or the packet-switched LAN at the National Physical Labs in England, are not mentioned because they did not have the scope and influence of the ARPANET or Ethernet. I am counting on readers to fill me in on oversights.
2. Masculine pronouns were commonly used at this time. I must confess that I once thought dropping that usage was a silly gesture, but it is now jarring to see it, and clearly unfair.
3. I do not know which of these features were invented by Engelbart and which existed in other early programs, such as Expensive Typewriter at MIT.
4. I picked 1996 because the technology and infrastructure are falling into place now, and 1996 is 50 years after ENIAC. The technical and conceptual evolution between the Gutenberg Bible and the relatively inexpensive, portable, "pocket" books of Aldus Manutius also took around 50 years.
ACM held a conference on the History of Personal Workstations in 1986. Many of the people I have mentioned were there, and all the presentations and informal discussions are found in , a terrific book.
ACM held a conference on the History of Programming Languages in 1978 . Two of the papers were on BASIC and JOSS, early, influential interactive languages.
There are several videos showing demonstrations of historically significant systems:
A two-tape video of the ACM Conference on the History of Personal Workstations is available from ACM (212) 869-7440, firstname.lastname@example.org. In addition to the presentations, it shows early footage of the work of Engelbart, Kay, and Sutherland
The ACM SIGGRAPH Video Review 12 & 13 has a demonstration of Sutherland's Sketchpad along with discussion other early work at MIT. It is available from First Priority (800) 523-5503.
Alan Kay gives a lecture on his work on the tape "Doing with Images Makes Symbols: Communicating with Computers," available from University Video Communication, Stanford, CA, (415) 327-0131. In the course of his lecture, Kay shows demos of his, Engelbart, and Sutherland's systems.
If you find this history interesting, read some of the original papers for fun, perspective, ideas, provocative quotes, humility, and to pay respect to the pioneers. The following are brief descriptions and a list of "modern" concepts and inventions found in several papers I would recommend:
 influenced Engelbart and Kay, and it has been reprinted in many places, including : voice synthesis and recognition, OCR, automated deduction, point of sale terminals and inventory systems, automated information retrieval, electroencephlagraphic input, magnetic storage.
 includes a definition of Engelbart's theoretical framework, describes Bush's thought, and gives a detailed description of a hypothetical machine. It anticipates the field of computer supported cooperative work. [5 and 6] Describe the work which followed: cursor, word processing, hierarchical file storage, electronic meeting room, collaborative writing, outline processing.
 is an illustrated report presenting Kay's vision, the software they developed, and the use children made of it. A subset of this report, with many illustrations, was reprinted in the March, 1977 issue of Computer Magazine: overlapping windows, multifont, WYSIWYG editing, painting, animation, waveform design, musical score input and editing, turtle geometry, simulation, and tool building.
 stated the advantages of interactive computing, and anticipated the field of human-computer interaction: interactive computing, scientific visualization, pen-based computing, voice I/O, read- only storage devices, on-line libraries, wide-area networks, artificial intelligence, wall displays.
 envisioned the important role of computers as communication devices, and anticipated the Net and the field of computer supported cooperative work: communication of the articulation and reconciliation of mental models, computer-based meeting rooms, the artificial separation of communication and computing, graphic as well as text and numeric data, computer-mediated communication, packet-switched, wide-area networks, programmable, adaptive agents, the economics of transportation-communication tradeoffs, access equity, security considerations.
 unveiled the plans for the ARPANET: remote login, file transfer, remote procedure calls, early packet transmission experiment
 described the original Ethernet, and it was reprinted in the Communications of the ACM, vol. 19, no. 7, July, 1976: LAN, Ethernet protocols and topology, client-server computing.
 an early proposal for a multiprogramming, that coined the term "timesharing:" asynchronous peripherals, maskable, prioritized interrupts, memory protection, supervisor-only instructions.
 introduced direct manipulation, CAD, computer graphics, or object-oriented software: cursor, window, clipping, rubber-band drawing, constraint-based drawing, gesture recognition, resizing, dragging, dynamic memory allocation, pen "gravity", variable display intensity for feedback, graphic object data structures.
 describes the hardware, firmware, and software architecture and utilization of the first modern personal computer: client-server computing, Ethernet LAN, LAN-based internets, firmware support for windows and BitBlt, programmable cursor, modern editing, draw, paint, and page layout software, laser printer.
1. Albrecht, Robert L., "A Modern-Day Medicine Show," Datamation, July, 1963, pp 31-33.
2. Baran, Paul, Boehm, S., and Smith, J. W., "On Distributed Communications" (11 Memoranda), RAND Corporation, Santa Monica, CA, August, 1964.
3. Bush, Vannevar, "As We May Think," Atlantic Monthly, Vol 176, No. 1 (1945), 641-649, reprinted in .
4. Engelbart, Doug C., "Augmenting Human Intellect: A Conceptual Framework," Research Report AFOSR-3223, Stanford Research Institute, Menlo Park, CA 94025, October, 1962.
5. Engelbart, Douglas C., and English, W. K., "A Research Center for Augmenting Human Intellect," Proceedings of the 1968 Fall Joint Computer Conference, Thompson Book Co., Washington, DC, 395-410.
6. Engelbart, Douglas C., Watson, Richard W, and Norton, James C., "The Augmented Knowledge Workshop," Proceedings of the 1973 AFIPS National Computer Conference, 9-21.
7. Goldberg, Adele, A History of Personal Workstations, Addison- Wesley, Reading, MA, 1988.
8. Kay, Alan, "The Reactive Engine," doctoral dissertation, University of Utah, September, 1968 (university microfilms).
9. Kay, Alan, "Personal Computing," Invited Paper, Meeting on 20 Years of Computer Science, Instituto di Elaborazione della Infromazione, Pisa, Italy, June 12, 1975.
10. Kemeny, John G., and Kurtz, T. E., "Dartmouth Time Sharing," Science, Vol 162, No 3850, October 11, 1968, pp 223-228.
11. Kurtz, Thomas E., "BASIC," in  515-549.
12. Learning Research Group, "Personal Dynamic Media," SSL-76-1, Xerox Palo Alto Research Center, Palo Alto, CA, 1976.
13. Licklider, J. C. R., Man-Computer Symbiosis, "IRE Transactions on Human Factors in Electronics," March, 1960, 4-11.
14. Licklider, J. C. R. and Taylor, Robert W, "The Computer as a Communication Device," Science and Technology, April, 1968, 21-31.
15. McCarthy, J., Programs with Common Sense, Blake, D. V. and Utley, A. M., "Proceedings of the Teddington Conference on the Mechnisation of Thought Processes," Her Majesty's Stationary Office, London, reprinted in Minsky, M, ed., "Semantic Information Processing," MIT Press, Cambridge, MA, 1960.
16. Marill, Thomas and Roberts, Lawrence G., "Toward a Cooperative Network of Time-Shared Computers," Proceedings of the 1966 Fall Joint Computer Conference, 425-431.
17. Metcalfe, Robert M. and Boggs, David R., "Ethernet: Distributed Packet Switching for Local Computer Networks," CSL-80-2, Xerox Palo Alto Research Center, Palo Alto, CA, 1980. Also appeared in Communications of the ACM, vol. 19, no. 7, July, 1976.
18. Nyce, James M. and Kahn, Paul, "From Memex to Hypertext: Vannevar Bush and he Mind's Machine," Academic Press, Harcourt Brace Jovanovich, Boston, 1991.
19. Papert, Seymour, "Teaching Children about Thinking," IFIP Conference on Computer Education, 1970, Amsterdam, North Holland, pp I: 73-8.
20. Roberts, Lawrence G., and Wessler, Barry D., "Computer Network Development to Achieve Resource Sharing," Proceedings of the 1970 Spring Joint Computer Conference, 543-549.
21. Roberts, Edward H., and Yates, William, "ALTAIR 8800," Popular Electronics, January, 1975, 33-38.
22. Strachey, Christopher, "Time Sharing in Large, Fast Computers," Proceedings of the International Conference on Information Processing, UNESCO, Butterworth's, London, June, 1959, 336-341.
23. Sutherland, Ivan, "Sketchpad: A Man-Machine Graphical Communication System," Proceedings of the Spring Joint Computer Conference, 1963, 329-346.
24. Thacker, C. P., McCreight, E. M., Lampson, B. W., Sproull, R. F., and Boggs, D. R., "Alto: A Personal Computer," CSL-79-11, Xerox Palo Alto Research Center, Palo Alto, CA, 1979. Reprinted in Siewiorek, Bell, and Newell, "Computer Structures: Principles and Examples," McGraw-Hill, New York.
25. Wexelblat, Richard L., "History of Programming Languages," Academic Press, New York, 1981.