Kemeny and Kurtz Develop the BASIC Computer Language

John G. Kemeny and Thomas E. Kurtz designed an interactive computer system and a simple programming language that enabled nontechnical people to use a computer. BASIC would help drive the amateur and hobbyist market for personal computers in the 1970’s and early 1980’s


Summary of Event

The first digital computers were developed during World War II to speed the complex calculations required for ballistics, cryptography, and other military applications. Computer technology developed rapidly, and the 1950’s and 1960’s saw computer systems installed throughout the world. These systems were very large and expensive, requiring many highly trained people for their operation. BASIC (computer language)
Computers;programming languages
[kw]Kemeny and Kurtz Develop the BASIC Computer Language (May 1, 1964)
[kw]Kurtz Develop the BASIC Computer Language, Kemeny and (May 1, 1964)
[kw]BASIC Computer Language, Kemeny and Kurtz Develop the (May 1, 1964)
[kw]Computer Language, Kemeny and Kurtz Develop the BASIC (May 1, 1964)
BASIC (computer language)
Computers;programming languages
[g]North America;May 1, 1964: Kemeny and Kurtz Develop the BASIC Computer Language[08050]
[g]United States;May 1, 1964: Kemeny and Kurtz Develop the BASIC Computer Language[08050]
[c]Computers and computer science;May 1, 1964: Kemeny and Kurtz Develop the BASIC Computer Language[08050]
[c]Science and technology;May 1, 1964: Kemeny and Kurtz Develop the BASIC Computer Language[08050]
Kemeny, John G.
Kurtz, Thomas E.
Gates, Bill

The calculations performed by the first computers were determined solely by their electrical circuits. In the 1940’s, John von Neumann and others pioneered the idea of computers storing their instructions in a program, so that changes in calculations could be made without rewiring their circuits. The programs were written in machine language, long lists of zeroes and ones corresponding to on and off conditions of circuits. During the 1950’s, “assemblers” were introduced that used short names for common sequences of instructions and were, in turn, compiled into the zeroes and ones native to the computer. The late 1950’s saw the introduction of high-level languages, notably FORTRAN, COBOL, and ALGOL, which used English words to represent instructions. Unfortunately, these high-level languages were complicated; required some knowledge of the computer equipment; and were designed to be used by scientists, engineers, and other technical experts.

Programs were coded onto a deck of punched cards that were read into the computer. A user’s program, along with many others, was copied by the computer onto a reel of magnetic tape. After enough programs had been copied, the tape would be taken to another computer, where each program was processed in turn. This method of processing programs is called batch mode. Often, the programmer did not know until the next day what the results were, and so the process of correcting errors was extremely slow and tedious.

In the early 1960’s, John G. Kemeny was chairman of the department of mathematics at Dartmouth College in Hanover, New Hampshire. During World War II, Kemeny worked in the computing center of the Manhattan Project at Los Alamos, New Mexico, under von Neumann. After the war, Kemeny worked on his doctorate at Princeton University, where he assisted Albert Einstein in developing unified field theory. In 1955, Kemeny realized that the proliferation of computers in human society created a growing need to teach computing in a liberal educational environment.

In 1962, Thomas E. Kurtz, Dartmouth’s computing director, approached Kemeny with the idea of implementing a time-sharing system at Dartmouth College. Time-sharing had begun to develop as an alternative to the drawbacks of batch mode computing. Experimental computers were being built that could process the instructions of several users interactively connected to the system by teletypewriter terminals. Each user could have the illusion of exclusive access, because the computer alternated its processing between terminals as needed. Kurtz had become familiar with time-sharing while doing research at the Massachusetts Institute of Technology, and he thought such a system would make it possible to teach computer skills to liberal arts students.

Together, Kemeny and Kurtz experimented with interactive computing on the college’s small computer. The success of their early experiments led them, with help from undergraduate students, to design a completely new computer system they thought could make computing power available to hundreds of students. After the plan was approved, a grant was obtained from the National Science Foundation that made it possible to purchase the equipment and build the system.

