The Early Years
1946 - Konrad Zuse (german) develops Plankalkül (first programming language)
The Sixties & Seventies
1949 - Short Code, first computer language for electronic computing device
1951 - Grace Hopper first widely known compiler A-0 (aka MATH-MATIC)
1952 - Alick E. Glennie develop Autocode
1957 - FORTRAN (FORmula TRANslating system) is developed
1958 - Original ALGOL (ALGOrithm Language) specification appears
1958 - John McCarthy begins work on LISP (LISt Processing)
1959 - COBOL (Common Business Oriented Language) appears
1962 - Kenneth Iverson documents APL (A Programming Language)
1962 - First Video Game, Space War from MIT
1964 - BASIC (Beginners All-Purpose Instruction Code) developed by John
Kemeny and Thomas Kurtz.
1964 - PL/1 is released
1968 - Niklaus Wirth begins work on Pascal. Cobol defined by ANSI
1970 - Work on Prolog begins
1970 - Xerox PARC starts Smalltalk. Pascal implementation appears
1972 - Dennis Ritchie produces C
1975 - Bill Gates & Paul Allen write and sell version BASIC to MITS
1980 - Bjarne Stroustrup develops C with Classes, forerunner
1983 - Ada appears, termed after Augusta Ada (Babbages
1986 - C++ appears
1989 - ANSI C specification is published
1991 - Visual Basic appears
1995 - Ada is revised to Ada 95, includes OOP and real-time
1995 - Java is released
1997 - ANSI C++ draft standard
© Loirak 2002. All
The History of Computer Programming Languages
Ever since the invention of Charles Babbage's difference engine
in 1822, computers have required a means of instructing them to perform a
specific task. This means is known as a programming language. Computer
languages were first composed of a series of steps to wire a particular
program; these morphed into a series of steps keyed into the computer and
then executed; later these languages acquired advanced features such as
logical branching and object orientation. The computer languages of the
last fifty years have come in two stages, the first major languages and
the second major languages, which are in use today.
In the beginning, Charles Babbage's difference engine could
only be made to execute tasks by changing the gears which executed the
calculations. Thus, the earliest form of a computer language was physical
motion. Eventually, physical motion was replaced by electrical signals
when the US Government built the ENIAC in 1942. It followed many of the
same principles of Babbage's engine and hence, could only be "programmed"
by presetting switches and rewiring the entire system for each new
"program" or calculation. This process proved to be very tedious.
In 1945, John Von Neumann was working at the Institute for
Advanced Study. He developed two important concepts that directly affected
the path of computer programming languages. The first was known as
"shared-program technique" . This technique stated that
the actual computer hardware should be simple and not need to be
hand-wired for each program. Instead, complex instructions should be used
to control the simple hardware, allowing it to be reprogrammed much
The second concept was also extremely important to the
development of programming languages. Von Neumann called it "conditional
control transfer". This idea gave rise to the notion of
subroutines, or small blocks of code that could be jumped to in any order,
instead of a single set of chronologically ordered steps for the computer
to take. The second part of the idea stated that computer code should be
able to branch based on logical statements such as IF (expression) THEN,
and looped such as with a FOR statement. "Conditional control transfer"
gave rise to the idea of "libraries," which are blocks of code that can be
reused over and over.
a few years after Von Neumann's work, the language Short Code appeared. It was the first computer language for
electronic devices and it required the programmer to change its statements
into 0's and 1's by hand. Still, it was the first step towards the complex
languages of today. In 1951, Grace Hooper wrote the first compiler, A-0 (
A compiler is a program that turns the language's statements into 0's and
1's for the computer to understand. This lead to faster programming, as
the programmer no longer had to do the work by hand.
In 1957, the first of the major languages appeared in the form
of FORTRAN. Its name stands for FORmula TRANslating system. The language
was designed at IBM for scientific computing. The components were very
simple, and provided the programmer with low-level access to the computers
innards. Today, this language would be considered restrictive as it only
included IF, DO, and GOTO statements, but at the time, these commands were
a big step forward. The basic types of data in use today got their start
in FORTRAN, these included logical variables (TRUE or FALSE), and integer,
real, and double-precision numbers.
FORTAN was good at handling numbers, it was not so good
at handling input and output, which mattered most to business computing.
Business computing started to take off in 1959, and because of this, COBOL
was developed. It was designed from the ground up as the language for
businessmen. Its only data types were numbers and strings of text. It also
allowed for these to be grouped into arrays and records, so that data
could be tracked and organized better. It is interesting to note that a
COBOL program is built in a way similar to an essay, with four or five
major sections that build into an elegant whole. COBOL statements also
have a very English-like grammar, making it quite easy to learn. All of
these features were designed to make it easier for the average business to
learn and adopt it.
In 1958, John McCarthy of MIT created the
LISt Processing (or
LISP) language. It was designed for Artificial Intelligence (AI) research.
Because it was designed for such a highly specialized field, its syntax
has rarely been seen before or since. The most obvious difference between
this language and other languages is that the basic and only type of data
is the list, denoted by a sequence of items enclosed by parentheses. LISP
programs themselves are written as a set of lists, so that LISP has the
unique ability to modify itself, and hence grow on its own. The LISP
syntax was known as "Cambridge Polish," as it was very different from
standard Boolean logic (Wexelblat, 177) :
|x V y - Cambridge Polish,
what was used to describe the LISP program
OR(x,y) - parenthesized prefix notation, what was used in the LISP
x OR y - standard Boolean logic
LISP remains in use today because its highly specialized and abstract
The Algol language was created by a committee for scientific
use in 1958. It's major contribution is being the root of the tree that
has led to such languages as Pascal, C, C++, and Java. It was also the
first language with a formal grammar, known as Backus-Naar Form or BNF (McGraw-Hill
Encyclopedia of Science and Technology, 454). Though Algol implemented
some novel concepts, such as recursive calling of functions, the next
version of the language, Algol 68, became bloated and difficult to use (
This lead to the adoption of smaller and more compact languages, such as
Pascal was begun
in 1968 by Niklaus Wirth. Its development was
mainly out of necessity for a good teaching tool. In the beginning, the
language designers had no hopes for it to enjoy widespread adoption.
Instead, they concentrated on developing good tools for teaching such as a
debugger and editing system and support for common early microprocessor
machines which were in use in teaching institutions.
Pascal was designed in a very orderly approach, it combined
many of the best features of the languages in use at the time, COBOL,
FORTRAN, and ALGOL. While doing so, many of the irregularities and oddball
statements of these languages were cleaned up, which helped it gain users
(Bergin, 100-101). The combination of features, input/output and
solid mathematical features, made it a highly successful language. Pascal
also improved the "pointer" data type, a very powerful feature of any
language that implements it. It also added a CASE statement, that allowed
instructions to to branch like a tree in such a manner:
|CASE expression OF
statements to execute...
statements to execute...
Pascal also helped the development of dynamic variables, which could be
created while a program was being run, through the NEW and DISPOSE
commands. However, Pascal did not implement dynamic arrays, or groups of
variables, which proved to be needed and led to its downfall (Bergin,
101-102). Wirth later created a successor to Pascal, Modula-2, but by the
time it appeared, C was gaining popularity and users at a rapid pace.
C was developed in 1972 by Dennis Ritchie while working at Bell
Labs in New Jersey. The transition in usage from the first major languages
to the major languages of today occurred with the transition between
Pascal and C. Its direct ancestors are B and BCPL, but its similarities to
Pascal are quite obvious. All of the features of Pascal, including the new
ones such as the CASE statement are available in C. C uses pointers
extensively and was built to be fast and powerful at the expense of being
hard to read. But because it fixed most of the mistakes Pascal had, it won
over former-Pascal users quite rapidly.
Ritchie developed C for the new Unix system being created at
the same time. Because of this, C and Unix go hand in hand. Unix gives C
such advanced features as dynamic variables, multitasking, interrupt
handling, forking, and strong, low-level, input-output. Because of this, C
is very commonly used to program operating systems such as Unix, Windows,
the MacOS, and Linux.
In the late 1970's and early 1980's, a new programing method
was being developed. It was known as Object Oriented Programming, or OOP.
Objects are pieces of data that can be packaged and manipulated by the
programmer. Bjarne Stroustroup liked this method and developed extensions
to C known as "C With Classes." This set of extensions developed into the
full-featured language C++, which was released in 1983.
C++ was designed to organize the raw power of C using OOP, but
maintain the speed of C and be able to run on many different types of
computers. C++ is most often used in simulations, such as games. C++
provides an elegant way to track and manipulate hundreds of instances of
people in elevators, or armies filled with different types of soldiers. It
is the language of choice in today's AP Computer Science courses.
In the early 1990's, interactive TV was the technology of the
future. Sun Microsystems decided that interactive TV needed a special,
portable (can run on many types of machines), language. This language
eventually became Java. In 1994, the Java project team changed their focus
to the web, which was becoming "the cool thing" after interactive TV
failed. The next year, Netscape licensed Java for use in their internet
browser, Navigator. At this point, Java became the language of the future
and several companies announced applications which would be written in
Java, none of which came into use.
Though Java has very lofty goals and is a text-book example of
a good language, it may be the "language that wasn't". It has serious
optimization problems, meaning that programs written in it run very
slowly. And Sun has hurt Java's acceptance by engaging in political
battles over it with Microsoft. But Java may wind up as the instructional
language of tomorrow as it is truly object-oriented and implements
advanced techniques such as true portability of code and garbage
Visual Basic is often taught as a first programming language
today as it is based on the BASIC language developed in 1964 by John
Kemeny and Thomas Kurtz. BASIC is a very limited language and was designed
for non-computer science people. Statements are chiefly run sequentially,
but program control can change based on IF..THEN, and GOSUB statements
which execute a certain block of code and then return to the original
point in the program's flow.
Microsoft has extended BASIC in its Visual Basic (VB) product.
The heart of VB is the form, or blank window on which you drag and drop
components such as menus, pictures, and slider bars. These items are known
as "widgets." Widgets have properties (such as its color) and events (such
as clicks and double-clicks) and are central to building any user
interface today in any language. VB is most often used today to create
quick and simple interfaces to other Microsoft products such as Excel and
Access without needing a lot of code, though it is possible to create full
applications with it.
has often been described as the "duct tape of the
Internet," because it is most often used as the engine for a web interface
or in scripts that modify configuration files. It has very strong text
matching functions which make it ideal for these tasks. Perl was developed
by Larry Wall in 1987 because the Unix sed and awk tools (used for text
manipulation) were no longer strong enough to support his needs. Depending
on whom you ask, Perl stands for Practical Extraction and Reporting
Language or Pathologically Eclectic Rubbish Lister.
Programming languages have been under development for years and
will remain so for many years to come. They got their start with a list of
steps to wire a computer to perform a task. These steps eventually found
their way into software and began to acquire newer and better features.
The first major languages were characterized by the simple fact that they
were intended for one purpose and one purpose only, while the languages of
today are differentiated by the way they are programmed in, as they can be
used for almost any purpose. And perhaps the languages of tomorrow will be
more natural with the invention of quantum and biological computers.
- "A Brief History of Programming Languages."
http://www.byte.com/art/. Cited, March 25, 2000.
- "A Short History of the Computer."
Jeremy Myers. Cited, March 25, 2000.
- Bergin, Thomas J. and Richard G. Gibson, eds. History of
Programming Languages-II. New York: ACM Press, 1996.
- Christiansen, Tom and Nathan Torkington. Perlfaq1 Unix Manpage.
Perl 5 Porters, 1997-1999.
- Christiansen, Tom and Nathan Torkington. Perlhist Unix Manpage.
Perl 5 Porters, 1997-1999.
- "Java History."
http://ils.unc.edu/blaze/java/javahist.html. Cited, March 29, 2000.
- "Programming Languages." McGraw-Hill Encyclopedia of Science and
Technology. New York: McGraw-Hill, 1997.
- Wexelblat, Richard L., ed. History of Programming Languages.
New York: Academic Press, 1981