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.
|
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.
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.
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]
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]
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:
- Basic Fifty Web Site.
- the original First BASIC Instruction Manual from 1964 (550 kB PDF File).
- Thomas E. Kurtz, "BASIC Commands," October 26, 2005.
- Harry McCracken, "Fifty Years of BASIC, the Programming Language That Made Computers Personal," Time Magazine April 29, 2014.
- Stephen Cass, "The Golden Age of Basic, IEEE Spectrum, May 1, 2014.