Tikalon Header

Fifty Years of BASIC

May 19, 2014

Fifty years ago, I was a high school student who had seen the many cinema versions of computers in science fiction films. As a member of the high school math club, I had seen a real computer, an IBM 1401, on a field trip to a local university. It certainly didn't look like the cinema computers, and about all it could do was play tic-tac-toe and calculate the day of the week on which you were born. While many of today's youth are writing computer programs in elementary school, members of my generation had never programmed at college age.

Surprisingly, for someone who now writes a lot of code in several languages, I never took a computer course in college. The reason for this was my resistance to the gatekeeper computing paradigm of the time. To run a computer program, your FORTRAN code was punched into cards, which were placed in a box and passed to the "high priests" of the computer. They would eventually process your cards through a card reader, your code would be run by the computer, and you would get a printout.

The printout was invariably a long list of error messages from some incorrect syntax; so, you would revise your card stack, and the process would continue. None of this appealed to me, nor was I motivated by seeing weary students hauling punch card boxes between classes. This may have resulted in the little known complaint of the period called "engineer's elbow."

When I became a graduate student, the computer paradigm had changed, and I finally started to program. The change was the implementation of timeshare terminals for APL programming on an IBM 360. There were no punch cards, you wrote your source code as you would type any document, and there was instant feedback of syntax errors. The system also prevented the neophyte error of programming unintentional infinite loops, which happened to me on occasion. Now, I find "while(1)" to be a useful construct.

APL was an interpreted language developed at IBM by computer scientist, Kenneth E. Iverson (1920-2004), who was the recipient of the Association for Computing Machinery's 1979 Turing Award. As can be seen from the keyboard layout, below, the mathematical notation was quite abstract, but it allowed complex operations to be done with a single line of code.

APL keyboard
This is the layout of the IBM APL keyboard. I labored over this keyboard layout for many hours as a graduate student.(Via Wikimedia Commons.)

APL made it easy to operate on multidimensional data, and its interpreted nature allowed its use as a scientific calculator. There were many useful mathematical functions, such as sorting, you could call with a single symbol. It also allowed easy processing of alphabetic characters.

While APL was well tolerated by
scientists and mathematicians, it was quite intimidating to all others. Timesharing had opened computing to the masses, but the masses weren't interested in doing complex mathematics, and they needed a "more basic" programming language. That language was BASIC, developed by John G. Kemeny (1926-1992) and Thomas E. Kurtz (1928-) of Dartmouth College (Dartmouth, New Hampshire) in 1964.[1-4] Unlike FORTRAN, which is known today as fortran, BASIC is properly spelled in all capital letters, since it's an acronym for "Beginner's All-purpose Symbolic Instruction Code."

Kemeny and Kurtz each came from distinguished mathematics backgrounds. Kemeny worked with Richard Feynman and John von Neumann on the Manhattan Project at Los Alamos during World War II. After the war, he got his Ph.D. under Alonzo Church at Princeton University, where he also worked as a mathematical assistant to Albert Einstein.

John Kemeny, co-creator of BASIC, in 1967.John Kemeny, co-creator of BASIC, in 1967.

(Dartmouth College image.)

Thomas E. Kurtz received his Ph.D. in mathematics from Princeton University in 1956 under John Tukey. Tukey is famous for creating the Fast Fourier Transform (FFT) algorithm with colleague, James Cooley. Kurtz became a professor in the Dartmouth College Mathematics Department right after his Ph.D.

Tom Kurtz, co-creator of BASICTom Kurtz, co-creator of BASIC.

(Dartmouth College image by Adrian N. Bouchard, courtesy of Rauner Special Collections Library.)

The development of BASIC began in 1963 with Kemeny's writing of a $300,000 proposal to the National Science Foundation for purchase of a General Electric 225 mainframe computer and subsequent development of a timesharing computer system for the Dartmouth campus. The was accomplished with the collaboration of Kurtz and a team of undergraduate students; and, at the same time, Kemeny and Kurtz developed BASIC.[1,4]

General Electric 225 computer at Dartmouth College, 1964.General Electric 225 computer at Dartmouth College, 1964.

(Dartmouth College image by Adrian N. Bouchard, courtesy of Rauner Special Collections Library.)

The General Electric 225 mainframe computer was soon replaced with a faster General Electric 235, which worked with a smaller Datanet-30 computer that handled communication with Teletype terminals.[4] Kurtz, as quoted in Time Magazine, explained that BASIC was done with just 16k of 20 bit words, and it was a compiled language, not interpreted like its BASIC cousins.[4] All arithmetic was floating point, which allowed a 30-bit (~10 digit) mantissa, and a 9-bit exponent (-256 to 255).[3]

Basic Program for solving quadratic equationsBASIC Program for solving quadratic equations.

Dartmouth hosted a fiftieth anniversary celebration of BASIC on April 30.

The celebration included the premiere of a documentary on BASIC, created by filmmakers Bob Drake and Mike Murray.

(from the First BASIC Instruction Manual, 1964.)[1]

The original version of BASIC had one bug. Contrary to the order of operations, -x^2 was evaluated as (-x)^2, not as -(x^2). This was fixed in later versions.[3] BASIC soon extended far beyond Dartmouth. Microsoft, alone, created several versions, starting with GW-Basic in MS-DOS, and followed by QuickBASIC, a compiled version of the language, Visual BASIC for Windows, and Small Basic.

The proliferation of BASIC had one problem. Each basic was a slightly different dialect of BASIC, generally with added features for graphics, etc. Kemeny and Kurtz bemoaned this lack of standards in a 1985 book, Back to BASIC, two years after founding a company to market True BASIC.[4] True BASIC never had a large following.

Kemeny was the thirteenth President of Dartmouth College from 1970 to 1981. He also chaired the presidential commission on the accident at Three Mile Island. Kurtz he was named a fellow of the Association for Computing Machinery in 1994. I still use a BASIC compiler to create firmware for a particular type of microcontroller. I've had this compiler for more than a decade, it still works, so why change? For a nostalgic view of BASIC computers, see ref. 5.[5]

References:

  1. Basic Fifty Web Site.
  2. the original First BASIC Instruction Manual from 1964 (550 kB PDF File).
  3. Thomas E. Kurtz, "BASIC Commands," October 26, 2005.
  4. Harry McCracken, "Fifty Years of BASIC, the Programming Language That Made Computers Personal," Time Magazine April 29, 2014.
  5. Stephen Cass, "The Golden Age of Basic, IEEE Spectrum, May 1, 2014.