Carlton's Notes on
Programming Languages
This is by no means a complete review of
programming languages. This is simply a page where I keep my notes on
programming languages for my own reference. You may find some of this
information useful. These notes contain:
1.
Definition of a Programming Language
2. A History of
Programming Languages
3. A Family Tree of
Programming Languages
4. A List of All Known Programming
Languages
Definition
A programming
language is a standardized method for expressing instructions to a
computer. The language allows a programmer to specify the data a
computer is to act upon, and what actions are to be taken under various
circumstances.
A History of Programming
Languages
1940 Ada Byron
King described in great detail Charles Babbage's mechanical general
purpose computational device which he called the analytical engine.
Despite the fact that Babbage never built a working model of his
analytical engine, Ada Lovelace specified in complete detail a method
for computing Bernoulli numbers with that machine. This is generally
considered to be the world's first computer program.
1949 - Short Code
was the first computer language that actually was used on an
electronic computing device. It is, however, a "hand-compiled"
language.
1951 - MATH-MATIC
was developed by Grace Hopper while working for Remington Rand,
MATH-MATIC was the first widely known compiler. It was code named A-0
prior to its release by Rand in 1957. As a side note, in 1983 I ran
into Grace Hopper in the Atlanta airport and talked to her for a few
minutes. She handed me a piece of wire cut to a length in which
electricity travels in a nano-second.
1952 - AUTOCODE
was developed by Alick E. Glennie in his spare time at the University of
Manchester. He called it a rudimentary compiler.
1957 - FORTRAN
is an abbreviateion of FORmula TRANslating system. It was
developed by a team headed by John Backus. John goes on to assist in the
development of ALGOL and BNF.
1958 - FORTRAN II
was developed by John McCarthy while working at M.I.T. The system is
able to handle subroutines and links to assembly language. John also
worked on developing LISP which is derived from LISt Processing.
1959 - LISP 1.5
was developed by John McCarthy while working at M.I.T.
1959 - COBOL is
created by the Conference on Data Systems and Languages (CODASYL).
1960 - ALGOL 60
first appears. This language lays the foundation that ultimately
produces Pascal. ALGOL becomes the most popular language in Europe at
the time.
1960s APL is
derived from A Programming Language. It was developed by Kenneth
Iverson and it uses a specialized character set that works with
APL-compatible I/O devices. Iverson documents his work in his 12962
book, A Programming Language .
1962 - FORTRAN IV
is released.
1971 SNOBOL is
derived from StriNg-Oriented symBOlic Language.
1971 SPITBOL
is derived from SPeedy ImplemenTation of snoBOL.
1963 - ALGOL 60
is revised.
1963 - PL/1
development begins.
1963 Sketchpad
was designed on the TX-2 computer at MIT. This language is considered to
be the first computer graphics application.
1964 - APL\360
is implemented.
1964 - BASIC is
developed by professors John G. Kemeny and Thomas E. Kurtz while working
at Dartmouth University. The first BASIC program is said to have run at
4:00 a.m. on May 1, 1964.
1964 - PL/1 is
released.
1965 - SNOBOL3
is released.
1966 - FORTRAN 66
appears.
1966 - LISP 2 is
released.
1966 - LOGO
development is started by by Wally Fuerzeig and Seymour Papert at Bolt,
Beranek, & Newman. LOGO becomes best known for "turtle graphics."
1967 - SNOBOL4
is released.
1968 - ALGOL 68
is released. ALGOL 68 develops a reputation for being difficult to
implement and members of the specifications committee protest its
approval.
1968 - ALTRAN is
released as a variant of FORTRAN.
1968 - COBOL is
officially defined by ANSI.
1968 - Pascal
development is begun by Niklaus Wirth.
1970 Forth is
developed by Charles Moore, and he writes his first significant program
using this language.
1970 - Prolog
development begins.
1970 - Smalltalk
development begins by Alan Kay while working at Xerox PARC. This effort
spawned Smalltalk-72, Smalltalk-74, and Smalltalk-76.
1970 - Pascal
first appears on a CDC 6000-series computer.
1970 - Icon is
released. This language is a descendant of SNOBOL4.
1972 - C is
developed by Denni S. Ritchie. The reference manual is released in
1974.
1972 - Prolog is
developed and released by Alain Colmerauer and Phillip Roussel.
1975 - Tiny BASIC
is developed by Bob Albrecht and Dennis Allison (the language is
implementation by Dick Whipple and John Arnold). The language first runs
on a 4-KB microcomputer, using just 2 KB of the RAM for the program.
1975 A version of
BASIC is developed by Bill Gates and Paul Allen, which they sell to
MITS (Micro Instrumentation and Telemetry Systems) for use on its
Altair, an 8080-based microcomputer.
1975 - Scheme is
developed by G.L. Steele and G.J. Sussman. It is a descendant of , a
LISP.
1975 - The Pascal
User Manual and Report is published by Jensen and Wirth.
1975 RATFOR is
an abbreviation of RATional FORTRAN. It is developed by B.W.
Kerninghan and it allows C-like control structures in FORTRAN.
1976 - Design System
Language is released. It is considered to be a predecessor to
PostScript.
1977 - MUMPS is
an abbreviation of Massachusetts General Hospital Utility
Multi-Programming System.It first appears in 1977 and was originally
used to handle medical records. MUMPS only recognizes string data-type.
It was later renamed M.
1977 ADA -The
design competition that will produce Ada begins. Honeywell Bull's team,
led by Jean Ichbiah, will win the competition.
1977 FIG is an
abbreviation of the FORTH interest group. Developed by Kim Harris
and others FIG-FORTH sold for around $20.
1970s - UCSD Pascal
was developed by Kenneth Bowles and made Pascal available on PDP-11
and Z80-based computers.
1977 - Modula-2
is the successor to Pascal. Development is initiated by Niklaus Wirth.
1978 - AWK is
released. It is a text-processing language named after the designers,
Aho, Weinberger, and Kernighan.
1978 - VISICALC
is released by Dan Bricklin of Frankston. Technically it is a
programming language, however we generally refer t it as a spreadsheet
application.
1978 - FORTRAN 77
- The ANSI standard for FORTRAN 77 is released.
1979 - Green is
released by Jean Ichbiah et al., while working for the US Department of
Defense.
1980 - Smalltalk-80
is released.
1980 - Modula-2
is released.
1980 C is
developed by Bjarne Stroustrup. This language later spawns C++.
1981 - Common LISP
development begins. This is to be a common dialect of LISP.
1981 - Prolog is
developed by Japan under the Fifth Generation Computer System project.
1982 - ISO Pascal
is released.
1982 PostScript
is released.
1983 - Smalltalk-80
is published by Goldberg et al.
1983 - Ada is
released. Its name is derived from Lady Augusta Ada Byron. She is
the Countess of Lovelace and daughter of the English poet Byron. She has
been referred to as the first computer programmer because of her work on
Charles Babbage's analytical engine. In 1983, the Department of Defense
dictated that all new "mission-critical" applications be written in Ada.
1983/1984 - C
Compilers for microcomputers are first released by both Microsoft
and Digital Research.
1983 - C++ is
released. The product is named by Rick Mascitti.
1983 - Turbo Pascal
is released by Borland with a splash, thanks to an effective
advertisement in BYTE magazine.
1984 - APL2 is
descendant of APL that permits nested arrays. A reference manual for
APL2 is released.
1984 - Vanilla
SNOBOL4 for microcomputers is released.
1984 Methods
is released. It is a line-oriented Smalltalk for PCs.
1984 - CLIPPER
is released by Nantucket.
1985 PARADOX
is released by Borland.
1986 - Smalltalk/V
is released for microcomputers.
1986 - Object Pascal
for the Mac is released by Apple.
1986 - Turbo Prolog
is released by Borland.
1986 - Actor is
released by Charles Duff. It is an object-oriented language for
developing Microsoft Windows applications.
1986 Eiffel is
released. It is an object-oriented language.
1986 - C++
appears.
1987 - Turbo Pascal
version 4.0 is released.
1987 Perl is
released.
1988 - CLOS is
derived from Common LISP Object System. The specifications for this
language are published.
1988 - Oberon is
released by Niklaus Wirth. This language is a descendent of Modula-2.
1989 - The ANSI C
specification is published.
1989 - C++ 2.0
draft reference manual is released. The 2.0 version adds multiple
inheritance and pointers to members.
1990 - C++ 2.1
Reference Manual by B. Stroustrup et al, is published. This version adds
templates and exception-handling features.
1990 - FORTRAN 90
is released it includes case statements and derived types.
1990 - J is
presented at the APL90 conference by Kenneth Iverson and Roger Hui.
1991 - Visual Basic
wins BYTE's Best of Show award at Spring COMDEX. Visual Basic (VB)
is a descendant of the BASIC programming language developed by
Microsoft. It is an event driven programming language centered around a
forms engine that enables rapid development of graphical user interface
applications and a database object library (ADO). It is used primarily
for database front ends, and its relative VBScript is the language for
Active Server Pages.
1991 Python is
released.
1992 Dylan,
which is derived from Dylan Thomas, is released by Apple. It is
an object-oriented language that resembles Scheme.
1993 The X3J4.1
technical report is released by ANSI. It is the first-draft proposal
for object-oriented COBOL.
1994 VBA -
Microsoft incorporates Visual Basic for Applications into Excel.
1995 - Ada 95 is
accepted by ISO. It includes OOP features and support for real-time
systems.
1995 - Java is
created by James Gosling and other engineers at Sun Microsystems. It was
officially announced on May 23, 1995, at SunWorld. It is language is an
object-oriented programming language developed so that programs written
for it will look and function approximately the same regardless of the
device it is running on.
1996 - C++
standard is released by ANSI.
1997 - Visual Basic
for Applications (VBA) is built into every product in the Microsoft
Office family (Word, Excel, Access etc.), and also in several third-part
products such as Visio. This makes Visual Basic the programming platform
with the largest installed base in the world. VBA is developed to write
small applications for specific purposes. IN recent years, VBA has been
exploited to write macro viruses which are able to spread.
1997 ActiveX
is released by Microsoft.
2001 KYLIX is
released by Borland. It is a descendant of Delphi5.
References
The above history was
developed in part from the following resources:
- BYTE.com, September,
1995 article located here
http://www.byte.com/art/9509/sec7/art19.htm
-
History of Visual Programming Languages by
Marat Boshernitsan, December 16, 1997:
http://www.cs.berkeley.edu/~maratb/cs263/paper/node2.html
- Programming
Language, Wikipedia, the free encyclopedia.
http://www.wikipedia.com/wiki/Programming_language ;
http://www.wikipedia.com/wiki/Java+programming+language
Based on what I have
read, I have attempted to reconstruct a Programming Language Family
Tree, which depicts the natural progression of programming languages
from their ancestors through their descendents. It is a difficult
exercise and I am sure that I have made many errors here. Still, this
might be useful to you.
- Assembly languages
- Algol family
- BASIC family
- Lisp family
Presented below is a
list that I am compiling (excuse the pun) of all known programming
languages. I have used a red font and bolded those languages which I
have the most respect for today.
ABC
ABEL
Ada
ADL
Agora
Aleph
Algol 60
Algol 68
AML
APL
Argus
Assembly
Awk
Basic
Befunge
BETA
Blue
Brain
C
C Sharp
C/SIDE
C++
Caml
Cecil
Charity
CHILL
CLAIRE
Clarion
Clean
Clipper
CLU
Cobol
Cocoa
Compiled Languages
Component Pascal
Curl
Declarative Languages
Delphi
Dylan
Eiffel
Elegant
Elf
Emerald
Erlang
Escher
Euphoria
Forth
Fortran
Framework Languages
Functional Languages
Garbage-collected Languages
Gema
Goedel
Hardware Description Languages
Haskell
HTMLScript
ICI
Icon
IDL
Imperative
Intercal
Interface Languages
Interpreted Languages
Java
JJ
LabVIEW
Lagoona
Language Comparison and Critiques
Language-OS Hybrids
Leda
Limbo
Lisp
Logic-based Languages
Logo
Lua
m4
MATLAB
Mercury
Miranda
ML
Modula-2
Modula-3
Mumps
Napier88
NQL
Oberon
Object-oriented Languages
Objective Caml
Objective-C
Obliq
Occam
Omega
OPAL
Open-source Languages
Other Languages
Oz
Pascal
Perl
PHP
Pike
PL
PL-SQL
Pliant
Postscript
PowerBuilder
Prograph
Prolog
Proteus
Prototype-based Languages
Python
Quikjob
REBOL
Reflective Languages
Rexx
Rigal
RPG
Ruby
S-Lang
SAS
Sather
Scheme
Scripting Languages
Self
SETL
Simula
Sisal
Slim
Smalltalk
Snobol
SQL
Squeak
T3X
Tcl-Tk
Tempo
TOM
Turing
VBA
VBScript
Verilog
VHDL
Visual Basic
Visual DialogScript
Visual
FoxPro
Visual Languages
Winductor
Wirth Languages
YAFL
Yorick
- END -