The equipment arrived at Dartmouth in February, 1964. It consisted of two General Electric Corporation computers, a disk drive shared by both, card punch and card reader, tape drives, and a printer, along with several teletypewriter terminals. Virtually no technical information came with the computers, so Kemeny and Kurtz were left together with their undergraduate assistants to figure out how to set up and program them.

One computer was used as a “master” to control the flow of information between the terminals and the “slave” computer, which performed the actual calculations. Most of the time at any terminal was occupied by typing commands or printing output; very little time was needed by the slave computer to perform processing for any single user. The master computer could manage jobs going in and out of the slave unit for calculation without making anyone wait long for a response. Kurtz was assisted by several undergraduates, notably John McGeachie McGeachie, John and Mike Bush Bush, Mike , in writing the system programs that controlled the two computers. These programs were known as the Dartmouth Time Sharing System Dartmouth Time Sharing System , or DTSS.

In order for students to use the new interactive environment of DTSS, a programming language was also needed. The English commands of FORTRAN and ALGOL were a tremendous improvement on the cryptic instructions of assembly language, but they were both too complicated for beginners. Kemeny convinced Kurtz that they needed a completely new language, simple enough for beginners to learn quickly, yet flexible enough for many different kinds of applications. The language they developed was known as Beginner’s All-purpose Symbolic Instruction Code, or BASIC. The original language consisted of fourteen different statements. Each line of a BASIC program was preceded by a number. Line numbers were referenced by control flow statements, such as IF X = 9 THEN GOTO 200. Line numbers were also used as an editing reference. If line 30 of a program contained an error, the programmer could make the necessary correction merely by retyping line 30.

Within a few months Kemeny and Kurtz had their two-pronged environment of DTSS and BASIC ready. On May 1, 1964, Kemeny and a student programmer typed in BASIC programs at two terminals and simultaneously gave the command to run them. The computer system responded with the right answers, and the Dartmouth Time Sharing System and BASIC were operational.

Programming in BASIC was first taught at Dartmouth in the fall of 1964. Students were ready to begin writing programs after two hours of classroom lectures. The following year, Kemeny and Kurtz added a simple program checker to BASIC. A student could invoke the checker to verify a correct program or obtain hints about possible mistakes. By June of 1968, more than 80 percent of the undergraduates at Dartmouth could write a BASIC program. Most of them were not science majors and used their programs in conjunction with courses in the regular curriculum.

General Electric began using DTSS and BASIC on its own computers late in 1964. GE became the first company to sell time-sharing services. GE and the National Science Foundation helped Dartmouth to establish a large computing network, linking many colleges and secondary schools. GE’s association with Dartmouth in the late 1960’s and early 1970’s led to a wide proliferation of BASIC on time-sharing computer systems.

Kemeny and Kurtz, and later others under their supervision, wrote more powerful versions of BASIC that included support for graphics on video terminals and structured programming. The creators of BASIC, however, always tried to maintain their original design goal of keeping BASIC simple enough for beginners.



Significance

Kemeny and Kurtz encouraged the widespread adoption of BASIC by allowing other institutions to use their time-sharing system and by placing it in the public domain. Over time, they shaped it into a powerful language with numerous features added in response to the diverse needs of its users. What Kemeny and Kurtz had not foreseen was the advent of the microprocessor chip in the early 1970’s, which revolutionized computer technology. By 1975, microcomputer kits were being sold to hobbyists for well under a thousand dollars. The earliest of these was the Altair Altair . That same year, a prelaw student named Bill Gates was persuaded by a friend, Paul Allen Allen, Paul , to drop out of Harvard University and help create a version of BASIC that would run on the Altair. Gates and Allen formed a company, Microsoft Microsoft Corporation , to sell their BASIC interpreter, which was designed to fit into the tiny memory of the Altair. It was about as simple as the original Dartmouth BASIC but had to depend heavily on the computer hardware.

Microcomputers quickly began to appear as complete, ready-to-run systems from a number of manufacturers. All but a few of these new machines included BASIC from Microsoft. The rapid development of microchip technology brought about generations of microcomputers with ever-growing power and memory size, allowing more powerful BASIC. As features were added, however, designers relied even more on the hardware of their particular computer, sacrificing compatibility with other computers. This resulted in a confusing array of different BASIC “dialects.” Not only would a BASIC program written for one manufacturer’s computer not run one from another manufacturer but also programs were often not compatible between different models of the same make.

Meanwhile, the creators of BASIC tried to unify its various dialects under a standard. From 1974 to 1984, Kurtz served as chairman of the X3J2 BASIC Standard Committee of the American National Standards Institute American National Standards Institute (ANSI). He and Kemeny were aghast at the idea of students learning to program on microcomputers with what they regarded as severely limited BASIC interpreters. They endured what they believed was misplaced criticism by computer professionals for the shortcomings of “Street BASIC,” a corrupt argot of their original creation. Their response was True BASIC True BASIC , an implementation for microcomputers that largely conformed to the ANSI standard and was aimed primarily at the academic community. Released in 1985, True BASIC drew praise for its power and performance, along with criticism for its lack of compatibility with other microcomputer BASICs.

Despite these efforts, BASIC instruction at the college level declined in favor of such other languages as Pascal, Lisp, and C. Many students were already familiar with BASIC by the time they arrived at college. Over time, an increasing number of BASIC courses were offered at the high school and even elementary school levels, and most computers purchased for home use included some form of BASIC, including Microsoft’s Visual BASIC, which retained its usefulness into the twenty-first century. BASIC (computer language)
Computers;programming languages



Further Reading

  • Balena, Francesco. Programming Microsoft Visual Basic 2005: The Language. Overview of one of the primary descendants of Kemeny and Kurtz’s original BASIC language.
  • Kemeny, John G., and Thomas E. Kurtz. Back to BASIC. Reading, Mass.: Addison-Wesley, 1985. The authors give a personal account of their early goals and of the development of Dartmouth’s time-sharing computer and BASIC in this twenty-year retrospective. Examples of program statements in BASIC and other languages are given that can be understood by the nonprogrammer.
  • _______. BASIC Programming. New York: John Wiley & Sons, 1967. Readers interested in learning more about BASIC or programming in general may be referred to Kemeny and Kurtz’s original text on the language. The first portion is devoted to programming and also covers time-sharing systems and debugging. The second portion contains sample programs for applications ranging from elementary mathematics to games.
  • _______. “Dartmouth Time-Sharing.” Science 162 (October, 1968): 223-228. This less personal, more technical account of the development of DTSS and BASIC includes a diagram and description of the original computer equipment. The nontechnical reader can easily understand this well-written article.
  • Moritz, Michael. “A Hard-Core Technoid.” Time 123 (April 16, 1984): 62-63. This very brief article provides an account of William Gates’s early experience with computers and business ventures, his association with Microsoft cofounder Paul Allen, and the history of their company, which grew to be one of the largest and most influential producers of computer software in the world.
  • Pournelle, Jerry. “Computing at Chaos Manor: True Madness.” Byte 10 (September, 1985): 366-373. Readers may be interested in this alternative viewpoint from Pournelle, a reviewer of computer equipment and programs. He devotes a portion of his regular monthly column to relating his frustration in trying to run a simple program in True BASIC. He goes on to argue that Microsoft BASIC is the de facto standard BASIC for microcomputer users.
  • Vose, Michael G. “True BASIC.” Byte 10 (May, 1985): 279-288. This exhaustive review, replete with comparison tables and charts, performance benchmark tests, and sample listings, will probably be of interest only to the reader who is familiar with BASIC. Vose also has a short, boxed article on the last page, “ANSI Standard BASIC,” which describes its differences from the prevailing dialects of Microsoft BASIC in a manner understandable to the nontechnical reader.


IBM Develops the FORTRAN Computer Language

Hopper Invents the Computer Language COBOL

Floppy Disks Are Developed for Computer Data Storage